fix(ayanamsa): pin Lahiri on reference sets and add a user setting
Product default stays Raman. Public-case revalidation and fixture dashas now pass --ayanamsa lahiri; profiles store the four selectable values. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -106,7 +106,7 @@ except ModuleNotFoundError: # pragma: no cover - script execution path
|
||||
release_heavy_compute_slot,
|
||||
)
|
||||
|
||||
from ayanamsa_utils import DEFAULT_AYANAMSA_NAME, UnsupportedAyanamsaError, normalize_ayanamsa_name
|
||||
from ayanamsa_utils import DEFAULT_AYANAMSA_NAME, UnsupportedAyanamsaError, ayanamsa_display_name, normalize_ayanamsa_name
|
||||
from raman_support_observations import build_raman_support_observations
|
||||
|
||||
load_local_env(REPO_ROOT)
|
||||
@@ -807,7 +807,7 @@ _CHARA_DASHA_ROUTES = frozenset({'career', 'timing', 'annual', 'marriage'})
|
||||
def _request_ayanamsa(*sources) -> str:
|
||||
for source in sources:
|
||||
if isinstance(source, dict):
|
||||
raw = source.get('ayanamsa') or source.get('ayanamsa_name')
|
||||
raw = source.get('ayanamsa') or source.get('ayanamsa_name') or source.get('ayanamsa_policy')
|
||||
else:
|
||||
raw = source
|
||||
if raw not in (None, ''):
|
||||
@@ -2850,7 +2850,7 @@ def _attach_vedastro_main_entry_overview(chart_result, birth_payload):
|
||||
'lat': birth_payload.get('lat'),
|
||||
'lon': birth_payload.get('lon'),
|
||||
'tz': birth_payload.get('tz'),
|
||||
'ayanamsa_policy': birth_payload.get('ayanamsa') or 'lahiri',
|
||||
'ayanamsa_policy': _request_ayanamsa(birth_payload),
|
||||
'node_policy': birth_payload.get('node_mode') or birth_payload.get('nodeMode') or 'mean',
|
||||
}, route='overview', reference_date=reference_date, case_id='api_chart')
|
||||
if isinstance(vedastro_evidence, dict):
|
||||
@@ -4014,7 +4014,7 @@ class JyotishAPIHandler(BaseHTTPRequestHandler):
|
||||
'lat': lat,
|
||||
'lon': lon,
|
||||
'tz': tz,
|
||||
'ayanamsa_policy': body.get('ayanamsa_policy') or body.get('ayanamsa') or 'lahiri',
|
||||
'ayanamsa_policy': _request_ayanamsa(body),
|
||||
'node_policy': body.get('node_policy') or body.get('node_mode') or 'mean',
|
||||
}
|
||||
result = _load_local_module('vedastro_service_adapter').run_range_scan_for_case(
|
||||
@@ -6944,13 +6944,13 @@ class JyotishAPIHandler(BaseHTTPRequestHandler):
|
||||
except ImportError:
|
||||
fallback = self._fallback_chart(
|
||||
year, month, day, hour, minute, second, lat, lon, tz,
|
||||
skip_vedastro_main_entry_overview=bool(body.get('skip_vedastro_main_entry_overview')),
|
||||
skip_vedastro_main_entry_overview=bool(body.get('skip_vedastro_main_entry_overview')), ayanamsa_name=_request_ayanamsa(body),
|
||||
)
|
||||
return _store_api_chart_response_cache(cache_payload, fallback)
|
||||
|
||||
def _fallback_chart(
|
||||
self, year, month, day, hour, minute, second, lat, lon, tz,
|
||||
*, skip_vedastro_main_entry_overview=False,
|
||||
*, skip_vedastro_main_entry_overview=False, ayanamsa_name=DEFAULT_AYANAMSA_NAME,
|
||||
):
|
||||
"""无Swiss Ephemeris时的简化计算"""
|
||||
import hashlib
|
||||
@@ -6996,7 +6996,7 @@ class JyotishAPIHandler(BaseHTTPRequestHandler):
|
||||
'second': int(second),
|
||||
'tz': f"UTC{'+' if tz >= 0 else ''}{tz}",
|
||||
'lat': lat,
|
||||
'lon': lon,
|
||||
'lon': lon, 'ayanamsa_name': ayanamsa_name, 'ayanamsa_display': ayanamsa_display_name(ayanamsa_name),
|
||||
},
|
||||
'ascendant': {'sign': asc_sign, 'sign_idx': asc_sign_idx},
|
||||
'planets': planets, 'houses': houses,
|
||||
@@ -7027,7 +7027,7 @@ class JyotishAPIHandler(BaseHTTPRequestHandler):
|
||||
'lat': lat,
|
||||
'lon': lon,
|
||||
'tz': tz,
|
||||
'ayanamsa': 'lahiri',
|
||||
'ayanamsa': ayanamsa_name,
|
||||
'node_mode': 'mean',
|
||||
})
|
||||
_attach_guided_topics(result)
|
||||
@@ -7083,7 +7083,7 @@ class JyotishAPIHandler(BaseHTTPRequestHandler):
|
||||
if planet in {'Sun', 'Moon', 'Mars', 'Mercury', 'Jupiter', 'Venus', 'Saturn', 'Rahu', 'Ketu'}
|
||||
and isinstance(pdata, dict)
|
||||
}
|
||||
ayanamsa_display = birth.get('ayanamsa_display') or 'Raman'
|
||||
ayanamsa_display = birth.get('ayanamsa_display') or ayanamsa_display_name(birth.get('ayanamsa_name') or birth.get('ayanamsa'))
|
||||
node_mode = birth.get('node_mode') or 'mean'
|
||||
prompt_lines = [
|
||||
'你是一个审慎的 AI Native 印度/吠陀占星分析助手。',
|
||||
|
||||
@@ -227,6 +227,7 @@ def build_report() -> dict[str, Any]:
|
||||
}
|
||||
return {
|
||||
"scope": "local_jyotish_accuracy_report",
|
||||
"reference_ayanamsa": "lahiri",
|
||||
"generated_at": datetime.now(timezone.utc).isoformat(),
|
||||
"summary": summary,
|
||||
"checks": checks,
|
||||
|
||||
Reference in New Issue
Block a user