|
17 | 17 | import sys |
18 | 18 | import tempfile |
19 | 19 | from pathlib import Path |
| 20 | +from typing import Any |
20 | 21 |
|
21 | 22 | try: |
22 | 23 | import yaml |
@@ -79,7 +80,7 @@ def consolidate_yaml_schemas_to_json(yaml_dir_path: Path, output_json_path: Path |
79 | 80 | if isinstance(schema_content, dict) and "definitions" in schema_content: |
80 | 81 | all_schema_names.update(schema_content["definitions"].keys()) |
81 | 82 |
|
82 | | - def fix_refs(obj, in_definition=False): |
| 83 | + def fix_refs(obj: Any, in_definition: bool = False) -> Any: |
83 | 84 | """Recursively fix $ref and type references in schema objects.""" |
84 | 85 | if isinstance(obj, dict): |
85 | 86 | new_obj = {} |
@@ -117,20 +118,30 @@ def fix_refs(obj, in_definition=False): |
117 | 118 | consolidated = dict(main_schema) # shallow copy |
118 | 119 | consolidated.setdefault("$schema", "http://json-schema.org/draft-07/schema#") |
119 | 120 | consolidated.setdefault("title", "Connector Metadata Schema") |
120 | | - consolidated.setdefault("description", "Consolidated JSON schema for Airbyte connector metadata validation") |
121 | | - |
| 121 | + consolidated.setdefault( |
| 122 | + "description", "Consolidated JSON schema for Airbyte connector metadata validation" |
| 123 | + ) |
| 124 | + |
122 | 125 | consolidated_definitions = dict(consolidated.get("definitions", {})) |
123 | 126 |
|
124 | 127 | # Add all schemas (including their internal definitions) as top-level definitions |
125 | 128 | for schema_name, schema_content in schemas.items(): |
126 | 129 | if schema_name != "ConnectorMetadataDefinitionV0": |
127 | 130 | if isinstance(schema_content, dict) and "definitions" in schema_content: |
128 | 131 | for def_name, def_content in schema_content["definitions"].items(): |
129 | | - consolidated_definitions[def_name] = fix_refs(def_content, in_definition=True) |
130 | | - schema_without_defs = {k: v for k, v in schema_content.items() if k != "definitions"} |
131 | | - consolidated_definitions[schema_name] = fix_refs(schema_without_defs, in_definition=True) |
| 132 | + consolidated_definitions[def_name] = fix_refs( |
| 133 | + def_content, in_definition=True |
| 134 | + ) |
| 135 | + schema_without_defs = { |
| 136 | + k: v for k, v in schema_content.items() if k != "definitions" |
| 137 | + } |
| 138 | + consolidated_definitions[schema_name] = fix_refs( |
| 139 | + schema_without_defs, in_definition=True |
| 140 | + ) |
132 | 141 | else: |
133 | | - consolidated_definitions[schema_name] = fix_refs(schema_content, in_definition=True) |
| 142 | + consolidated_definitions[schema_name] = fix_refs( |
| 143 | + schema_content, in_definition=True |
| 144 | + ) |
134 | 145 |
|
135 | 146 | consolidated["definitions"] = consolidated_definitions |
136 | 147 | consolidated = fix_refs(consolidated, in_definition=False) |
@@ -181,7 +192,7 @@ def generate_models_from_json_schema(json_schema_path: Path, output_file_path: P |
181 | 192 | print(f"Generated models: {output_file_path}", file=sys.stderr) |
182 | 193 |
|
183 | 194 |
|
184 | | -def main(): |
| 195 | +def main() -> None: |
185 | 196 | print("Generating connector metadata models...", file=sys.stderr) |
186 | 197 |
|
187 | 198 | with tempfile.TemporaryDirectory() as temp_dir: |
|
0 commit comments