fix(ayanamsa): keep a caller-selected mode across import and transit paths (BUG-1269, upstream 23be1807)
This commit is contained in:
@@ -16998,3 +16998,19 @@
|
||||
- 相关记录:BUG-1190
|
||||
- 复发自:无
|
||||
- 修复版本:本分支待发布
|
||||
|
||||
## BUG-1269 | 导入引擎时的岁差引导盖掉调用方已选的模式
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-10-07
|
||||
- 最近更新:2026-10-07
|
||||
- 影响面:`scripts/ayanamsa_utils.py`、`scripts/jyotish_engine.py`、`scripts/bhava_chalit.py`、`scripts/cmd_nakshatra_adv.py`
|
||||
- 用户现象:调用方先选定岁差,再导入引擎,实际计算回到产品默认的 Raman。Bhava Chalit 和星宿命令丢掉请求的岁差与出生秒
|
||||
- 触发条件:先 `apply_ayanamsa` 再导入 `jyotish_engine`;或调用 bhava-chalit / nakshatra / transit 时传入非默认岁差
|
||||
- 根因:引擎导入时无条件 `apply_ayanamsa(DEFAULT_AYANAMSA_NAME)`。本文件作为 `__main__` 跑过之后,Bhava Chalit 和星宿命令再次按模块名导入,引导会再跑一遍。行运行星计算不读请求的岁差。Bhava Chalit 与星宿命令调用 `compute_chart_data` 时不传 `second` 和 `ayanamsa_name`,宫位时刻也不加秒
|
||||
- 修复:`ayanamsa_utils` 增加进程闩 `AYANAMSA_APPLIED_IN_PROCESS`。已有人设过岁差时,导入引导不再覆盖;还没人设过时仍用本仓默认 Raman。行运在计算前应用请求的岁差,并在策略里记下 requested 与 applied。Bhava Chalit 与星宿命令把岁差和出生秒传进星盘,Bhava 的宫位时刻带上秒
|
||||
- 验证:`tests/test_ayanamsa_requested_applied.py`。六种岁差(lahiri、raman、krishnamurti、fagan_bradley、true_citra、true_pushya)在本命、行运、Bhava Chalit、星宿命令上 requested 等于 applied。子进程先设 lahiri 再导入引擎,名字仍是 lahiri
|
||||
- 防复发:上述测试
|
||||
- 相关记录:BUG-1265
|
||||
- 复发自:无
|
||||
- 修复版本:本分支待发布
|
||||
|
||||
Reference in New Issue
Block a user