Files
Jyotisha/scripts/muhurta_oss_worked_example_readiness.py
T
2026-07-23 12:03:58 +08:00

95 lines
3.8 KiB
Python

#!/usr/bin/env python3
"""Build Muhurta OSS worked-example readiness packet.
The packet records public/open-source candidates for factor comparison. It does
not import their code and does not allow a final Muhurta verdict.
"""
from __future__ import annotations
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
OUTPUT = ROOT / "references/oracle/muhurta_oss_worked_example_readiness_2026_07_23.json"
ROWS = [
{
"source_id": "roxyapi_panchang_api",
"url": "https://github.com/topics/tithi",
"license_status": "candidate_needs_repo_metadata_check",
"feature_surface": ["rahu_kaal", "abhijit", "chandrabalam", "tarabalam"],
"numeric_worked_example_status": "not_found_in_search_snippet",
"reuse_policy": "reference_only_until_license_and_fixture",
},
{
"source_id": "fusionstrings_panchangam",
"url": "https://github.com/fusionstrings/panchangam",
"license_status": "candidate_needs_repo_metadata_check",
"feature_surface": ["rahu_kalam", "yamaganda", "gulika", "abhijit_muhurta"],
"numeric_worked_example_status": "api_candidate_not_oracle",
"reuse_policy": "reference_only_until_pinned_adapter",
},
{
"source_id": "bidyashish_vedicpanchanga",
"url": "https://github.com/bidyashish/vedicpanchanga.com",
"license_status": "candidate_needs_repo_metadata_check",
"feature_surface": ["muhurta_finder", "rahu_kala", "abhijit", "tyajyam", "hora"],
"numeric_worked_example_status": "app_candidate_not_oracle",
"reuse_policy": "reference_only_until_pinned_adapter",
},
{
"source_id": "happyalu_panchang_muhurt",
"url": "https://github.com/happyalu/panchang-muhurt/",
"license_status": "candidate_needs_repo_metadata_check",
"feature_surface": ["panchanga", "muhurta_filters", "red_flag_timeslots"],
"numeric_worked_example_status": "filter_candidate_not_oracle",
"reuse_policy": "reference_only_until_license_and_fixture",
},
{
"source_id": "vijayalur_tarabala_chandrabala_panchaka",
"url": "https://vijayalur.com/2011/10/02/tarabala-chandrabala-panchaka/",
"license_status": "public_article_reference",
"feature_surface": ["tarabala", "chandrabala", "panchaka"],
"numeric_worked_example_status": "formula_reference_not_replay_packet",
"reuse_policy": "cite_as_reference_only",
},
]
def build() -> dict:
factors = sorted({factor for row in ROWS for factor in row["feature_surface"]})
return {
"scope": "muhurta_oss_worked_example_readiness",
"created_at": "2026-07-23",
"claim_status": "candidate_source_matrix",
"truth_matrix_allowed": False,
"production_tuning_allowed": False,
"final_muhurta_verdict_allowed": False,
"rows": ROWS,
"summary": {
"candidate_count": len(ROWS),
"factor_surface": factors,
"numeric_oracle_ready_count": 0,
"pinned_adapter_ready_count": 0,
},
"next_actions": [
"Pin one permissive OSS package with license and package hash.",
"Capture local factor raw/hash for Tarabala, Chandrabala, Rahu Kalam, Yamaganda, Gulika Kalam, Abhijit, Panchaka, Sankranti, Vyatipata and Vaidhriti.",
"Promote only sources with full input, expected factor values, version identity and replayable raw.",
],
"boundary": "These are candidate references only; they do not authorize a final auspicious-date verdict.",
}
def main() -> int:
packet = build()
OUTPUT.write_text(json.dumps(packet, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
print(json.dumps(packet, ensure_ascii=False, indent=2))
return 0
if __name__ == "__main__":
raise SystemExit(main())