def use_config_form_nb_log_config_module(): """ 自动读取配置。会优先读取启动脚本的目录的distributed_frame_config.py文件。没有则读取项目根目录下的distributed_frame_config.py :return: """ line = sys._getframe().f_back.f_lineno # noinspection PyProtectedMember file_name = sys._getframe(1).f_code.co_filename try: m = importlib.import_module('nb_log_config') msg = f'nb_log包 读取到\n "{m.__file__}:1" 文件里面的变量作为优先配置了\n' # nb_print(msg) if is_main_process(): stdout_write( f'{time.strftime("%H:%M:%S")} "{file_name}:{line}" {msg} \n \033[0m' ) for var_namex, var_valuex in m.__dict__.items(): if var_namex.isupper(): setattr(nb_log_config_default, var_namex, var_valuex) except ModuleNotFoundError: auto_creat_config_file_to_project_root_path() msg = f'''在你的项目根目录下生成了 \n "{Path(sys.path[1]) / Path('nb_log_config.py')}:1" 的nb_log包的日志配置文件,快去看看并修改一些自定义配置吧''' stdout_write( f'{time.strftime("%H:%M:%S")} "{file_name}:{line}" {msg} \n \033[0m' )
def use_config_form_distributed_frame_config_module(): """ 自动读取配置。会优先读取启动脚本的目录的distributed_frame_config.py文件。没有则读取项目根目录下的distributed_frame_config.py :return: """ current_script_path = sys.path[0].replace('\\', '/') project_root_path = sys.path[1].replace('\\', '/') inspect_msg = f""" 分布式函数调度框架会自动导入distributed_frame_config模块 当第一次运行脚本时候,函数调度框架会在你的python当前项目的根目录下 {project_root_path} 下,创建一个名为 distributed_frame_config.py 的文件。 自动读取配置,会优先读取启动脚本的所在目录 {current_script_path} 的distributed_frame_config.py文件, 如果没有 {current_script_path}/distributed_frame_config.py 文件,则读取项目根目录 {project_root_path} 下的distributed_frame_config.py做配置。 在 "{project_root_path}/distributed_frame_config.py:1" 文件中,需要按需重新设置要使用到的中间件的键和值,例如没有使用rabbitmq而是使用redis做中间件,则不需要配置rabbitmq。 """ # sys.stdout.write(f'\033[0;33m{time.strftime("%H:%M:%S")}\033[0m "{__file__}:{sys._getframe().f_lineno}" \033[0;30;43m{inspect_msg}\033[0m\n') # noinspection PyProtectedMember if is_main_process(): stdout_write( f'\033[0;93m{time.strftime("%H:%M:%S")}\033[0m "{__file__}:{sys._getframe().f_lineno}" \033[0;93;100m{inspect_msg}\033[0m\n') try: # noinspection PyUnresolvedReferences # import distributed_frame_config m = importlib.import_module('distributed_frame_config') # nb_print(m.__dict__) only_print_on_main_process(f'分布式函数调度框架 读取到\n "{m.__file__}:1" 文件里面的变量作为配置了\n') for var_namex, var_valuex in m.__dict__.items(): if var_namex.isupper(): setattr(frame_config, var_namex, var_valuex) # 用用户自定义的配置覆盖框架的默认配置。 except ModuleNotFoundError: nb_print( f'''分布式函数调度框架检测到 你的项目根目录 {project_root_path} 和当前文件夹 {current_script_path} 下没有 distributed_frame_config.py 文件,\n\n''') auto_creat_config_file_to_project_root_path() show_frame_config()