예제 #1
0
    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
예제 #2
0
파일: view.py 프로젝트: pcreagan/test_old
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)