Spaces:
Sleeping
Sleeping
| from toolbox import HotReload # HotReload 的意思是热更新,修改函数插件后,不需要重启程序,代码直接生效 | |
| from toolbox import trimmed_format_exc | |
| def get_crazy_functions(): | |
| from crazy_functions.生成函数注释 import 批量生成函数注释 | |
| from crazy_functions.解析项目源代码 import 解析项目本身 | |
| from crazy_functions.解析项目源代码 import 解析一个Python项目 | |
| from crazy_functions.解析项目源代码 import 解析一个Matlab项目 | |
| from crazy_functions.解析项目源代码 import 解析一个C项目的头文件 | |
| from crazy_functions.解析项目源代码 import 解析一个C项目 | |
| from crazy_functions.解析项目源代码 import 解析一个Golang项目 | |
| from crazy_functions.解析项目源代码 import 解析一个Rust项目 | |
| from crazy_functions.解析项目源代码 import 解析一个Java项目 | |
| from crazy_functions.解析项目源代码 import 解析一个前端项目 | |
| from crazy_functions.解析项目源代码 import 解析一个Lua项目 | |
| from crazy_functions.解析项目源代码 import 解析一个CSharp项目 | |
| from crazy_functions.解析JupyterNotebook import 解析ipynb文件 | |
| from crazy_functions.对话历史存档 import 对话历史存档 | |
| from crazy_functions.对话历史存档 import 载入对话历史存档 | |
| from crazy_functions.对话历史存档 import 删除所有本地对话历史记录 | |
| from crazy_functions.辅助功能 import 清除缓存 | |
| function_plugins = { | |
| "解析整个Python项目": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": True, | |
| "Info": "解析一个Python项目的所有源文件(.py) | 输入参数为路径", | |
| "Function": HotReload(解析一个Python项目) | |
| }, | |
| "载入对话历史存档(先上传存档或输入路径)": { | |
| "Group": "对话", | |
| "Color": "stop", | |
| "AsButton": False, | |
| "Info": "载入对话历史存档 | 输入参数为路径", | |
| "Function": HotReload(载入对话历史存档) | |
| }, | |
| "删除所有本地对话历史记录(谨慎操作)": { | |
| "Group": "对话", | |
| "AsButton": False, | |
| "Info": "删除所有本地对话历史记录,谨慎操作 | 不需要输入参数", | |
| "Function": HotReload(删除所有本地对话历史记录) | |
| }, | |
| "清除所有缓存文件(谨慎操作)": { | |
| "Group": "对话", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "清除所有缓存文件,谨慎操作 | 不需要输入参数", | |
| "Function": HotReload(清除缓存) | |
| }, | |
| "解析整个Matlab项目": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, | |
| "Info": "解析一个Matlab项目的所有源文件(.m) | 输入参数为路径", | |
| "Function": HotReload(解析一个Matlab项目) | |
| }, | |
| "解析整个C++项目头文件": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "解析一个C++项目的所有头文件(.h/.hpp) | 输入参数为路径", | |
| "Function": HotReload(解析一个C项目的头文件) | |
| }, | |
| "解析整个C++项目(.cpp/.hpp/.c/.h)": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "解析一个C++项目的所有源文件(.cpp/.hpp/.c/.h)| 输入参数为路径", | |
| "Function": HotReload(解析一个C项目) | |
| }, | |
| "解析整个Go项目": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "解析一个Go项目的所有源文件 | 输入参数为路径", | |
| "Function": HotReload(解析一个Golang项目) | |
| }, | |
| "解析整个Rust项目": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "解析一个Rust项目的所有源文件 | 输入参数为路径", | |
| "Function": HotReload(解析一个Rust项目) | |
| }, | |
| "解析整个Java项目": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "解析一个Java项目的所有源文件 | 输入参数为路径", | |
| "Function": HotReload(解析一个Java项目) | |
| }, | |
| "解析整个前端项目(js,ts,css等)": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "解析一个前端项目的所有源文件(js,ts,css等) | 输入参数为路径", | |
| "Function": HotReload(解析一个前端项目) | |
| }, | |
| "解析整个Lua项目": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "解析一个Lua项目的所有源文件 | 输入参数为路径", | |
| "Function": HotReload(解析一个Lua项目) | |
| }, | |
| "解析整个CSharp项目": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "解析一个CSharp项目的所有源文件 | 输入参数为路径", | |
| "Function": HotReload(解析一个CSharp项目) | |
| }, | |
| "解析Jupyter Notebook文件": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, | |
| "Info": "解析Jupyter Notebook文件 | 输入参数为路径", | |
| "Function": HotReload(解析ipynb文件), | |
| "AdvancedArgs": True, # 调用时,唤起高级参数输入区(默认False) | |
| "ArgsReminder": "若输入0,则不解析notebook中的Markdown块", # 高级参数输入区的显示提示 | |
| }, | |
| "批量生成函数注释": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "批量生成函数的注释 | 输入参数为路径", | |
| "Function": HotReload(批量生成函数注释) | |
| }, | |
| "保存当前的对话": { | |
| "Group": "对话", | |
| "AsButton": True, | |
| "Info": "保存当前的对话 | 不需要输入参数", | |
| "Function": HotReload(对话历史存档) | |
| }, | |
| "[多线程Demo]解析此项目本身(源码自译解)": { | |
| "Group": "对话|编程", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "多线程解析并翻译此项目的源码 | 不需要输入参数", | |
| "Function": HotReload(解析项目本身) | |
| }, | |
| } | |
| try: | |
| from crazy_functions.联网的ChatGPT import 连接网络回答问题 | |
| function_plugins.update({ | |
| "连接网络回答问题(输入问题后点击该插件,需要访问谷歌)": { | |
| "Group": "对话", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| # "Info": "连接网络回答问题(需要访问谷歌)| 输入参数是一个问题", | |
| "Function": HotReload(连接网络回答问题) | |
| } | |
| }) | |
| from crazy_functions.联网的ChatGPT_bing版 import 连接bing搜索回答问题 | |
| function_plugins.update({ | |
| "连接网络回答问题(中文Bing版,输入问题后点击该插件)": { | |
| "Group": "对话", | |
| "Color": "stop", | |
| "AsButton": False, # 加入下拉菜单中 | |
| "Info": "连接网络回答问题(需要访问中文Bing)| 输入参数是一个问题", | |
| "Function": HotReload(连接bing搜索回答问题) | |
| } | |
| }) | |
| except: | |
| print(trimmed_format_exc()) | |
| print('Load function plugin failed') | |
| try: | |
| from crazy_functions.解析项目源代码 import 解析任意code项目 | |
| function_plugins.update({ | |
| "解析项目源代码(手动指定和筛选源代码文件类型)": { | |
| "Group": "编程", | |
| "Color": "stop", | |
| "AsButton": False, | |
| "AdvancedArgs": True, # 调用时,唤起高级参数输入区(默认False) | |
| "ArgsReminder": "输入时用逗号隔开, *代表通配符, 加了^代表不匹配; 不输入代表全部匹配。例如: \"*.c, ^*.cpp, config.toml, ^*.toml\"", # 高级参数输入区的显示提示 | |
| "Function": HotReload(解析任意code项目) | |
| }, | |
| }) | |
| except: | |
| print(trimmed_format_exc()) | |
| print('Load function plugin failed') | |
| """ | |
| 设置默认值: | |
| - 默认 Group = 对话 | |
| - 默认 AsButton = True | |
| - 默认 AdvancedArgs = False | |
| - 默认 Color = secondary | |
| """ | |
| for name, function_meta in function_plugins.items(): | |
| if "Group" not in function_meta: | |
| function_plugins[name]["Group"] = '对话' | |
| if "AsButton" not in function_meta: | |
| function_plugins[name]["AsButton"] = True | |
| if "AdvancedArgs" not in function_meta: | |
| function_plugins[name]["AdvancedArgs"] = False | |
| if "Color" not in function_meta: | |
| function_plugins[name]["Color"] = 'secondary' | |
| return function_plugins | |