runtimepy.task package#
Subpackages#
Submodules#
runtimepy.task.asynchronous module#
A module implementing an asynchronous task interface.
- class runtimepy.task.asynchronous.AsyncTask(name: str, period_s: float, env: ChannelEnvironment, average_depth: int = 10, max_iterations: int = 0)[source]#
Bases:
LoggerMixinA basic implementation of a periodic task.
- init_channels(env: ChannelEnvironment) None[source]#
Initialize task-specific channels.
- property rate_str: str#
Get this periodic’s rate as a string.
runtimepy.task.sample module#
A sample task interface.
- class runtimepy.task.sample.Sample[source]#
Bases:
TaskFactory[SampleTask]A TUI application factory.
- kind#
alias of
SampleTask
- class runtimepy.task.sample.SampleApp[source]#
Bases:
TaskFactory[SampleAppTask]A TUI application factory.
- kind#
alias of
SampleAppTask
- class runtimepy.task.sample.SampleAppTask(name: str, average_depth: int = 10, metrics: PeriodicTaskMetrics = None, period_s: float = 1.0, env: ChannelEnvironment = None)[source]#
Bases:
ArbiterTaskA base TUI application.
- class runtimepy.task.sample.SampleTask(name: str, average_depth: int = 10, metrics: PeriodicTaskMetrics = None, period_s: float = 1.0, env: ChannelEnvironment = None)[source]#
Bases:
ArbiterTask,TrigMixinA base TUI application.
Module contents#
A module implementing an asynchronous task interface.
- class runtimepy.task.AsyncTask(name: str, period_s: float, env: ChannelEnvironment, average_depth: int = 10, max_iterations: int = 0)[source]#
Bases:
LoggerMixinA basic implementation of a periodic task.
- init_channels(env: ChannelEnvironment) None[source]#
Initialize task-specific channels.
- property rate_str: str#
Get this periodic’s rate as a string.
- class runtimepy.task.PeriodicTask(name: str, average_depth: int = 10, metrics: PeriodicTaskMetrics = None, period_s: float = 1.0, env: ChannelEnvironment = None)[source]#
Bases:
LoggerMixinLevelControl,ChannelEnvironmentMixin,ABCA class implementing a simple periodic-task interface.
- auto_finalize = True#
- class runtimepy.task.PeriodicTaskManager[source]#
Bases:
Generic[T]A class for managing periodic tasks as a single group.
- property tasks: Iterator[T]#
Iterate over tasks.
- class runtimepy.task.PeriodicTaskMetrics(dispatches: Uint32Primitive, rate_hz: FloatPrimitive, average_s: FloatPrimitive, max_s: FloatPrimitive, min_s: FloatPrimitive, overruns: Uint16Primitive)[source]#
Bases:
NamedTupleMetrics for a periodic tasks.
- average_s: FloatPrimitive#
Alias for field number 2
- static create() PeriodicTaskMetrics[source]#
Create a new metrics instance.
- dispatches: Uint32Primitive#
Alias for field number 0
- max_s: FloatPrimitive#
Alias for field number 3
- measure(eloop: AbstractEventLoop, rate: RateTracker, dispatch: MovingAverage, iter_time: DoublePrimitive, period_s: float) Iterator[None][source]#
Measure the time spent yielding and update data.
- min_s: FloatPrimitive#
Alias for field number 4
- overruns: Uint16Primitive#
Alias for field number 5
- rate_hz: FloatPrimitive#
Alias for field number 1