30 lines
746 B
Python
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)
|