diff --git a/.gitignore b/.gitignore
index 4fb8a7df..6d0e0cce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -154,5 +154,5 @@ flagged
request_llms/ChatGLM-6b-onnx-u8s8
.pre-commit-config.yaml
themes/common.js.min.*.js
-test*
+test.html
objdump*
\ No newline at end of file
diff --git a/crazy_functions/Conversation_To_File.py b/crazy_functions/Conversation_To_File.py
index 972f4ac0..24f94b36 100644
--- a/crazy_functions/Conversation_To_File.py
+++ b/crazy_functions/Conversation_To_File.py
@@ -217,6 +217,4 @@ def 删除所有本地对话历史记录(txt, llm_kwargs, plugin_kwargs, chatbot
os.remove(f)
chatbot.append([f"删除所有历史对话文件", f"已删除
{local_history}"])
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
- return
-
-
+ return
\ No newline at end of file
diff --git a/crazy_functions/Latex_Function.py b/crazy_functions/Latex_Function.py
index 310ecc7e..ba03cf12 100644
--- a/crazy_functions/Latex_Function.py
+++ b/crazy_functions/Latex_Function.py
@@ -545,4 +545,4 @@ def PDF翻译中文并重新编译PDF(txt, llm_kwargs, plugin_kwargs, chatbot, h
promote_file_to_downloadzone(file=zip_res, chatbot=chatbot)
# <-------------- we are done ------------->
- return success
+ return success
\ No newline at end of file
diff --git a/crazy_functions/latex_fns/latex_pickle_io.py b/crazy_functions/latex_fns/latex_pickle_io.py
index 744f982f..451d735b 100644
--- a/crazy_functions/latex_fns/latex_pickle_io.py
+++ b/crazy_functions/latex_fns/latex_pickle_io.py
@@ -16,8 +16,12 @@ class SafeUnpickler(pickle.Unpickler):
def find_class(self, module, name):
# 只允许特定的类进行反序列化
self.safe_classes = self.get_safe_classes()
- if f'{module}.{name}' in self.safe_classes:
- return self.safe_classes[f'{module}.{name}']
+ match_class_name = None
+ for class_name in self.safe_classes.keys():
+ if (class_name in f'{module}.{name}'):
+ match_class_name = class_name
+ if match_class_name is not None:
+ return self.safe_classes[match_class_name]
# 如果尝试加载未授权的类,则抛出异常
raise pickle.UnpicklingError(f"Attempted to deserialize unauthorized class '{name}' from module '{module}'")
diff --git a/shared_utils/advanced_markdown_format.py b/shared_utils/advanced_markdown_format.py
index a487f1eb..9740d893 100644
--- a/shared_utils/advanced_markdown_format.py
+++ b/shared_utils/advanced_markdown_format.py
@@ -473,4 +473,4 @@ def format_io(self, y):
# 输出部分
None if gpt_reply is None else markdown_convertion(gpt_reply),
)
- return y
+ return y
\ No newline at end of file
diff --git a/shared_utils/fastapi_server.py b/shared_utils/fastapi_server.py
index fdc4c6a2..17101392 100644
--- a/shared_utils/fastapi_server.py
+++ b/shared_utils/fastapi_server.py
@@ -69,7 +69,6 @@ def validate_path_safety(path_or_url, user):
raise FriendlyException(f"输入文件的路径 ({path_or_url}) 存在,但属于其他用户。请将文件上传后再执行该任务。") # return False
return True
-
def _authorize_user(path_or_url, request, gradio_app):
from toolbox import get_conf, default_user_name
PATH_PRIVATE_UPLOAD, PATH_LOGGING = get_conf('PATH_PRIVATE_UPLOAD', 'PATH_LOGGING')
@@ -284,4 +283,4 @@ def start_app(app_block, CONCURRENT_COUNT, AUTHENTICATION, PORT, SSL_KEYFILE, SS
}
requests.get(f"{app_block.local_url}startup-events", verify=app_block.ssl_verify, proxies=forbid_proxies)
app_block.is_running = True
- app_block.block_thread()
+ app_block.block_thread()
\ No newline at end of file
diff --git a/tests/test_safe_pickle.py b/tests/test_safe_pickle.py
new file mode 100644
index 00000000..01f69562
--- /dev/null
+++ b/tests/test_safe_pickle.py
@@ -0,0 +1,17 @@
+def validate_path():
+ import os, sys
+ os.path.dirname(__file__)
+ root_dir_assume = os.path.abspath(os.path.dirname(__file__) + "/..")
+ os.chdir(root_dir_assume)
+ sys.path.append(root_dir_assume)
+validate_path() # validate path so you can run from base directory
+
+from crazy_functions.latex_fns.latex_pickle_io import objdump, objload
+from crazy_functions.latex_fns.latex_actions import LatexPaperFileGroup, LatexPaperSplit
+pfg = LatexPaperFileGroup()
+pfg.get_token_num = None
+pfg.target = "target_elem"
+x = objdump(pfg)
+t = objload()
+
+print(t.target)
\ No newline at end of file
diff --git a/tests/test_save_chat_to_html.py b/tests/test_save_chat_to_html.py
new file mode 100644
index 00000000..8f69a266
--- /dev/null
+++ b/tests/test_save_chat_to_html.py
@@ -0,0 +1,102 @@
+def validate_path():
+ import os, sys
+ os.path.dirname(__file__)
+ root_dir_assume = os.path.abspath(os.path.dirname(__file__) + "/..")
+ os.chdir(root_dir_assume)
+ sys.path.append(root_dir_assume)
+validate_path() # validate path so you can run from base directory
+
+def write_chat_to_file(chatbot, history=None, file_name=None):
+ """
+ 将对话记录history以Markdown格式写入文件中。如果没有指定文件名,则使用当前时间生成文件名。
+ """
+ import os
+ import time
+ from themes.theme import advanced_css
+ # debug
+ import pickle
+ # def objdump(obj, file="objdump.tmp"):
+ # with open(file, "wb+") as f:
+ # pickle.dump(obj, f)
+ # return
+
+ def objload(file="objdump.tmp"):
+ import os
+ if not os.path.exists(file):
+ return
+ with open(file, "rb") as f:
+ return pickle.load(f)
+ # objdump((chatbot, history))
+ chatbot, history = objload()
+
+ with open("test.html", 'w', encoding='utf8') as f:
+ from textwrap import dedent
+ form = dedent("""
+