Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
987f454
fix: update jsonschema constraint to allow 4.20.0+ for fastmcp compat…
devin-ai-integration[bot] Aug 29, 2025
8c84b6d
fix: migrate deprecated RefResolver to referencing library for jsonsc…
devin-ai-integration[bot] Aug 29, 2025
42e2d7f
style: apply formatting fixes from format-fix command
devin-ai-integration[bot] Aug 29, 2025
fc37c17
Apply suggestion from @aaronsteers
aaronsteers Aug 29, 2025
3de3785
fix: add referencing dependency to resolve deptry CI failure
devin-ai-integration[bot] Aug 29, 2025
cffad9f
feat: simplify jsonschema migration to require 4.18.0+ minimum
devin-ai-integration[bot] Aug 29, 2025
5ccaca9
Apply suggestion from @aaronsteers
aaronsteers Aug 29, 2025
5e485bd
fix: regenerate poetry.lock after jsonschema constraint update
devin-ai-integration[bot] Aug 29, 2025
def67f7
feat: broaden jsonschema constraint to >=4.17.3,<5.0 based on referen…
devin-ai-integration[bot] Aug 29, 2025
1f55214
fix: implement hybrid RefResolver approach for backward compatibility
devin-ai-integration[bot] Aug 29, 2025
f49761b
style: apply formatting fixes to transform.py after hybrid RefResolve…
devin-ai-integration[bot] Aug 29, 2025
b8fa937
resolve: merge conflict in pyproject.toml referencing dependency
devin-ai-integration[bot] Aug 29, 2025
edc20d6
fix: improve hybrid RefResolver robustness for CI compatibility
devin-ai-integration[bot] Aug 29, 2025
164afb6
cherry-pick-me: unrelated fix of breaking change in create_source()
aaronsteers Aug 29, 2025
d14cd84
format cleanup
aaronsteers Aug 29, 2025
5d75886
style: apply formatting fixes to hybrid RefResolver implementation
devin-ai-integration[bot] Aug 29, 2025
061de78
Merge branch 'devin/1756425696-jsonschema-version-pin' of https://git…
devin-ai-integration[bot] Aug 29, 2025
8f047b9
Apply suggestion from @aaronsteers
aaronsteers Aug 29, 2025
a84f50a
Apply suggestion from @aaronsteers
aaronsteers Aug 29, 2025
3f19659
revert formatting changes
aaronsteers Aug 29, 2025
96eabbf
revert changes moved to #738
aaronsteers Aug 29, 2025
aa5f6a4
clean up validator implementation
aaronsteers Aug 29, 2025
bb13c89
fix imports
aaronsteers Aug 29, 2025
43ee692
try making DRY
aaronsteers Aug 29, 2025
d2c7a51
revert and retry
aaronsteers Aug 29, 2025
35dda44
Update pyproject.toml
aaronsteers Aug 29, 2025
c137302
chore: relock dependencies with referencing >=0.36.2 constraint
devin-ai-integration[bot] Aug 29, 2025
cb69302
fix: update Poetry to 2.0.1 in Dockerfile and fix referencing usage i…
devin-ai-integration[bot] Aug 29, 2025
93aeb9f
Merge remote-tracking branch 'origin/main' into devin/1756425696-json…
aaronsteers Aug 29, 2025
f325a11
poe lock
aaronsteers Aug 29, 2025
98d3296
fixes, simplification
aaronsteers Aug 29, 2025
c742f80
clean up
aaronsteers Aug 29, 2025
5a6aea4
fux unused stray ref
aaronsteers Aug 29, 2025
7b284d5
remove commented-out code (confirmed working)
aaronsteers Aug 29, 2025
749106b
fix format
aaronsteers Aug 29, 2025
51a5ddf
resolve mypy
aaronsteers Aug 29, 2025
09916a9
remove comment
aaronsteers Aug 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 15 additions & 7 deletions airbyte_cdk/sources/utils/transform.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,22 +196,30 @@ def normalizator(

def resolve(subschema: dict[str, Any]) -> dict[str, Any]:
if "$ref" in subschema:
ref_url = subschema["$ref"]

try:
root_schema = validator_instance.schema
resource = Resource.from_contents(root_schema, default_specification=DRAFT7)
registry = Registry().with_resource("", resource)
resolver = registry.resolver()
resolved = resolver.lookup(subschema["$ref"]).contents
resolved = resolver.lookup(ref_url).contents
return cast(dict[str, Any], resolved)
except Exception:
try:
_, resolved = cast(RefResolver, validator_instance.resolver).resolve(
subschema["$ref"]
)
return cast(dict[str, Any], resolved)
if (
hasattr(validator_instance, "resolver")
and validator_instance.resolver
):
_, resolved = cast(
RefResolver, validator_instance.resolver
).resolve(ref_url)
return cast(dict[str, Any], resolved)
except Exception:
# If both fail, return original subschema
return subschema
pass

# If both approaches fail, return the original subschema
return subschema
return subschema

# Transform object and array values before running json schema type checking for each element.
Expand Down
Loading