def __init__(self, actor=None, name: str = None, log_name: str = None) -> None: assert self._implements if actor: self.actor = actor.inject(self) name = self.actor.name self.log = logger(self.actor.log_name) else: assert name assert log_name self.log = logger(log_name) self._scheduled_tasks: List['MessageHandler.Task'] = [] self._q, self.q = self._make_duplex_channel() self._registered_messages = CallbackRegistry() if self._poll_delay_s == 0.: self._poll_delay = surrender_thread_control # type: ignore self.poll_parent = self._poll_blocking if self._poll_blocking else self._poll_non_blocking # noinspection PyTypeChecker self._implements.__init__(self, target=self.main, name=name, daemon=True) # type: ignore
from typing import * from src.base.log import logger from src.view.base.helper import File from src.view.base.placement import * from src.view.view import View from src.view.widgets.dynamic import * from src.view.widgets.history import * from src.view.widgets.static import * __all__ = [ 'LightingView', ] log = logger(__name__) LEFT = TOP = 0 METRICS_W = SIZING.S TIME_W = SIZING.XS BUILD_W = SIZING.S STATS_HEIGHT_RATIO = 1 / 2 _BOTTOM_ROW = SIZING.XXS _TOP_ROW_H = SIZING.S - _BOTTOM_ROW _Logo = Pos(LEFT, TOP, SIZING.S, _TOP_ROW_H) _Title = Pos(_Logo.right, TOP, SIZING.XS, _TOP_ROW_H / 2) _Mode = Pos(_Logo.right, _Title.bottom, _Title.w, _Title.h) _Metrics = Pos(1 - METRICS_W, TOP, METRICS_W, _TOP_ROW_H) _Instruction = Pos(_Logo.w + _Title.w, TOP, 1 - _Logo.w - _Title.w - _Metrics.w, _TOP_ROW_H)