Restrictions and known bugsΒΆ

  • For Python development outside of a CP4D, for example with a Jupyter notebook outside of CP4D, you must use an Anaconda or Miniconda Python installation.

  • No support for nested parallel regions at sources, i.e. nested streamsx.topology.topology.Stream.set_parallel(), for example:

    topo = Topology()
    s = topo.source(S())
    s.set_parallel(3).set_parallel(2)
    

    In this example, set_parallel(3) is ignored.

  • When tuples are nested within other tuples in a stream schema, the call style of instances of StreamSchema for a callable is always dict, whatever value the style property has. When the return value of a callable represents also a structured schema with nested tuples, the return type must also be a dict. Otherwise the behaviour is not defined.

  • No schema support for container types (list, map, set, and the like) with non-primitive value or element types as value or element types for other containers, also when encapsulated in a named tuple:

    class A_schema(typing.NamedTuple):
        x: int
        y: int
    
    class B_schema(typing.NamedTuple):
        a_list: typing.List[A_schema]     # supported, A_schema does not contain a container type at all
    
    class C_schema(typing.NamedTuple):
        c1: str
        c2: B_schema                      # supported, a container type can be nested at any depth
    
    class D_schema(typing.NamedTuple):
        d1: str
        d2: typing.Mapping[int, typing.List[int]       # supported
        d3: typing.Mapping[int, typing.List[A_schema]  # not supported: a container with non-primitive element type is direct value type of a map
    
    class E_schema(typing.NamedTuple):
        e1: bool
        e2: typing.Mapping[str, C_schema]   # not supported: C_schema.c2.a_list is a list with non-primitive element type
    
  • Schemas support only primitive types for the key type of a map:

    class A_schema(typing.NamedTuple):
        a1: int
        a2: int
    
    class B_schema(typing.NamedTuple):
        b1: str
        b2: typing.Mapping[str, A_schema]   # supported
        b3: typing.Mapping[A_schema, str]   # not supported, A_schema not supported as key type
    
  • Schemas support only primitive types as element type of a set:

    class A_schema(typing.NamedTuple):
        a1: int
        a2: int
    
    class B_schema(typing.NamedTuple):
        b1: int
        b2: typing.Set[int]       # supported
        b3: typing.Set[A_schema]  # not supported
    
  • Python Composites (derived from streamsx.topology.composite.Composite) can have only one input port.

  • No support to process final marker (end of stream) in Python Callables like in SPL operators

  • No hook for drain processing in consistent region for Python Callables

  • Submission time parameters, which are defined in SPL composites of other toolkits, or created by using streamsx.spl.op.Expression in the topology, cannot be accessed at runtime with streamsx.ec.get_submission_time_value(name).