test without typing

pull/35074/head
Cameron Clough 3 weeks ago
parent b69b58d2cc
commit c8a5e1b832
  1. 15
      system/ui/lib/window.py
  2. 2
      system/ui/spinner.py
  3. 2
      system/ui/text.py

@ -1,23 +1,14 @@
import threading import threading
import time import time
import os import os
from typing import Generic, Protocol, TypeVar
from openpilot.system.ui.lib.application import gui_app from openpilot.system.ui.lib.application import gui_app
class RendererProtocol(Protocol): class BaseWindow:
def render(self):
...
R = TypeVar("R", bound=RendererProtocol)
class BaseWindow(Generic[R]):
def __init__(self, title: str): def __init__(self, title: str):
self._title = title self._title = title
self._renderer: R | None = None self._renderer = None
self._stop_event = threading.Event() self._stop_event = threading.Event()
self._thread = threading.Thread(target=self._run) self._thread = threading.Thread(target=self._run)
self._thread.start() self._thread.start()
@ -26,7 +17,7 @@ class BaseWindow(Generic[R]):
while self._renderer is None and self._thread.is_alive(): while self._renderer is None and self._thread.is_alive():
time.sleep(0.01) time.sleep(0.01)
def _create_renderer(self) -> R: def _create_renderer(self):
raise NotImplementedError("Subclasses of BaseWindow must implement _create_renderer()") raise NotImplementedError("Subclasses of BaseWindow must implement _create_renderer()")
def _run(self): def _run(self):

@ -86,7 +86,7 @@ class SpinnerRenderer:
FONT_SIZE, 0.0, rl.WHITE) FONT_SIZE, 0.0, rl.WHITE)
class Spinner(BaseWindow[SpinnerRenderer]): class Spinner(BaseWindow):
def __init__(self): def __init__(self):
super().__init__("Spinner") super().__init__("Spinner")

@ -73,7 +73,7 @@ class TextWindowRenderer:
return ret return ret
class TextWindow(BaseWindow[TextWindowRenderer]): class TextWindow(BaseWindow):
def __init__(self, text: str): def __init__(self, text: str):
self._text = text self._text = text
super().__init__("Text") super().__init__("Text")

Loading…
Cancel
Save