Abstract¶
- class IECore(*args, **kwargs)[source]¶
Bases:
ProtocolEvent core class. Can be used for:
Accessing pipeline processor
Accessing worker spawner
Accessing producer
Accessing event stream
Decorating functions to make them consumers
Registering functions to make them consumers
Discovering consumers marked with @(ecore.)consumer decorator
Producing events
Spawning workers bulit from registered consumers
- property process_pipeline: IProcessPipeline¶
Pipeline processor getter
- Returns:
Pipeline processor
- Return type:
- property spawn_worker: ISpawnWorker¶
Worker spawner getter
- Returns:
Worker spawner
- Return type:
- property stream_factory: IStreamFactory¶
Stream factory getter
- Returns:
Stream factory
- Return type:
- consumer(func=None, *, event, group, clones=1)[source]¶
Decorator for consumer functions
- Parameters:
func (ConsumerFunc | None) – function to decorate
event (EventType) – Event type
group (ConsumerGroup) – Consumer group
clones (NumberOfClones) – No of clones
- Returns:
Decorated function
- Return type:
ConsumerFunc
- register_consumer(func, event, group, *, clones=1, func_path=None)[source]¶
Consumer function registrator
- Parameters:
func (ConsumerFunc) – Function to register as a consumer
event (EventType) – Event type
group (ConsumerGroup) – Consumer group
clones (NumberOfClones) – No of clones
func_path (str | None) – Path (absolute preferred) to module where function is defined. Is used for consumer functions equality check to avoid duplicate registering. Defaults to
` (inspect.getsourcefile(func) or "") + ":" + func.__name__ `
- Returns:
None
- Return type:
None
- discover_consumers(*, root='')[source]¶
Discover consumers within given package root.
- Parameters:
root (str | None) – root package to search in. Current directory is used by default.
- Returns:
None
- Return type:
None
- class IProcessPipeline(*args, **kwargs)[source]¶
Bases:
ProtocolPipeline processor class. One and only purpose of this class is to build worker based on a given pipeline.
- class ISpawnWorker(*args, **kwargs)[source]¶
Bases:
ProtocolWorker spawner class. One and only purpose of this class is to spawn a given worker.
- class IEventSerializer(*args, **kwargs)[source]¶
Bases:
Protocol[IType,RType]Event serializer class. One and only purpose of this class is to encode and decode events.
- class IProducer(*args, **kwargs)[source]¶
Bases:
ProtocolProducer class. One and only purpose of this class is to produce events.
- class IStream(*args, **kwargs)[source]¶
Bases:
ProtocolEvent stream class. One and only purpose of this class is to put and pop events.
- class IStreamFactory(stream_class, kwargs)[source]¶
Bases:
ProtocolStream factory class. One and only purpose of this class is to create a stream.
- class IRunner(stream_factory, event, group, *consumers, max_events=-1, logger=<RootLogger root (DEBUG)>)[source]¶
Bases:
ProtocolRunner class. One and only purpose of this class is to run given consumers.
- Parameters:
stream (IStream) – Event stream
event (EventType) – Event type
consumers (Tuple[IConsumer, ...]) – Consumers
max_events (int) – Max events to process Defaults to -1. If value is equal to -1, then there is not limit for number of events to process
logger (logging.Logger) – Logger instance
stream_factory (IStreamFactory)
group (ConsumerGroup)
- class IConsumer(func, logger=<RootLogger root (DEBUG)>)[source]¶
Bases:
ProtocolConsumer class. One and only purpose of this class is to consume events.
- Parameters:
func (ConsumerFunc)
logger (logging.Logger)