Events: use sorted container (#32395)

* use SortedList

* Update ref_commit
pull/32394/head
Shane Smiskol 12 months ago committed by GitHub
parent 6a9be01857
commit d98ab4ddb1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 13
      selfdrive/controls/lib/events.py
  2. 2
      selfdrive/test/process_replay/ref_commit

@ -3,6 +3,7 @@ import math
import os import os
from enum import IntEnum from enum import IntEnum
from collections.abc import Callable from collections.abc import Callable
from sortedcontainers import SortedList
from cereal import log, car from cereal import log, car
import cereal.messaging as messaging import cereal.messaging as messaging
@ -48,12 +49,12 @@ EVENT_NAME = {v: k for k, v in EventName.schema.enumerants.items()}
class Events: class Events:
def __init__(self): def __init__(self):
self.events: list[int] = [] self.events: SortedList[int] = SortedList()
self.static_events: list[int] = [] self.static_events: SortedList[int] = SortedList()
self.events_prev = dict.fromkeys(EVENTS.keys(), 0) self.events_prev = dict.fromkeys(EVENTS.keys(), 0)
@property @property
def names(self) -> list[int]: def names(self) -> SortedList[int]:
return self.events return self.events
def __len__(self) -> int: def __len__(self) -> int:
@ -61,8 +62,8 @@ class Events:
def add(self, event_name: int, static: bool=False) -> None: def add(self, event_name: int, static: bool=False) -> None:
if static: if static:
self.static_events.append(event_name) self.static_events.add(event_name)
self.events.append(event_name) self.events.add(event_name)
def clear(self) -> None: def clear(self) -> None:
self.events_prev = {k: (v + 1 if k in self.events else 0) for k, v in self.events_prev.items()} self.events_prev = {k: (v + 1 if k in self.events else 0) for k, v in self.events_prev.items()}
@ -92,7 +93,7 @@ class Events:
def add_from_msg(self, events): def add_from_msg(self, events):
for e in events: for e in events:
self.events.append(e.name.raw) self.events.add(e.name.raw)
def to_msg(self): def to_msg(self):
ret = [] ret = []

@ -1 +1 @@
685a2bb9aacdd790e26d14aa49d3792c3ed65125 cb76a8e9844becc5024985c61bad4ec3518eebf5

Loading…
Cancel
Save