#!/usr/bin/env python3 # /// script # requires-python = ">=3.12" # dependencies = ["openapi-python-client"] # /// """Regenerate the TfL Journey API client from the OpenAPI specification.""" # Run it with: # uv run generate_tfl_client.py import shutil import subprocess from pathlib import Path OPENAPI_SPEC = Path("Journey.yaml") OUTPUT_PATH = Path("tfl_journey_client") def main() -> None: if not OPENAPI_SPEC.exists(): raise FileNotFoundError(f"OpenAPI spec not found: {OPENAPI_SPEC}") # Remove existing client if present if OUTPUT_PATH.exists(): print(f"Removing existing client at {OUTPUT_PATH}") shutil.rmtree(OUTPUT_PATH) # Generate the client print(f"Generating client from {OPENAPI_SPEC}") result = subprocess.run( ["openapi-python-client", "generate", "--path", str(OPENAPI_SPEC), "--output-path", str(OUTPUT_PATH)], check=True, ) if result.returncode == 0: print(f"Client generated successfully at {OUTPUT_PATH}") else: print("Client generation failed") raise SystemExit(1) if __name__ == "__main__": main()