feat(rectification): pass ayanamsa per request

This commit is contained in:
Jesse_Chen
2026-09-04 00:26:57 +08:00
parent 3b09bbbee0
commit 44d3d3931b
15 changed files with 135 additions and 16 deletions
@@ -34,6 +34,12 @@ def _engine_json(command: str, payload: dict[str, Any], *, timeout: int = 20) ->
args = [sys.executable, str(ENGINE), command]
for key in ("year", "month", "day", "hour", "minute", "lat", "lon", "tz"):
args.extend([f"--{key}", str(payload[key])])
args.extend([
"--ayanamsa",
str(payload.get("ayanamsa") or DEFAULT_AYANAMSA_NAME).strip().lower(),
"--node-mode",
str(payload.get("node_mode", payload.get("nodeMode", "mean"))).strip().lower(),
])
if command == "varga-full":
args.extend(["--divisions", ",".join(_VARGAS)])
completed = subprocess.run(args, cwd=ROOT, capture_output=True, text=True, timeout=timeout, check=True)
@@ -148,6 +154,8 @@ def main() -> int:
parser.add_argument(f"--{field}", required=True, type=cast)
parser.add_argument("--uncertainty-minutes", type=int, default=30)
parser.add_argument("--step-minutes", type=int, default=1)
parser.add_argument("--ayanamsa", default=DEFAULT_AYANAMSA_NAME)
parser.add_argument("--node-mode", choices=("mean", "true"), default="mean")
args = parser.parse_args()
print(json.dumps(scan_candidate_times(vars(args), uncertainty_minutes=args.uncertainty_minutes, step_minutes=args.step_minutes), ensure_ascii=False, indent=2))
return 0