added config to Trigger
This commit is contained in:
@@ -3,7 +3,7 @@ from pathlib import Path
|
||||
from lxml import etree
|
||||
from functools import cached_property
|
||||
from arguments import ArgumentsParser
|
||||
from typing import NamedTuple
|
||||
from typing import NamedTuple, Optional
|
||||
|
||||
|
||||
class TriggerTuple(NamedTuple):
|
||||
@@ -11,6 +11,10 @@ class TriggerTuple(NamedTuple):
|
||||
interval_in_seconds: int
|
||||
|
||||
|
||||
class MissingConfig(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class Config:
|
||||
def __init__(self, basepath: Path) -> None:
|
||||
self.basepath = basepath
|
||||
@@ -57,3 +61,7 @@ class Config:
|
||||
)
|
||||
|
||||
return ret_val
|
||||
|
||||
def get_trigger_by_name(self, name: str) -> Optional[TriggerTuple]:
|
||||
_all_trigger_tuples = self.triggertuples.copy()
|
||||
return next((t for t in _all_trigger_tuples if t.name == name), None)
|
||||
|
||||
+12
-3
@@ -1,9 +1,18 @@
|
||||
from logger import getLogger
|
||||
from config import Config
|
||||
from config import Config, TriggerTuple, MissingConfig
|
||||
|
||||
class Trigger:
|
||||
def __init__(self, name: str, config: Config) -> None:
|
||||
def __init__(self, name: str, _config: Config) -> None:
|
||||
self.name = name
|
||||
self.log = getLogger('trigger', loglevel=config.loglevel.upper())
|
||||
self._config = _config
|
||||
self.log = getLogger('trigger', loglevel=_config.loglevel.upper())
|
||||
self.log.info(f'initializing {self.__class__.__name__}')
|
||||
|
||||
@property
|
||||
def config(self) -> TriggerTuple:
|
||||
_config = self._config.get_trigger_by_name(self.name)
|
||||
if _config is None:
|
||||
raise MissingConfig(f"Trigger {self.name} hasn't been properly configures")
|
||||
return _config
|
||||
|
||||
|
||||
+2
-2
@@ -2,6 +2,6 @@ from trigger import Trigger
|
||||
from config import Config
|
||||
|
||||
class RoonTrigger(Trigger):
|
||||
def __init__(self, name: str, config: Config) -> None:
|
||||
super().__init__(name, config)
|
||||
def __init__(self, name: str, _config: Config) -> None:
|
||||
super().__init__(name, _config)
|
||||
|
||||
Reference in New Issue
Block a user