fix: restore ayanamsa state and keep tests hermetic
Independent Staging Quality Gate / validate (push) Successful in 21m34s
Independent Staging Quality Gate / publish (push) Successful in 2m1s

This commit is contained in:
Jesse_Chen
2026-09-03 23:22:50 +08:00
parent 027e4b0827
commit c1e3f32a0f
30 changed files with 227 additions and 53 deletions
+6 -6
View File
@@ -18,7 +18,7 @@ from datetime import datetime, timedelta
import calendar
import math
from ayanamsa_utils import sidereal_flags
from ayanamsa_utils import DEFAULT_AYANAMSA_NAME, sidereal_flags
# ── Vara(周日行星)──────────────────────────────────────────────────
VARA_LORDS = {
@@ -2138,7 +2138,7 @@ def _local_time_from_jd(jd: float, tz: float) -> str:
return local_dt.strftime('%Y-%m-%d %H:%M')
def _swisseph_sun_moon_lon(jd: float, ayanamsa_name: str = 'lahiri') -> Optional[Tuple[float, float]]:
def _swisseph_sun_moon_lon(jd: float, ayanamsa_name: str = DEFAULT_AYANAMSA_NAME) -> Optional[Tuple[float, float]]:
try:
import swisseph as swe
flags = sidereal_flags(swe, ayanamsa_name)
@@ -2192,7 +2192,7 @@ def calc_panchanga_end_times(
day: int,
tz: float,
local_hours: float,
ayanamsa_name: str = 'raman',
ayanamsa_name: str = DEFAULT_AYANAMSA_NAME,
) -> Optional[Dict]:
"""Calculate current Tithi/Nakshatra/Yoga end times from SwissEph positions."""
jd_start = _jd_for_local_time(year, month, day, local_hours, tz)
@@ -2903,7 +2903,7 @@ def panchanga_range_report(
lat: Optional[float] = None,
lon: Optional[float] = None,
tz: Optional[float] = None,
ayanamsa_name: str = 'raman',
ayanamsa_name: str = DEFAULT_AYANAMSA_NAME,
) -> Dict:
"""Build a date-range Panchanga calendar with daytime inauspicious windows."""
start_dt = datetime.strptime(start_date[:10], '%Y-%m-%d')
@@ -3034,7 +3034,7 @@ def muhurta_range_search(
lon: Optional[float] = None,
tz: Optional[float] = None,
avoid_inauspicious_periods: bool = True,
ayanamsa_name: str = 'raman',
ayanamsa_name: str = DEFAULT_AYANAMSA_NAME,
) -> Dict:
"""Search a date range for ranked Muhurta candidates for a selected activity."""
limit = max(1, min(int(limit or 5), 20))
@@ -3106,7 +3106,7 @@ def build_muhurta_sidecar(
lat: Optional[float] = None,
lon: Optional[float] = None,
tz: Optional[float] = None,
ayanamsa_name: str = 'raman',
ayanamsa_name: str = DEFAULT_AYANAMSA_NAME,
) -> Dict:
"""Compact Muhurta/Panchanga packet for unified workflow consumers."""
activity = activity if activity in ACTIVITY_RULES else 'business'