from typing import Dict, List from pydantic import BaseModel class Task(BaseModel): values: List[str] keys: List[str] class GEMSchema(BaseModel): """The default GEM schema""" submission_name: str param_count: int description: str = "An optional brief description of the system that will be shown on the results page" tasks: Dict[str, Task] def main(): schema_data = GEMSchema.schema_json(indent=2) with open("schema.json", "w", encoding="utf-8") as f: f.write(schema_data) if __name__ == "__main__": main()