Skip to content

Commit 3c2a4f8

Browse files
Add type annotations and fix formatting
- Added type hints to fix_refs function and main function - Fixed ruff formatting issues - All mypy checks now pass for the new script Co-Authored-By: AJ Steers <aj@airbyte.io>
1 parent ba912fe commit 3c2a4f8

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

bin/generate_connector_metadata_files.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import sys
1818
import tempfile
1919
from pathlib import Path
20+
from typing import Any
2021

2122
try:
2223
import yaml
@@ -79,7 +80,7 @@ def consolidate_yaml_schemas_to_json(yaml_dir_path: Path, output_json_path: Path
7980
if isinstance(schema_content, dict) and "definitions" in schema_content:
8081
all_schema_names.update(schema_content["definitions"].keys())
8182

82-
def fix_refs(obj, in_definition=False):
83+
def fix_refs(obj: Any, in_definition: bool = False) -> Any:
8384
"""Recursively fix $ref and type references in schema objects."""
8485
if isinstance(obj, dict):
8586
new_obj = {}
@@ -117,20 +118,30 @@ def fix_refs(obj, in_definition=False):
117118
consolidated = dict(main_schema) # shallow copy
118119
consolidated.setdefault("$schema", "http://json-schema.org/draft-07/schema#")
119120
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+
122125
consolidated_definitions = dict(consolidated.get("definitions", {}))
123126

124127
# Add all schemas (including their internal definitions) as top-level definitions
125128
for schema_name, schema_content in schemas.items():
126129
if schema_name != "ConnectorMetadataDefinitionV0":
127130
if isinstance(schema_content, dict) and "definitions" in schema_content:
128131
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+
)
132141
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+
)
134145

135146
consolidated["definitions"] = consolidated_definitions
136147
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
181192
print(f"Generated models: {output_file_path}", file=sys.stderr)
182193

183194

184-
def main():
195+
def main() -> None:
185196
print("Generating connector metadata models...", file=sys.stderr)
186197

187198
with tempfile.TemporaryDirectory() as temp_dir:

0 commit comments

Comments
 (0)