Files
bt-mqtt-gateway/workers_manager.py
T
2017-11-22 21:59:47 +01:00

25 lines
656 B
Python

import importlib
class WorkersManager:
def __init__(self, config):
self._config = config
self._workers = self._register_klasses()
def get_updates(self):
lazy_map = map(lambda worker: worker.status_update(), self._workers)
flat_list = sum(lazy_map, []) # List flatten
return flat_list
def _register_klasses(self):
arr = []
for worker_klass in self._config.keys():
klass = getattr(importlib.import_module("workers.%s" % worker_klass), "%sWorker" % worker_klass.title())
arr.append(klass(**self._args_for(worker_klass)))
return arr
def _args_for(self, klass):
return self._config[klass]['args']