本项目使用 uv 进行管理,使用 Poe the Poet 进行任务管理。
- 开发语言:Python 3.12+
- UI 框架:Tkinter
- 包管理器:uv
- 任务运行器:Poe the Poet
- 国际化:gettext
- 代码质量:
- 测试工具:pytest
- 格式化工具:Ruff
- 代码检查:Ruff、Pyright
- 安装依赖:
uv sync - 运行测试:
uv run poe test - 格式化代码:
uv run poe format - 检查代码:
uv run poe check - 修复代码:
uv run poe fix
- 构建安装程序:
uv run poe build-installer--force:强制重建上游输出(PyInstaller 分发包)。--force-download:强制联网下载 InnoSetup 扩展。--no-verify-ssl:下载时跳过 SSL 验证。
- 构建便携包:
uv run poe build-portable--force:强制重建上游输出(PyInstaller 分发包)。
- 构建 ZIP 应用:
uv run poe build-zipapp--force:强制重建上游输出(Wheel)。
- 构建 Wheel:
uv run poe build-wheel
VCFGeneratorLiteWithTkinter/
├── assets/ # 项目资源
├── dist/ # 发布产物
├── scripts/ # 项目脚本
├── packaging/ # 打包配置
│ ├── innosetup/ # InnoSetup 配置
│ └── pyinstaller/ # PyInstaller 配置
├── src/vcf_generator_lite # 源代码
│ ├── core/ # 业务逻辑
│ ├── models # 数据模型
│ ├── resources/ # 静态资源(图标、数据等)
│ ├── ui/
│ │ ├── actions/ # 通用工具
│ │ ├── layouts/ # 通用布局
│ │ ├── themes/ # 应用主题
│ │ ├── widgets/ # 自定义组件(增强型输入框等)
│ │ └── windows/ # 窗口
│ ├── utils/ # 工具类
│ ├── __main__.py # 程序入口
│ └── constants.py # 全局常量(名称、链接等)
├── tests/ # 测试文件
└── pyproject.toml # 项目配置- 使用兼容 Python 3.12 的语法以及 API。
- Ruff 检查器,严格类型检查。
- 行长度:120 字符
- 无返回值的函数不添加不必要的类型注解。
- 文档字符串使用 reStructuredText 格式。
- 所有外部链接应在文档末尾以参考链接的形式定义,格式为
[标识]: URL。示例:- 文档结尾:
[release-github]: https://github.com/hellotool/VCFGeneratorLiteWithTkinter/releases/latest - 正文中引用:
[GitHub Releases][release-github]
- 文档结尾:
- 用户文档(
docs/)按 Diátaxis 框架组织为四类:入门教程、操作指南、技术参考、原理解析。 - 开发者文档(
docs/dev/)按开发生命周期组织:开始 → 开发 → 架构与设计 → 发布。
有关视觉设计、版本管理和构建指南的信息,请参阅 docs/dev 目录。
- 在完成代码修改后,请勿提交到版本控制。
- 任何操作都不应修改系统环境。例如,不应安装全局包。
- 在完成代码修改任务后必须使用
uv run poe format格式化代码。 - 在完成代码修改任务后必须使用
uv run poe check检查代码。 - 每个文件结尾必须添加空行,使用 UTF-8 编码,特殊情况(例如 PowerShell 脚本)除外。
- 可翻译字符串必须使用带上下文的
pgettext(或pgettext_menu_label/LazyPgettext),禁止使用_/gettext等无上下文的调用。 - 创建 Agent Skill 时,必须放在
.agents/skills/目录下,禁止使用.trae/skills/目录。