vpp-ai-platform/skills-py/scripts/generate_models.sh
Thomas Bayes e7196bc88a M1: close gaps — CI, time-series/relational stores, ingestion skeleton, Python 3.11 pin
- .github/workflows/ci.yml: TS job (typecheck, re-export contracts, drift
  check, vitest) and Python job (3.11, regenerate pydantic models, drift
  check, pytest) — the dual-side contract test now actually runs in CI.
- packages/services: MemoryTimeSeriesStore (append-only daily-curve
  revisions), MemoryRepository + ResourceRegistry (schema-validated,
  optimistic versioning), IngestionPipeline (snapshot → quality gate →
  store or quarantine). In-memory reference semantics; persistent adapters
  arrive with M3 like the ledger.
- skills-py: .python-version + pyproject requires-python >=3.11; codegen
  script asserts interpreter version and runs the generator as a module.
- typecheck scripts per package and in root `check`; README status and dev
  setup; CLAUDE.md current-phase note.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoYoGYzHkFyv3ALenkRPhA
2026-09-01 21:58:49 -04:00

19 lines
609 B
Bash
Executable File

#!/usr/bin/env bash
# Regenerates skills-py/vpp_contracts from contracts/schema (ADR-0002).
# Generated files are committed but NEVER hand-edited.
set -euo pipefail
cd "$(dirname "$0")/.."
python3 -c 'import sys; assert sys.version_info >= (3, 11), f"need Python >=3.11, got {sys.version}"'
python3 -m datamodel_code_generator \
--input ../contracts/schema \
--input-file-type jsonschema \
--output vpp_contracts \
--output-model-type pydantic_v2.BaseModel \
--target-python-version 3.11 \
--use-standard-collections \
--disable-timestamp
echo "models regenerated in skills-py/vpp_contracts"