← Files Public Equity InvestingARCHIVED FILE
skills/dcf-model-builder/scripts/validate_plan.py
1.36 KB · Oct 2, 2026 · 00:03 UTC
#!/usr/bin/env python3
"""Validate a dcf-model-builder plan.json file."""
from __future__ import annotations
import argparse
import json
import sys
from pathlib import Path
SCRIPT_DIR = Path(__file__).resolve().parent
if str(SCRIPT_DIR) not in sys.path:
sys.path.insert(0, str(SCRIPT_DIR))
from skill_core import load_json, validate_plan_structure # noqa: E402
def main() -> int:
parser = argparse.ArgumentParser(description="Validate DCF plan.json")
parser.add_argument("plan_path", help="Path to plan.json")
args = parser.parse_args()
try:
plan = load_json(args.plan_path)
except FileNotFoundError:
print(f"ERROR: plan file not found: {args.plan_path}", file=sys.stderr)
return 1
except json.JSONDecodeError as exc:
print(
f"ERROR: invalid JSON in {args.plan_path}: line {exc.lineno}, column {exc.colno}: {exc.msg}",
file=sys.stderr,
)
return 1
except Exception as exc:
print(f"ERROR: could not read plan: {exc}", file=sys.stderr)
return 1
errors = validate_plan_structure(plan)
if errors:
print("INVALID DCF PLAN")
for idx, error in enumerate(errors, start=1):
print(f"{idx}. {error}")
return 1
print(f"VALID DCF PLAN: {args.plan_path}")
return 0
if __name__ == "__main__":
raise SystemExit(main())
SHA-256: 02c5401141824f212ad6e58998f23070fdb64786c55ddd2d5f3f62671eecf770