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")