diff --git a/README.md b/README.md index 3d76d32..7a55a86 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,9 @@ ## 当前事实 -- Python 版本目标:Python 3.8。 +- Python 版本目标:当前系统 Python 3.8,不创建虚拟环境。 - Web 框架目标:Flask 3.0.3。 +- 依赖管理:T-001 创建 `requirements.txt`,使用 `python -m pip install -r requirements.txt` 安装到当前系统 Python 3.8 环境。 - 计划使用 Redis 保存 CHIS 会话缓存。 - 当前已有资料:`reverse_file/` 下的 CHIS 前端脚本、schema 和 HAR。 - 当前已有查询 HAR:`reverse_file/20260704_query_health_check.har`,包含 `getHMNIListOfHTML` 和 `getCheckInfoDetail`。 diff --git a/docs/03-tech-stack.md b/docs/03-tech-stack.md index 04b489e..a327e99 100644 --- a/docs/03-tech-stack.md +++ b/docs/03-tech-stack.md @@ -6,7 +6,7 @@ | 维度 | 选型 | 状态 | 理由 / 说明 | | --- | --- | --- | --- | -| 运行时 | Python 3.8 | 已定 | 用户指定 | +| 运行时 | 当前系统 Python 3.8 | 已定 | 用户指定,不创建虚拟环境 | | Web 框架 | Flask 3.0.3 | 已定 | 用户指定,适合轻量 API 服务 | | 数据校验 | 待定,建议 Pydantic v1 或 Marshmallow | 待定 | Python 3.8 下需注意版本兼容 | | HTTP 客户端 | 待定,建议 `requests.Session` | 待定 | CHIS 会话 cookie 管理简单稳定 | @@ -20,6 +20,7 @@ ## 二、决策记录与演进 - Flask 3.0.3 + Python 3.8 已定,但 Python 3.8 生命周期已结束;如果部署环境允许,未来建议评估 Python 3.10+。 +- 本项目使用当前系统 Python 3.8 环境,不创建虚拟环境;依赖仍必须写入 `requirements.txt` 并固定关键版本。 - Redis 是会话缓存核心,不建议把 CHIS 会话保存在进程内存。 - CHIS public key 从配置文件或环境变量读取;当前不依赖 `/chis/logon/publicKey` 动态获取。 - CHIS 登录代码来自 Django 项目参考实现,迁移到 Flask 时只复用登录链路、SM2 算法和请求形状,不复用 Django model/cache。 @@ -32,7 +33,7 @@ | 用途 | 命令 | | --- | --- | -| 安装依赖 | 待定 | +| 安装依赖 | `python -m pip install -r requirements.txt` | | 本地开发 | 待定 | | 测试 | 待定 | | 格式化 / 静态检查 | 待定 | @@ -46,5 +47,6 @@ Get-ChildItem -Recurse -File ## 四、依赖纪律 - 新增依赖前先说明用途、替代方案和 Python 3.8 兼容性。 +- 不创建 `.venv`、`venv` 或其他项目虚拟环境目录;如需隔离,必须先更新本文并取得确认。 - 和 CHIS 登录、SM2/RSA/AES 加密相关的依赖必须由真实登录代码驱动,不要凭 HAR 猜;当前 SM2 参考 `hans_chis.sm2.sm2_encrypt`。 - 不允许在代码或 `.env.example` 中写真实 CHIS 地址、账号、密码、Cookie。 diff --git a/docs/06-tasks.md b/docs/06-tasks.md index 426cfdb..13dfa73 100644 --- a/docs/06-tasks.md +++ b/docs/06-tasks.md @@ -18,7 +18,7 @@ | ID | 任务 | 依赖 | 验收要点 | 状态 | | --- | --- | --- | --- | --- | -| T-001 | 初始化 Flask 项目骨架 | - | Python 3.8 可创建虚拟环境;Flask 3.0.3 依赖固定;本地 health check API 可启动;真实命令同步到技术栈和当前状态 | TODO | +| T-001 | 初始化 Flask 项目骨架 | - | 使用当前系统 Python 3.8,不创建虚拟环境;创建 `requirements.txt` 并固定 `Flask==3.0.3`;本地 health check API 可启动;真实命令同步到技术栈和当前状态 | TODO | | T-002 | 建立基础配置与目录 | T-001 | 目录符合架构文档;配置从环境变量读取;无真实密钥 | TODO | | T-003 | 建立最小测试框架 | T-001 | pytest 可运行;至少有 health check 或 app factory 测试 | TODO | diff --git a/docs/current-state.md b/docs/current-state.md index 0ff2f84..5424895 100644 --- a/docs/current-state.md +++ b/docs/current-state.md @@ -6,7 +6,7 @@ - 日期:2026-07-04 - 阶段:MVP 起步 / 文档与逆向资料整理 -- 技术栈:目标为 Python 3.8、Flask 3.0.3、Redis;代码尚未初始化 +- 技术栈:目标为当前系统 Python 3.8、Flask 3.0.3、Redis;代码尚未初始化;不创建虚拟环境 - 生产代码:暂无 - 测试:暂无 - 数据 / 资料:`reverse_file/` 下已有 CHIS HAR、前端脚本和 schema;`D:\hans\chupd\chis\login_client_v2.py` 可作为登录链路参考 @@ -37,6 +37,7 @@ ## 已确认技术事实 - CHIS public key 可通过配置文件或环境变量提供。 +- 使用当前系统 Python 3.8 环境,不创建虚拟环境;T-001 创建 `requirements.txt` 固定依赖。 - 登录链路参考 `login_client_v2.py`:`myRoles` -> 选择 `责任医生助理` / `责任医生` -> `myApps` -> 拼接 cookie。 - SM2 加密参考 `hans_chis.sm2.sm2_encrypt`:`gmssl.sm2.CryptSM2(mode=0)`,返回带 `04` 前缀密文。 - 会话验证可用 `chis.myPageService / getLanderInfo`。 diff --git a/progress.md b/progress.md index 5cb7f06..60e5737 100644 --- a/progress.md +++ b/progress.md @@ -43,3 +43,12 @@ - 阻塞:无。 - 决策:public key 由配置提供;`D:\hans\chupd\chis\login_client_v2.py` 作为登录链路参考但不能原样依赖 Django;保存上报前新增只读体检详情查询阶段;第一版详情查询需要 `healthCheck + phrId + idCard + checkDate`,不假设只传体检 id 即可查询。 - 下一步:T-001 初始化 Flask 项目骨架。 + +## 2026-07-04 DOC-003 明确使用系统 Python 3.8 + +- 状态:DONE +- 变更:更新 `docs/06-tasks.md`、`docs/03-tech-stack.md`、`docs/current-state.md` 和 `README.md`。 +- 验证:已执行 `rg` 检查 `虚拟环境`、`venv`、`requirements.txt`、`pip install` 等关键词,并执行 `git diff` 确认仅包含系统 Python 3.8 环境决策相关文档变更。 +- 阻塞:无。 +- 决策:项目使用当前系统 Python 3.8,不创建虚拟环境;T-001 创建 `requirements.txt` 并固定 `Flask==3.0.3`;依赖安装命令使用 `python -m pip install -r requirements.txt`。 +- 下一步:T-001 初始化 Flask 项目骨架。