VCF 生成器 轻量版 是一个轻量级 vCard 文件生成器,用户提供的联系人表格后可通过本工具生成 vCard 文件。
本项目使用 uv 进行管理,使用 Poe the Poet 进行任务管理。
- 语言环境:Python 3.12+
- UI 框架:Tkinter
- 包管理器:uv
- 任务运行器:Poe the Poet
- 国际化:gettext
- 代码质量:
- 测试工具:pytest
- 格式化工具:Ruff
- 代码检查:Ruff、Pyright
- 文档质量:rumdl
- 安装依赖:
uv sync - 运行测试:
uv run poe test - 修正格式:
uv run poe format - 检查格式:
uv run poe format-check - 静态检查:
uv run poe lint - 修复 lint 问题:
uv run poe lint-fix - 全量只读检查:
uv run poe check - 修复并验证:
uv run poe fix
VCFGeneratorLiteWithTkinter/assets/— 项目资源dist/— 发布产物scripts/— 项目脚本packaging/— 打包配置innosetup/— InnoSetup 配置pyinstaller/— PyInstaller 配置
src/vcf_generator_lite— 源代码core/— 业务逻辑models/— 数据模型configs/— 配置(如号码检测器)resources/— 静态资源(图标、数据等)ui/actions/— 通用操作layouts/— 通用布局themes/— 应用主题widgets/— 自定义组件(增强型输入框等)windows/— 窗口
utils/— 通用工具__main__.py— 程序入口constants.py— 全局常量(名称、链接等)
tests/— 测试文件docs/— 用户文档dev/— 开发文档architecture/decisions/— 架构决策记录index.md— 架构决策记录清单与规则_template.md— 架构决策记录模板
pyproject.toml— 项目配置
- 涉及结构性或工具选型改动前,必须阅读相关决策了解决策来由,避免重拾已淘汰方案。
- 若改动引入了新的带权衡的决策,或推翻了既有的已采纳 ADR,必须新增对应 ADR。
- 变更既有决策时写新 ADR 将其标记为“已取代”,禁止改写旧文件。
- 新增或推翻 ADR 后,必须在决策清单中同步添加或更新一条记录。
- 必须使用 UTF-8 编码。
- 所有外部链接必须在文档末尾以参考链接的形式定义,格式为
[标识]: URL。示例:- 正文中引用:
[Example Homepage][example-homepage] - 文档结尾:
[example-homepage]: https://example.com/
- 正文中引用:
- 文件必须以换行符结尾。
- 代码行长度应该少于 120 字符。
- 无特殊情况时,必须使用 UTF-8 编码。
- 可翻译字符串必须使用带上下文的 gettext 函数或占位类(例如
pgettext、pgettext_menu_label、LazyPgettext),禁止使用_或gettext等无上下文的调用。 - 编写 UI 相关代码时,必须阅读相关设计与架构文档。
- 文档字符串必须使用 reStructuredText 格式。
- 必须遵循 PEP 8 规范。
- 无返回值函数禁止添加返回类型注解。
- 必须为仅在新版 Python 可用的 API 添加 Python 版本判断或属性检查。
- 必须使用 Python 3.12 兼容的语法
- 必须使用 UTF-8 BOM 编码。
- 必须本地跑通
uv run poe fix与uv run poe test。
- 无用户明确要求时,禁止将任何修改提交到版本控制。
- 无用户明确同意时,禁止执行修改系统全局环境的操作(例如:安装全局包)。