f112e9d277efa77ddffb1020d298b137c76c4bd0
## 问题
backfill_stock_daily.py 把部署路径写死在 sys.path.insert 里:
sys.path.insert(0, "/Applications/FinDataHub.app/Contents/Resources/akshare_fetcher/src")
macOS 现网能跑,换平台或换安装位置即 ImportError。这是待办清单里长期挂着的 L2。
## 为什么不在脚本里写 try/except 双路径
那样只解决 bundle 形态,源码树运行时仍走 hardcode。正确做法是让「资源在哪」
由 paths.py 统一回答——它已经是路径的唯一事实来源。
## 新增三个函数
- resources_root():bundle → <App>/Contents/Resources;源码树 → 仓库根
- service_dir(name):<root>/<name> 或 <root>/Services/<name>
- service_src_dir(name):service_dir(name)/"src",可直接塞进 sys.path
**判据是内容而非层级**:仓库根下有 Services/,bundle 的资源目录下没有
(build-app.sh 把各服务平铺拷进 Resources/)。首版按「两级往上」硬算,
源码树里解析成 <repo>/Scripts——被 test_real_repo_layout_resolves 当场抓出。
## 验证(两形态实跑)
源码树:<repo>/Services/akshare_fetcher/src 存在 ✓
bundle:/Applications/…/Resources/akshare_fetcher/src 存在 ✓
import akshare_fetcher 成功 ✓
bundle 侧解析结果与旧硬编码**逐字一致**,故行为零漂移。
## 回归
TestServiceLayout 6 条:bundle / 源码树 / 两者共存时优先 bundle /
都不存在时返回 bundle 形态(错误信息才能指向期望位置)/ src 后缀 / 真实仓库解析。
scripts 257 → 263。
FinDataHub 文档中心
更新于 2026-08-09 | P1-P4 全部完成 | P5 远期规划
目录结构
Docs/
├── README.md ← 你在这里
├── pipeline/ # 🟣 数据管道架构设计
├── macos/ # 🍎 macOS App 设计
└── tracking/ # 📋 项目管理追踪
🟣 pipeline/ — 数据管道架构设计
| 文件 | 类型 | 说明 |
|---|---|---|
findatahub-data-pipeline.html |
设计手册 | 核心架构 + 架构规范:三层 Medallion、7 步 Pipeline、4 级门控、依赖铁律、组件契约、代码质量标准 |
rate_limit_pull_plan.md |
方案文档 | 限流方案:6 接口分析 + 新浪/东财降级 + 北交所重拉 |
EXECUTION_PLAN.md |
已归档 | 重构执行方案(2026-07 阶段,已执行完毕) |
🍎 macos/ — macOS App 设计
| 文件 | 类型 | 说明 |
|---|---|---|
DESIGN.md |
设计规范 | Apple HIG 设计 Token + Liquid Glass 改造方案(附录) |
DEVLOG.md |
开发日志 | SwiftUI App 每日开发记录 |
📋 tracking/ — 项目管理追踪
| 文件 | 类型 | 说明 |
|---|---|---|
TODO.md |
待办 + 完成记录 | 13 项任务 + P1-P4 完成明细 + 架构重构项 |
进度总览
| 阶段 | 内容 | 状态 |
|---|---|---|
| P1 | 采集层:双源交叉验证 + AKShare 修复 + 北交所重拉 | ✅ |
| P2 | 预处理层:7 步 Pipeline + 4 级门控 + 策略画像 | ✅ |
| P3 | 使用层:SDK 11 方法 + API 14 端点 | ✅ |
| P4 | AI 接入:Skills + MCP 7 工具 | ✅ |
| P5 | 云端扩展:阿里云同步 / Redis 缓存 / 数据血缘 | 📅 未来 |
Description
本地金融数据终端 macOS App(SwiftUI + kuaixun-service + MySQL 数据管线)
4.3 MiB
0 Stars
1 Watchers
0 Forks
Languages
Python
58.1%
Swift
26.9%
HTML
8.5%
Vue
2.8%
Shell
1.8%
Other
1.9%