Skip to content

Commit 95e6a15

Browse files
authored
Support Quick Entry Clearing in LEADS VeC Data Processor (#496)
* Supported quick clear. (#495) * Docs. (#495) * Docs. (#495)
1 parent 069a6da commit 95e6a15

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,8 @@ inferences:
622622
repeat: 100 # default: 1
623623
enhanced: true # default: false
624624
assume_initial_zeros: true # default: false
625+
clear: # default: []
626+
- speed
625627
methods:
626628
- safe-speed
627629
- speed-by-acceleration

leads/data_persistence/analyzer/inference.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from abc import ABCMeta as _ABCMeta, abstractmethod as _abstractmethod
2-
from typing import Any as _Any, override as _override, Generator as _Generator, Literal as _Literal
2+
from typing import Any as _Any, override as _override, Generator as _Generator, Literal as _Literal, \
3+
Sequence as _Sequence
34

45
from leads.data import distance_between
56
from leads.data_persistence.analyzer.utils import time_invalid, speed_invalid, acceleration_invalid, \
@@ -266,6 +267,13 @@ def __init__(self, file: str, chunk_size: int = 100) -> None:
266267
super().__init__(file, chunk_size)
267268
self._raw_data: tuple[dict[str, _Any], ...] = ()
268269
self._inferred_data: list[dict[str, _Any]] = []
270+
self._clear: set[str] = set()
271+
272+
def clear(self, entry: str) -> None:
273+
self._clear.add(entry)
274+
275+
def clear_all(self, entries: _Sequence[str]) -> None:
276+
self._clear = set(entries)
269277

270278
@_override
271279
def __len__(self) -> int:
@@ -308,6 +316,8 @@ def load(self) -> None:
308316
super().load()
309317
raw_data = []
310318
for row in super().__iter__():
319+
for clear_entry in self._clear:
320+
row[clear_entry] = None
311321
raw_data.append(row)
312322
self._raw_data = tuple(raw_data)
313323
self._inferred_data = [{} for _ in range(len(raw_data))]

leads_vec_dp/run.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ def run(target: str) -> int:
4040
if "inferences" in target:
4141
dataset = _InferredDataset(target["dataset"])
4242
inferences = target["inferences"]
43+
if "clear" in inferences:
44+
dataset.clear_all(inferences["clear"])
45+
inferences.pop("clear")
4346
methods = []
4447
for method in inferences["methods"]:
4548
methods.append(INFERENCE_METHODS[method]())

0 commit comments

Comments
 (0)