diff --git a/crazy_functions/latex_fns/latex_pickle_io.py b/crazy_functions/latex_fns/latex_pickle_io.py index 451d735b..7b93ea87 100644 --- a/crazy_functions/latex_fns/latex_pickle_io.py +++ b/crazy_functions/latex_fns/latex_pickle_io.py @@ -4,12 +4,14 @@ import pickle class SafeUnpickler(pickle.Unpickler): def get_safe_classes(self): - from .latex_actions import LatexPaperFileGroup, LatexPaperSplit + from crazy_functions.latex_fns.latex_actions import LatexPaperFileGroup, LatexPaperSplit + from crazy_functions.latex_fns.latex_toolbox import LinkedListNode # 定义允许的安全类 safe_classes = { # 在这里添加其他安全的类 'LatexPaperFileGroup': LatexPaperFileGroup, - 'LatexPaperSplit' : LatexPaperSplit, + 'LatexPaperSplit': LatexPaperSplit, + 'LinkedListNode': LinkedListNode, } return safe_classes @@ -20,6 +22,8 @@ class SafeUnpickler(pickle.Unpickler): for class_name in self.safe_classes.keys(): if (class_name in f'{module}.{name}'): match_class_name = class_name + if module == 'numpy' or module.startswith('numpy.'): + return super().find_class(module, name) if match_class_name is not None: return self.safe_classes[match_class_name] # 如果尝试加载未授权的类,则抛出异常 diff --git a/tests/test_latex_auto_correct.py b/tests/test_latex_auto_correct.py new file mode 100644 index 00000000..c51e7414 --- /dev/null +++ b/tests/test_latex_auto_correct.py @@ -0,0 +1,22 @@ +""" +对项目中的各个插件进行测试。运行方法:直接运行 python tests/test_plugins.py +""" + + +import os, sys, importlib + + +def validate_path(): + dir_name = os.path.dirname(__file__) + root_dir_assume = os.path.abspath(dir_name + "/..") + os.chdir(root_dir_assume) + sys.path.append(root_dir_assume) + + +validate_path() # 返回项目根路径 + +if __name__ == "__main__": + plugin_test = importlib.import_module('test_utils').plugin_test + + + plugin_test(plugin='crazy_functions.Latex_Function->Latex翻译中文并重新编译PDF', main_input="2203.01927")