fix(rectification): ask finance and health, show Bhava and Pranapada

Interviews skipped D2/D11 and D30 unless the user volunteered them, so those scoring layers almost never ran. Ask them after family, keep relocation out of rotation, and display Bhava/Pranapada transitions without delaying adopt.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-20 11:49:27 +08:00
parent c1bd09351b
commit 1b93afc594
28 changed files with 860 additions and 51 deletions
+17 -4
View File
@@ -368,13 +368,21 @@ def _fine_minute_indices(
lat: float,
lon: float,
tz: float,
sun_degree: float | None,
moon_degree: float | None,
) -> dict[str, int]:
wrapped = float(ascendant_longitude) % 360.0
indices: dict[str, int] = {"pada_index": _pada_index(ascendant_longitude)}
calculator = special_lagnas.SpecialLagnasCalculator()
if isinstance(sun_degree, (int, float)) and isinstance(moon_degree, (int, float)):
try:
bhava = calculator.calculate_bhava_lagna(wrapped, float(sun_degree), float(moon_degree))
indices["bhava_sign_index"] = int(float(bhava["degree"]) // 30.0) % 12
except (TypeError, ValueError, KeyError, OverflowError):
pass
sunrise = _sunrise_local_naive(candidate_at.date().isoformat(), lat, lon, tz)
if sunrise is None:
return indices
calculator = special_lagnas.SpecialLagnasCalculator()
wrapped = float(ascendant_longitude) % 360.0
try:
hora = calculator.calculate_hora_lagna(wrapped, 0.0, candidate_at, sunrise)
ghati = calculator.calculate_ghati_lagna(wrapped, candidate_at, sunrise)
@@ -382,8 +390,11 @@ def _fine_minute_indices(
ghati_degree = float(ghati["degree"])
except (TypeError, ValueError, KeyError, OverflowError):
return indices
indices["hora_sign_index"] = int(hora_degree // 30.0) % 12
indices["ghati_sign_index"] = int(ghati_degree // 30.0) % 12
hora_index = int(hora_degree // 30.0) % 12
ghati_index = int(ghati_degree // 30.0) % 12
indices["hora_sign_index"] = hora_index
indices["ghati_sign_index"] = ghati_index
indices["pranapada_sign_index"] = (hora_index + ghati_index) % 12
return indices
@@ -470,6 +481,8 @@ def build_candidate_static_context(
lat=float(request["lat"]),
lon=float(request["lon"]),
tz=float(request["tz"]),
sun_degree=planet_longitudes.get("Sun") if isinstance(planet_longitudes.get("Sun"), (int, float)) else None,
moon_degree=planet_longitudes.get("Moon") if isinstance(planet_longitudes.get("Moon"), (int, float)) else None,
),
"varga_ascendants": varga_ascendants,
"arudha_signs": arudha_signs,