feat(bhava-bala): reports use the formal three components; local +2/-1.5 score hidden (T4, BUG-1210)

Astrologer ruling 甲13. shadbala.calc_bhava_bala renamed calc_local_bhava_score and
removed from calc_shadbala's result (it fed the report's Bhava Bala table). New
bhava_bala.bhava_bala_from_chart (Bhavadhipati = lord's Shadbala virupas, Bhava
Dig, Bhava Drishti; equal houses as /api/bhava_bala; total and total_rupas; the
module's invented level bands not shown) drives modules.bhava_bala in the full
reading. Reader table: Bhavadhipati | Dig | Drishti | Total (Virupa) | Total
(Rupa); reference edition table and wealth/summary lines read the formal totals.
Other users of the local score: none outside shadbala.py (remedies and health
narrative read Shadbala rupas only).

Changed assertions (three columns in PROGRESS): test_shadbala_complete local-score
tests renamed; test_report_longform_gaps2 fixture rows and heading.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
Jesse_Chen
2026-10-03 12:45:58 +08:00
co-authored by Claude Opus 5.5
parent ea78804b78
commit 6feb1a4aaa
7 changed files with 160 additions and 41 deletions
+10 -8
View File
@@ -616,8 +616,9 @@ def calc_shadbala(planets: Dict, asc_sign: str, birth_hour: float,
for i, (name, _) in enumerate(ranked):
results[name]['rank'] = i + 1
# Bhava Bala(宫位力量)v6.9.12 新增
bhava_bala = calc_bhava_bala(planets, asc_sign)
# BUG-1210 (甲13): the local house score (calc_local_bhava_score, formerly
# calc_bhava_bala: benefic +2, malefic -1.5 ...) is no longer part of this
# result; Bhava Bala is the formal three components in scripts/bhava_bala.py.
return {
'method': 'Shadbala六重力量(absolute Virupas; precise Sthana/Dig/Kala/Drik; bounded BPHS Chesta)',
@@ -629,7 +630,6 @@ def calc_shadbala(planets: Dict, asc_sign: str, birth_hour: float,
'is_night_birth': is_night,
'sun_uttarayana': sun_northern,
'planets': results,
'bhava_bala': bhava_bala,
'ranking': [name for name, _ in ranked],
'strongest': ranked[0][0] if ranked else None,
'weakest': ranked[-1][0] if ranked else None,
@@ -1138,14 +1138,16 @@ def calc_drik_bala(pname: str, sign: str, house: int,
# ============================================================================
# Bhava Bala(宫位力量)v6.9.12 新增
# 本地宫位评分(不是 Bhava Bala)v6.9.12;BUG-1210 改名
# ============================================================================
def calc_bhava_bala(planets: Dict, asc_sign: str) -> Dict:
def calc_local_bhava_score(planets: Dict, asc_sign: str) -> Dict:
"""
Bhava Bala(宫位力量)—— 评估每个宫位的综合强度。
基于 BPHS 和 Parashara 传统:
本地宫位评分(原名 calc_bhava_bala)—— 网站自定的加减分,不是 BPHS Bhava Bala。
占星师定稿 2026-10-03 甲13:删除无出处的「吉星 +2、凶星 -1.5」口径,用户可见面
一律改用 scripts/bhava_bala.py 的正式三分量(Bhavadhipati / Dig / Drishti)。
本函数只留作审计,不进报告、卡片或任何用户可见文字。原说明:
- 宫主星力量(该宫主宰行星的 Shadbala 投影)
- 宫内行星影响(自然吉凶 + 入庙/落陷)
- 相位影响(吉星/凶星对该宫的相位)