30 lines
746 B
Python

import importlib.util
import sys
import inspect
from pyamaha import Device, System, Zone
SENARIOS = []
class Senario:
activate = []
deactivate = []
@classmethod
def name(cls):
if getattr(cls, 'NAME', None):
return cls.NAME
else:
return cls.__name__.lower()
def load_from_file(file_path: str):
module_name = 'senarios'
spec = importlib.util.spec_from_file_location(module_name, file_path)
module = importlib.util.module_from_spec(spec)
sys.modules[module_name] = module
spec.loader.exec_module(module)
for name, obj in inspect.getmembers(module):
if inspect.isclass(obj) and issubclass(obj, Senario) and obj != Senario:
SENARIOS.append(obj)