3314f244f2
- jyotish-engine-modules: 5个核心排盘引擎模块完整代码 - karaka_calculator.py (Karaka分配计算器,支持BPHS/JH兼容模式) - special_lagnas.py (特殊上升点计算) - vimsopaka_calculator.py (Vimsopaka Bala分盘力量) - avastha_calculator.py (Avasthas行星状态) - divisional_charts_extended.py (D2-D60完整分盘) - jyotish-full-reading-integration: v4.4.0集成方案 - 21步调用链完整流程 - 5个新模块插入点详解 - JH兼容模式使用指南 - 集成检查清单 - 自动化测试脚本 - v4.4.0 CHANGELOG 版本:v4.4.0 调用链:16步 → 21步 新增:special_lagnas/vimsopaka/varga_extended/karaka_jh/avasthas
5.1 KiB
5.1 KiB
jyotish_engine.py v4.4.0 集成检查清单
前置准备
-
确认 5 个新模块已存在于
scripts/目录karaka_calculator.pyspecial_lagnas.pyvimsopaka_calculator.pyavastha_calculator.pydivisional_charts_extended.py
-
确认依赖已安装
pip install swisseph numpy
代码修改
1. 导入模块
- 在
jyotish_engine.py顶部添加导入语句from scripts.karaka_calculator import KarakaCalculator, KarakaMode from scripts.special_lagnas import SpecialLagnasCalculator from scripts.vimsopaka_calculator import VimsopakaCalculator from scripts.avastha_calculator import AvasthaCalculator from scripts.divisional_charts_extended import DivisionalChartsExtended
2. 修改 full_reading() 函数
-
Step 1.5: 在 Chart 之后添加 Special Lagnas
result['modules']['special_lagnas'] = SpecialLagnasCalculator.calculate(...) -
Step 4.5: 在 Varga Full 之后添加 Vimsopaka
result['modules']['vimsopaka'] = {} for planet in result['modules']['chart']['planets']: result['modules']['vimsopaka'][planet] = {...} -
Step 4.6: 在 Vimsopaka 之后添加 Varga Extended
result['modules']['varga_extended'] = DivisionalChartsExtended.calculate_extended(...) -
Step 6+: 修改 Jaimini 模块,添加三种 Karaka 模式
result['modules']['jaimini'] = { 'chara_karaka_7': KarakaCalculator.calculate(..., mode=KarakaMode.BPHS_7), 'chara_karaka_8': KarakaCalculator.calculate(..., mode=KarakaMode.BPHS_8), 'chara_karaka_jh': KarakaCalculator.calculate(..., mode=KarakaMode.JH_COMPATIBLE) } -
Step 10.5: 在 Shadbala 之后添加 Avasthas
result['modules']['avasthas'] = {} for planet in result['modules']['chart']['planets']: result['modules']['avasthas'][planet] = AvasthaCalculator.calculate_all(...)
3. 更新版本信息
-
修改
version字段'version': '4.4.0-full-reading' -
添加
summary字段result['summary'] = { 'version': '4.4.0-full-reading', 'total_steps': 21, 'new_modules': [ 'special_lagnas (Step 1.5)', 'vimsopaka (Step 4.5)', 'varga_extended (Step 4.6)', 'karaka_jh_compatible (Step 6+)', 'avasthas (Step 10.5)' ], 'next_step': '使用 karaka_jh 模式与 Jagannatha Hora 保持一致' }
测试验证
单元测试(每个模块独立测试)
-
测试 Special Lagnas
python3 scripts/special_lagnas.py --test -
测试 Karaka Calculator
python3 scripts/karaka_calculator.py --mode jh --test -
测试 Vimsopaka
python3 scripts/vimsopaka_calculator.py --test -
测试 Avastha
python3 scripts/avastha_calculator.py --test -
测试 Divisional Charts Extended
python3 scripts/divisional_charts_extended.py --test
集成测试(完整调用链)
-
运行 full-reading
python3 scripts/jyotish_engine.py --mode full-reading \ --birth-date "1990-01-01" \ --birth-time "12:00:00" \ --latitude 28.6139 \ --longitude 77.2090 \ --timezone "Asia/Kolkata" -
检查输出 JSON 结构
version为4.4.0-full-readingmodules包含 21 个步骤special_lagnas存在且有数据vimsopaka存在且有数据varga_extended存在且有数据jaimini.chara_karaka_jh存在且有数据avasthas存在且有数据
JH 兼容模式验证
- 检查
chara_karaka_jh输出- Rahu 是否固定在 MK(第8位)
- 其他行星排序是否正确
- 与你的 11 页 PDF 对比是否一致
性能测试
- 记录完整调用链执行时间
time python3 scripts/jyotish_engine.py --mode full-reading ...- 执行时间 < 10 秒(可接受)
- 执行时间 < 5 秒(优秀)
Git 提交
-
添加修改文件
git add scripts/jyotish_engine.py -
提交
git commit -m "feat: Integrate 5 new modules into full-reading chain (v4.4.0) - Step 1.5: special_lagnas (特殊上升点) - Step 4.5: vimsopaka (分盘力量) - Step 4.6: varga_extended (扩展分盘) - Step 6+: karaka_jh_compatible (JH兼容模式) - Step 10.5: avasthas (行星状态) 调用链从 16 步扩展到 21 步 版本号:v4.1.0 → v4.4.0" -
推送到 GitHub
git push origin main
文档更新
-
更新 README.md
- 添加 v4.4.0 版本说明
- 更新调用链流程图
- 添加 JH 兼容模式说明
-
更新 CHANGELOG.md
- 记录 v4.4.0 的所有变更
后续优化(可选)
- 添加缓存机制(减少重复计算)
- 添加并行计算(提升性能)
- 添加按需加载(只执行指定步骤)
- 生成 PDF 报告模板
- 添加 Web API 接口
检查日期: ___________ 检查人: ___________ 状态: [ ] 通过 / [ ] 未通过