Cleanups and improvements
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
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']
|
||||
Reference in New Issue
Block a user