def entry_point(): from rqalpha.mod import SYSTEM_MOD_LIST from rqalpha.utils.package_helper import import_mod mod_config_path = get_mod_config_path() mod_config = load_mod_config(mod_config_path, loader=yaml.RoundTripLoader) for mod_name, config in six.iteritems(mod_config['mod']): lib_name = "rqalpha_mod_{}".format(mod_name) if not config['enabled']: continue if mod_name in SYSTEM_MOD_LIST: # inject system mod import_mod("rqalpha.mod." + lib_name) else: # inject third part mod import_mod(lib_name) # 原本是注入系统中所有的Mod对应的命令,现在修改为只注入用户启动的Mod对应的命令 # from . import mod # from pkgutil import iter_modules # from rqalpha.utils.package_helper import import_mod # # inject system mod # for package_name in mod.SYSTEM_MOD_LIST: # import_mod("rqalpha.mod.rqalpha_mod_" + package_name) # # inject user mod # for package in iter_modules(): # if "rqalpha_mod_" in package[1]: # import_mod(package[1]) cli(obj={})
def inject_mod_commands(): """ 获取配置,注册模块 :return: """ from rqalpha.utils.config import get_mod_conf from rqalpha.mod import SYSTEM_MOD_LIST from rqalpha.utils.package_helper import import_mod # 获取配置 mod_config = get_mod_conf() # 加载配置中的模块 for mod_name, config in six.iteritems(mod_config['mod']): if 'lib' in config: lib_name = config["lib"] else: lib_name = "rqalpha_mod_{}".format(mod_name) if not config['enabled']: continue try: if mod_name in SYSTEM_MOD_LIST: # inject system mod import_mod("rqalpha.mod." + lib_name) else: # inject third part mod import_mod(lib_name) except Exception as e: pass
def entry_point(): from rqalpha.mod import SYSTEM_MOD_LIST from rqalpha.utils.package_helper import import_mod mod_config_path = get_mod_config_path() mod_config = load_mod_config(mod_config_path, loader=yaml.RoundTripLoader) for mod_name, config in six.iteritems(mod_config['mod']): lib_name = "rqalpha_mod_{}".format(mod_name) if not config['enabled']: continue if mod_name in SYSTEM_MOD_LIST: # inject system mod import_mod("rqalpha.mod." + lib_name) else: # inject third part mod import_mod(lib_name) # 原本是注入系统中所有的Mod对应的命令,现在修改为只注入用户启动的Mod对应的命令 # from . import mod # from pkgutil import iter_modules # from rqalpha.utils.package_helper import import_mod # # inject system mod # for package_name in mod.SYSTEM_MOD_LIST: # import_mod("rqalpha.mod.rqalpha_mod_" + package_name) # # inject user mod # for package in iter_modules(): # if "rqalpha_mod_" in package[1]: # import_mod(package[1]) cli(obj={})
def set_env(self, environment): self._env = environment config = environment.config for mod_name in config.mod.__dict__: mod_config = getattr(config.mod, mod_name) if not mod_config.enabled: continue self._mod_list.append((mod_name, mod_config)) for idx, (mod_name, user_mod_config) in enumerate(self._mod_list): if hasattr(user_mod_config, 'lib'): lib_name = user_mod_config.lib elif mod_name in SYSTEM_MOD_LIST: lib_name = "rqalpha.mod.rqalpha_mod_" + mod_name else: lib_name = "rqalpha_mod_" + mod_name system_log.debug(_(u"loading mod {}").format(lib_name)) mod_module = import_mod(lib_name) if mod_module is None: del self._mod_list[idx] return mod = mod_module.load_mod() mod_config = RqAttrDict( copy.deepcopy(getattr(mod_module, "__config__", {}))) mod_config.update(user_mod_config) setattr(config.mod, mod_name, mod_config) self._mod_list[idx] = (mod_name, mod_config) self._mod_dict[mod_name] = mod self._mod_list.sort(key=lambda item: getattr(item[1], "priority", 100)) environment.mod_dict = self._mod_dict
def set_env(self, environment): self._env = environment config = environment.config for mod_name in config.mod.__dict__: mod_config = getattr(config.mod, mod_name) if not mod_config.enabled: continue self._mod_list.append((mod_name, mod_config)) for idx, (mod_name, user_mod_config) in enumerate(self._mod_list): if hasattr(user_mod_config, 'lib'): lib_name = user_mod_config.lib elif mod_name in SYSTEM_MOD_LIST: lib_name = "rqalpha.mod.rqalpha_mod_" + mod_name else: lib_name = "rqalpha_mod_" + mod_name system_log.debug(_(u"loading mod {}").format(lib_name)) mod_module = import_mod(lib_name) if mod_module is None: del self._mod_list[idx] return mod = mod_module.load_mod() mod_config = RqAttrDict(copy.deepcopy(getattr(mod_module, "__config__", {}))) mod_config.update(user_mod_config) setattr(config.mod, mod_name, mod_config) self._mod_list[idx] = (mod_name, mod_config) self._mod_dict[mod_name] = mod self._mod_list.sort(key=lambda item: getattr(item[1], "priority", 100)) environment.mod_dict = self._mod_dict
def set_env(self, environment): self._env = environment config = environment.config #取出config配置详情,如果启用某模块,则将模块名和配置放置到属性_mod_list中 for mod_name in config.mod.__dict__: mod_config = getattr(config.mod, mod_name) if not mod_config.enabled: continue self._mod_list.append((mod_name, mod_config))#每个模块,0:mod_name,1:mod_config # 读取每个mod的模块位置,并导入 for idx, (mod_name, user_mod_config) in enumerate(self._mod_list): if hasattr(user_mod_config, 'lib'): lib_name = user_mod_config.lib elif mod_name in SYSTEM_MOD_LIST: lib_name = "rqalpha.mod.rqalpha_mod_" + mod_name else: lib_name = "rqalpha_mod_" + mod_name system_log.debug(_(u"loading mod {}").format(lib_name)) mod_module = import_mod(lib_name) if mod_module is None: del self._mod_list[idx] return mod = mod_module.load_mod() #处理mod配置信息,使用用户配置覆盖默认配置 mod_config = RqAttrDict(copy.deepcopy(getattr(mod_module, "__config__", {}))) mod_config.update(user_mod_config) setattr(config.mod, mod_name, mod_config) self._mod_list[idx] = (mod_name, mod_config)#更新 list 容器 self._mod_dict[mod_name] = mod#更新 dict 容器 self._mod_list.sort(key=lambda item: getattr(item[1], "priority", 100)) environment.mod_dict = self._mod_dict#把mod绑定到环境变量
def inject_mod_commands(): from rqalpha.mod import SYSTEM_MOD_LIST from rqalpha.utils.package_helper import import_mod mod_config_path = get_mod_config_path() mod_config = load_mod_config(mod_config_path) for mod_name, config in six.iteritems(mod_config['mod']): if 'lib' in config: lib_name = config["lib"] else: lib_name = "rqalpha_mod_{}".format(mod_name) if not config['enabled']: continue if mod_name in SYSTEM_MOD_LIST: # inject system mod import_mod("rqalpha.mod." + lib_name) else: # inject third part mod import_mod(lib_name)
def entry_point(): import six from rqalpha.mod import SYSTEM_MOD_LIST from rqalpha.utils.config import get_mod_config_path, load_mod_config from rqalpha.utils.package_helper import import_mod mod_config_path = get_mod_config_path() mod_config = load_mod_config(mod_config_path, loader=yaml.RoundTripLoader) for mod_name, config in six.iteritems(mod_config['mod']): lib_name = "rqalpha_mod_{}".format(mod_name) if not config['enabled']: continue if mod_name in SYSTEM_MOD_LIST: # inject system mod import_mod("rqalpha.mod." + lib_name) else: # inject third part mod import_mod(lib_name) cmd_cli(obj={})
def inject_mod_commands(): from rqalpha.utils.config import get_mod_conf from rqalpha.mod import SYSTEM_MOD_LIST from rqalpha.utils.package_helper import import_mod mod_config = get_mod_conf() for mod_name, config in six.iteritems(mod_config['mod']): if 'lib' in config: lib_name = config["lib"] else: lib_name = "rqalpha_mod_{}".format(mod_name) if not config['enabled']: continue try: if mod_name in SYSTEM_MOD_LIST: # inject system mod import_mod("rqalpha.mod." + lib_name) else: # inject third part mod import_mod(lib_name) except Exception as e: pass