From 2f2b869efdd937ad6ad96f4bd1301fa15e5642e3 Mon Sep 17 00:00:00 2001 From: binary-husky Date: Sat, 9 Dec 2023 21:54:34 +0800 Subject: [PATCH] turn off plugin hot-reload by default --- config.py | 4 ++++ toolbox.py | 24 +++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/config.py b/config.py index dcd02cc..3d80962 100644 --- a/config.py +++ b/config.py @@ -237,6 +237,10 @@ WHEN_TO_USE_PROXY = ["Download_LLM", "Download_Gradio_Theme", "Connect_Grobid", BLOCK_INVALID_APIKEY = False +# 启用插件热加载 +PLUGIN_HOT_RELOAD = False + + # 自定义按钮的最大数量限制 NUM_CUSTOM_BASIC_BTN = 4 diff --git a/toolbox.py b/toolbox.py index f830a3d..8d91035 100644 --- a/toolbox.py +++ b/toolbox.py @@ -180,12 +180,15 @@ def HotReload(f): 最后,使用yield from语句返回重新加载过的函数,并在被装饰的函数上执行。 最终,装饰器函数返回内部函数。这个内部函数可以将函数的原始定义更新为最新版本,并执行函数的新版本。 """ - @wraps(f) - def decorated(*args, **kwargs): - fn_name = f.__name__ - f_hot_reload = getattr(importlib.reload(inspect.getmodule(f)), fn_name) - yield from f_hot_reload(*args, **kwargs) - return decorated + if get_conf('PLUGIN_HOT_RELOAD'): + @wraps(f) + def decorated(*args, **kwargs): + fn_name = f.__name__ + f_hot_reload = getattr(importlib.reload(inspect.getmodule(f)), fn_name) + yield from f_hot_reload(*args, **kwargs) + return decorated + else: + return f """ @@ -916,7 +919,14 @@ def read_single_conf_with_lru_cache(arg): @lru_cache(maxsize=128) def get_conf(*args): - # 建议您复制一个config_private.py放自己的秘密, 如API和代理网址, 避免不小心传github被别人看到 + """ + 本项目的所有配置都集中在config.py中。 修改配置有三种方法,您只需要选择其中一种即可: + - 直接修改config.py + - 创建并修改config_private.py + - 修改环境变量(修改docker-compose.yml等价于修改容器内部的环境变量) + + 注意:如果您使用docker-compose部署,请修改docker-compose(等价于修改容器内部的环境变量) + """ res = [] for arg in args: r = read_single_conf_with_lru_cache(arg)