Small modifications to DeriveUnit

Fixed init inconsitencies on DeriveUnit IO queues as well as function
naming. Updated test to stream output
This commit is contained in:
2026-09-09 11:23:13 +02:00
parent d9570cd153
commit f0638788fc
2 changed files with 17 additions and 7 deletions
+7 -6
View File
@@ -35,12 +35,11 @@ class DeriveUnit:
return_signal: SignalDescriptor,
) -> None:
self._id: UUID = unit_uuid
self._worker_thread: Thread | None = None
self._process_function: Callable = processing_function
self._return_signal: SignalDescriptor = return_signal
self._stop_event: threading.Event = threading.Event()
self._input_queue: Queue[list[ValueDescriptor]] = []
self._output_queue: Queue[ValueDescriptor] = []
self._input_queue: Queue[list[ValueDescriptor]] = Queue()
self._output_queue: Queue[ValueDescriptor] = Queue()
self._num_input_args: int = 0
self._parser_state: int = ParserState.INIT
@@ -66,10 +65,12 @@ class DeriveUnit:
if sig.return_annotation is not ValueDescriptor:
raise DeriveUnitInvalidSignatureError
print(f"Signature validated with {self._num_input_args} input values")
# TODO: Define and start worker thread
self._worker_thread: Thread = Thread(
target=self._worker_function, name=f"{self._id}_worker_thread", daemon=True
)
self._worker_thread.start()
def worker_function(self) -> None:
def _worker_function(self) -> None:
while not self._stop_event.is_set():
try:
input_args = self._input_queue.get(timeout=0.1)
+10 -1
View File
@@ -38,4 +38,13 @@ unit = DeriveUnit(uuid4(), process, [sig_a, sig_b], sig_r)
val_a = ValueDescriptor(signal_id=sig_a.id, value=1, timestamp=0)
val_b = ValueDescriptor(signal_id=sig_a.id, value=2, timestamp=10)
print(unit.process_offline([val_a, val_b]))
unit.put_data([val_a, val_b])
try:
while True:
output = unit.get_output()
if output is not None:
print(output)
except KeyboardInterrupt:
exit(0)