diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/cpu_governor_auto_adjust.py b/cpu_governor_auto_adjust.py index 1cfd0ea..b4ee263 100755 --- a/cpu_governor_auto_adjust.py +++ b/cpu_governor_auto_adjust.py @@ -14,6 +14,7 @@ async def main() -> None: log = getLogger('main', loglevel=config.loglevel.upper()) if config.testmode: log.warning("starting in testmode, cpu adjustments have been disabled") + governor = Governor(config) scheduler = TriggerScheduler(config) for triggertuple in config.triggertuples: diff --git a/cpu_governor_auto_adjust.xml b/cpu_governor_auto_adjust.xml index 89d8cd9..75975ea 100644 --- a/cpu_governor_auto_adjust.xml +++ b/cpu_governor_auto_adjust.xml @@ -4,7 +4,7 @@ true - Roon + roon 2 diff --git a/mapping.py b/mapping.py index 1ffc331..9dd8023 100644 --- a/mapping.py +++ b/mapping.py @@ -1,7 +1,7 @@ from types import MappingProxyType -from triggers.roon import RoonTrigger +from triggers import RoonTrigger _dict_mapping = { - 'Roon': RoonTrigger + 'roon': RoonTrigger } trigger_mapping = MappingProxyType(_dict_mapping) \ No newline at end of file diff --git a/schedule.py b/schedule.py index f6801bb..2ef45f9 100644 --- a/schedule.py +++ b/schedule.py @@ -32,5 +32,6 @@ class TriggerScheduler(AppClass): try: while True: await asyncio.sleep(1) # Keep the main function alive - except KeyboardInterrupt: + except asyncio.exceptions.CancelledError: + self.log.info("Exiting, stopping all triggers") await self.stop_triggers() diff --git a/trigger.py b/trigger.py index bf50e4d..151d7c5 100644 --- a/trigger.py +++ b/trigger.py @@ -1,11 +1,24 @@ from app_class import AppClass from config import Config, TriggerTuple, MissingConfig + +class TriggerImportError(Exception): + pass + + class Trigger(AppClass): def __init__(self, _config: Config) -> None: super().__init__(_config) - self.name = "name has to be filled in inherited class and this name has to match the name from config file" - + + @property + def name(self) -> str: + if self.__module__ == 'trigger': + raise TriggerImportError( + "the Trigger class can't used directlty, but must be inhereted in a trigger specific class" + ) + _ , _name = self.__module__.split('.') + return _name + @property def config(self) -> TriggerTuple: _config = self._config.get_trigger_by_name(self.name) diff --git a/triggers/__init__.py b/triggers/__init__.py new file mode 100644 index 0000000..c1a5eb0 --- /dev/null +++ b/triggers/__init__.py @@ -0,0 +1,3 @@ +__all__ = ["roon"] + +from .roon import RoonTrigger \ No newline at end of file diff --git a/triggers/roon.py b/triggers/roon.py index 7e0344a..d0fc039 100644 --- a/triggers/roon.py +++ b/triggers/roon.py @@ -4,7 +4,6 @@ from config import Config class RoonTrigger(Trigger): def __init__(self, _config: Config) -> None: super().__init__(_config) - self.name = "Roon" def run(self) -> bool: self.log.info("run check code")