new file: dependence.py

new file:   package.py
new file:   packup.bat
new file:   packup.sh
new file:   requirements.txt
new file:   scripts/__init__.py
new file:   scripts/file_store_api.py
new file:   src/__init__.py
new file:   src/config.toml
new file:   src/modules/__init__.py
new file:   src/modules/plugin_modules.py
new file:   src/modules/user_module.py
new file:   src/process.py
new file:   test.py
This commit is contained in:
JianFeeeee
2025-08-14 16:01:37 +08:00
parent 16c694e1ec
commit 85ca0e7589
14 changed files with 559 additions and 0 deletions

62
package.py Normal file
View File

@ -0,0 +1,62 @@
import os
import re
import shutil
import ast
from pathlib import Path
def find_plugin_class(process_file: str) -> str:
"""从process.py中找到继承BasePlugin的类名"""
with open(process_file, "r", encoding="utf-8") as f:
content = f.read()
# 使用AST解析Python代码比正则更可靠
tree = ast.parse(content)
for node in ast.walk(tree):
if isinstance(node, ast.ClassDef):
# 检查是否继承BasePlugin
for base in node.bases:
if isinstance(base, ast.Name) and base.id == "BasePlugin":
return node.name
raise ValueError("❌ 未找到继承自BasePlugin的类请检查process.py")
def create_zip_package(class_name: str):
"""打包成ZIP文件类名全小写"""
src_path = Path("src")
zip_name = class_name.lower() # 类名转全小写作为ZIP名
temp_dir = Path(f"temp_{zip_name}") # 临时打包目录
# 1. 创建临时目录
temp_dir.mkdir(exist_ok=True)
# 2. 复制需要的文件
shutil.copytree(src_path / "packages", temp_dir / "packages")
shutil.copy(src_path / "process.py", temp_dir)
shutil.copy(src_path / "config.toml", temp_dir)
# 3. 生成ZIP
shutil.make_archive(f"dist/{zip_name}", "zip", temp_dir)
# 4. 清理临时目录
shutil.rmtree(temp_dir)
print(f"✅ 打包完成dist/{zip_name}.zip")
def main():
process_file = "src/process.py"
if not os.path.exists(process_file):
print(f"❌ 错误:{process_file} 文件不存在!")
return
try:
plugin_class = find_plugin_class(process_file)
print(f"找到插件类: {plugin_class} → 包名: {plugin_class.lower()}.zip")
Path("dist").mkdir(exist_ok=True) # 创建dist目录
create_zip_package(plugin_class)
except Exception as e:
print(f"❌ 打包失败:{e}")
if __name__ == "__main__":
main()