85 lines
2.4 KiB
Python
85 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
"""Build VedAstro Shadbala/Ashtakavarga oracle request packets.
|
|
|
|
This packet is secondary evidence only. It does not execute prediction,
|
|
change local scores, or promote final labels.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
import json
|
|
from pathlib import Path
|
|
from typing import Any
|
|
|
|
|
|
ADJUDICATOR_POLICY = {
|
|
"role": "external_technique_evidence",
|
|
"can_change_score": False,
|
|
"can_set_dominant_label": False,
|
|
"can_set_payout_label": False,
|
|
"allowed_destinations": ["secondary_context", "technique_audit"],
|
|
}
|
|
|
|
STRENGTH_METHODS = [
|
|
{
|
|
"technique": "VedAstro Shadbala Oracle",
|
|
"method": "CalculateShadbala",
|
|
"api_endpoint": "Calculate/Shadbala",
|
|
},
|
|
{
|
|
"technique": "VedAstro Ashtakavarga Oracle",
|
|
"method": "CalculateAshtakavarga",
|
|
"api_endpoint": "Calculate/Ashtakavarga",
|
|
},
|
|
]
|
|
|
|
|
|
def build_strength_oracle_packet(domain: str = "career") -> dict[str, Any]:
|
|
requests = [
|
|
{
|
|
"operation": "calculation_method",
|
|
"role": "external_technique_evidence",
|
|
"domain": domain,
|
|
"method": item["method"],
|
|
"api_endpoint": item["api_endpoint"],
|
|
"status": "preview",
|
|
}
|
|
for item in STRENGTH_METHODS
|
|
]
|
|
audit_rows = [
|
|
{
|
|
"technique": item["technique"],
|
|
"status": "preview",
|
|
"role": "external_strength_evidence",
|
|
"effect": "secondary_context_only_no_score_or_label_lift",
|
|
}
|
|
for item in STRENGTH_METHODS
|
|
]
|
|
return {
|
|
"scope": "vedastro_strength_oracle_packet",
|
|
"status": "preview",
|
|
"domain": domain,
|
|
"adjudicator_policy": dict(ADJUDICATOR_POLICY),
|
|
"requests": requests,
|
|
"technique_audit_rows": audit_rows,
|
|
}
|
|
|
|
|
|
def main() -> int:
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument("--domain", default="career")
|
|
parser.add_argument("--output", type=Path)
|
|
args = parser.parse_args()
|
|
packet = build_strength_oracle_packet(args.domain)
|
|
text = json.dumps(packet, ensure_ascii=False, indent=2, sort_keys=True)
|
|
if args.output:
|
|
args.output.parent.mkdir(parents=True, exist_ok=True)
|
|
args.output.write_text(text + "\n", encoding="utf-8")
|
|
print(text)
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|