def load_modules(self, modules_list, user_modules): """ Load the given modules from the list (contains instance name) with respect to the user provided modules dict. modules_list: ['weather_yahoo paris', 'net_rate'] user_modules: { 'weather_yahoo': ('/etc/py3status.d/', 'weather_yahoo.py') } """ for module in modules_list: # ignore already provided modules (prevents double inclusion) if module in self.modules: continue try: my_m = Module(module, user_modules, self) # only handle modules with available methods if my_m.methods: self.modules[module] = my_m elif self.config["debug"]: self.log('ignoring module "{}" (no methods found)'.format( module)) except Exception: err = sys.exc_info()[1] msg = 'Loading module "{}" failed ({}).'.format(module, err) self.report_exception(msg, level="warning")
def load_modules(self, modules_list, user_modules): """ Load the given modules from the list (contains instance name) with respect to the user provided modules dict. modules_list: ['weather_yahoo paris', 'pewpew', 'net_rate'] user_modules: { 'weather_yahoo': ('/etc/py3status.d/', 'weather_yahoo.py'), 'pewpew': ('entry_point', <Py3Status class>), } """ for module in modules_list: # ignore already provided modules (prevents double inclusion) if module in self.modules: continue try: instance = None payload = user_modules.get(module) if payload: kind, Klass = payload if kind == ENTRY_POINT_KEY: instance = Klass() my_m = Module(module, user_modules, self, instance=instance) # only handle modules with available methods if my_m.methods: self.modules[module] = my_m elif self.config["debug"]: self.log(f'ignoring module "{module}" (no methods found)') except Exception: err = sys.exc_info()[1] msg = f'Loading module "{module}" failed ({err}).' self.report_exception(msg, level="warning")