added logging to Config

This commit is contained in:
2024-12-15 21:42:41 +01:00
parent 4522c0dd9e
commit 55be046f90
+20 -5
View File
@@ -1,7 +1,8 @@
import logging
from logger import getLogger
from pathlib import Path
from lxml import etree
from functools import cached_property
from functools import cached_property, lru_cache
from arguments import ArgumentsParser
from typing import NamedTuple, Optional
@@ -11,6 +12,9 @@ class TriggerTuple(NamedTuple):
interval_in_seconds: int
governor: str
def __repr__(self):
return f"{self.name}, interval: {self.interval_in_seconds}, governor: {self.governor}"
class Config:
def __init__(self, basepath: Path) -> None:
@@ -36,9 +40,15 @@ class Config:
)
return value
@cached_property
def log(self) -> logging.Logger:
return getLogger(self.__class__.__name__, loglevel=self.loglevel.upper())
@cached_property
def testmode(self) -> bool:
value = self.app_root.xpath('testMode').pop().text.lower()
if value is None:
self.log.warning("testMode not set in config")
if value not in ['true', 'false']:
raise ValueError("testMode can only be 'true' or 'false")
return True if value == 'true' else False
@@ -51,16 +61,21 @@ class Config:
name = trigger.xpath('name').pop().text
interval_in_seconds = trigger.xpath('intervalInSeconds').pop().text
governor = trigger.xpath('governor').pop().text
ret_val.append(
TriggerTuple(
_new_trigger = TriggerTuple(
name=name,
interval_in_seconds=int(interval_in_seconds),
governor=governor
)
)
ret_val.append(_new_trigger)
self.log.info("Loaded trigger: %s", _new_trigger)
return ret_val
@lru_cache(maxsize=99)
def get_trigger_by_name(self, name: str) -> Optional[TriggerTuple]:
self.log.debug("getting trigger: %s", name)
_all_trigger_tuples = self.triggertuples.copy()
return next((t for t in _all_trigger_tuples if t.name == name), None)
ret_val = next((t for t in _all_trigger_tuples if t.name == name), None)
if ret_val is None:
self.log.error("trigger not found: %s", ret_val)
return ret_val