feat(perception): qualify E33 worker shadow
This commit is contained in:
@@ -27,6 +27,19 @@ from .e32_track_geometry_replay import (
|
||||
e32_track_geometry_frame,
|
||||
read_e32_track_geometry_replay,
|
||||
)
|
||||
from .e33_worker_shadow import (
|
||||
E33_FRAME_SCHEMA,
|
||||
E33_OUTCOME_SCHEMA,
|
||||
E33_PACKAGE_SCHEMA,
|
||||
E33_PROFILE_SCHEMA,
|
||||
E33_REPORT_SCHEMA,
|
||||
E33_RESOURCE_SCHEMA,
|
||||
E33_RESULT_SCHEMA,
|
||||
E33WorkerShadowError,
|
||||
E33WorkerShadowResult,
|
||||
read_e33_worker_shadow_result,
|
||||
run_e33_worker_shadow,
|
||||
)
|
||||
from .evaluation_pack import (
|
||||
ANNOTATION_CONTRACT_SCHEMA,
|
||||
EVALUATION_PACK_SCHEMA,
|
||||
@@ -372,6 +385,17 @@ __all__ = [
|
||||
"E32_TRACK_GEOMETRY_RECORD_SCHEMA",
|
||||
"E32TrackGeometryReplay",
|
||||
"E32TrackGeometryReplayError",
|
||||
"E33_FRAME_SCHEMA",
|
||||
"E33_OUTCOME_SCHEMA",
|
||||
"E33_PACKAGE_SCHEMA",
|
||||
"E33_PROFILE_SCHEMA",
|
||||
"E33_REPORT_SCHEMA",
|
||||
"E33_RESOURCE_SCHEMA",
|
||||
"E33_RESULT_SCHEMA",
|
||||
"E33WorkerShadowError",
|
||||
"E33WorkerShadowResult",
|
||||
"read_e33_worker_shadow_result",
|
||||
"run_e33_worker_shadow",
|
||||
"build_lidar_ground_annotation_template",
|
||||
"build_lidar_ground_benchmark",
|
||||
"build_k1_local_surface",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -592,17 +592,21 @@ class LatestWinsQueue[T]:
|
||||
self._dropped_superseded = 0
|
||||
self._closed = False
|
||||
|
||||
def publish(self, item: T) -> None:
|
||||
def publish(self, item: T) -> T | None:
|
||||
"""Publish fresh work and return the evicted oldest item, if any."""
|
||||
|
||||
with self._condition:
|
||||
if self._closed:
|
||||
raise RuntimeError("cannot publish to a closed latest-wins queue")
|
||||
dropped: T | None = None
|
||||
if len(self._items) == self._capacity:
|
||||
self._items.popleft()
|
||||
dropped = self._items.popleft()
|
||||
self._dropped_overflow += 1
|
||||
self._items.append(item)
|
||||
self._published += 1
|
||||
self._maximum_depth = max(self._maximum_depth, len(self._items))
|
||||
self._condition.notify()
|
||||
return dropped
|
||||
|
||||
def take_next(self, timeout: float | None = None) -> T | None:
|
||||
with self._condition:
|
||||
|
||||
Reference in New Issue
Block a user