ezmsg.learn.process.seqseqsampler#

TODO: This needs a lot of work and some testig. This node will assume that all incoming data will be aligned on the same time basis. INPUT_TRIGGER = ez.InputStream(SampleTriggerMessage) The .value is a mostly useless string. Reserved for special commands like “stop” We may need task-specific TriggerParser or similar node to interpret task events and convert them to SampleTriggerMessage. INPUT_VALUE = ez.InputStream(AxisArray) takes in the continuous signal to be used as the labels and buffers them. INPUT_SIGNAL = ez.InputStream(AxisArray) takes in the continuous data and buffers them. OUTPUT_SAMPLE = ez.OutputStream(AxisArray)

max_buffer_size: int = 512*1024*1024 to put a cap on memory usage for each of _value_buffer and _signal_buffer

Classes

class SeqSeqSampler(max_buffer_dur=5.0)[source]#

Bases: object

Parameters:

max_buffer_dur (float)

__init__(max_buffer_dur=5.0)[source]#
Parameters:

max_buffer_dur (float)

async asend(message)[source]#
Parameters:

message (AxisArray)

async enqueue_signal(message)[source]#
Parameters:

message (AxisArray)

async enqueue_value(message)[source]#
Parameters:

message (AxisArray)

async enqueue_trigger(message)[source]#
Parameters:

message (SampleTriggerMessage)

class SeqSeqSamplerSettings(max_buffer_dur=5.0)[source]#

Bases: Settings

Parameters:

max_buffer_dur (float)

max_buffer_dur: float = 5.0#
__init__(max_buffer_dur=5.0)#
Parameters:

max_buffer_dur (float)

Return type:

None

class SeqSeqSamplerState[source]#

Bases: State

core: SeqSeqSampler#
class SeqSeqSamplerUnit(*args, settings=None, **kwargs)[source]#

Bases: Unit

Parameters:

settings (Settings | None)

SETTINGS#

alias of SeqSeqSamplerSettings

STATE#

alias of SeqSeqSamplerState

INPUT_TRIGGER = InputStream:unlocated[SampleTriggerMessage]()#
INPUT_VALUE = InputStream:unlocated[AxisArray]()#
INPUT_SIGNAL = InputStream:unlocated[AxisArray]()#
OUTPUT_SAMPLE = OutputStream:unlocated[AxisArray](self.num_buffers=32, self.force_tcp=None, self.allow_local=None)#
async initialize()[source]#

Runs when the Unit is instantiated.

This is called from within the same process this unit will live in. This lifecycle hook can be overridden. It can be run as async functions by simply adding the async keyword when overriding.

This method is where you should initialize your unit’s state and prepare for message processing.

async on_trigger(message)[source]#
Parameters:

message (SampleTriggerMessage)

async on_value(message)[source]#
Parameters:

message (AxisArray)

async on_signal(message)[source]#
Parameters:

message (AxisArray)

async send_sample()[source]#