surface partial tajika motion candidates

This commit is contained in:
732642856
2026-07-14 19:40:49 +08:00
parent 63f56f9457
commit ba0e836a70
6 changed files with 34 additions and 5 deletions
+7 -2
View File
@@ -5093,8 +5093,13 @@ def cmd_full_reading(args):
try:
from tajika import calc_tajika_yogas, calc_all_sahams
# Tajika Yogas(用本命盘行星经度)
tc_yogas = calc_tajika_yogas(planet_lons)
# Seven-planet Tajika candidates require actual instantaneous speed.
tajika_planets = {
name: {"longitude": item.get("degree_raw", item.get("lon")), "speed": item.get("speed")}
for name, item in planets.items()
if isinstance(item, dict) and name in {"Sun", "Moon", "Mars", "Mercury", "Jupiter", "Venus", "Saturn"}
}
tc_yogas = calc_tajika_yogas(tajika_planets)
report['modules']['tajika_yogas'] = tc_yogas
# Sahams(特殊点)—— 需要出生时间
+15 -2
View File
@@ -61,6 +61,19 @@ def calculate_tajika_interactions(planets: dict[str, dict[str, Any]]) -> dict[st
"status": "partial",
"nodes_excluded": True,
"interactions": interactions,
"blocked_named_yogas": ["Nakta", "Yamaya", "Manahoo", "Ithasala chain"],
"boundary": "Only aspect/applying evidence is computed. Named Tajika yoga chains and verdicts remain blocked pending classic golden cases.",
"candidate_yogas": [
{
"name": "Ithasala_candidate" if row["motion"] == "applying" else "Easarapha_candidate",
"planets": row["planets"],
"aspect": row["aspect"],
"residual": row["residual"],
"average_deeptamsa": row["average_deeptamsa"],
"motion": row["motion"],
"rule_source": "references/tajika-yoga-complete-guide.md#2.1-2.2",
"status": "partial",
}
for row in interactions
],
"blocked_named_yogas": ["Nakta", "Yamaya", "Manahoo", "Kamboola", "Ithasala/Easarapha adjudication"],
"boundary": "Candidate labels are derived only from seven-planet aspect, Deeptamsa and applying/separating evidence. Full named-yoga chains and event verdicts remain blocked pending classic golden cases.",
}