Skip to content

Commit cb69096

Browse files
authored
Merge pull request #72 from python-openapi/feature/jsonschem-4.18-compatibility
jsonschema 4.18 compatibility
2 parents d221d63 + 5bf8b10 commit cb69096

File tree

4 files changed

+82
-48
lines changed

4 files changed

+82
-48
lines changed

openapi_schema_validator/_validators.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def handle_discriminator(
5353
return
5454

5555
try:
56-
validator.resolver.resolve(ref)
56+
validator._validate_reference(ref=ref, instance=instance)
5757
except:
5858
yield ValidationError(
5959
f"{instance!r} reference {ref!r} could not be resolved",

openapi_schema_validator/validators.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@
33
from typing import Type
44

55
from jsonschema import _legacy_validators
6-
from jsonschema import _utils
76
from jsonschema import _validators
8-
from jsonschema.protocols import Validator
97
from jsonschema.validators import Draft202012Validator
108
from jsonschema.validators import create
119
from jsonschema.validators import extend
10+
from jsonschema_specifications import REGISTRY as SPECIFICATIONS
1211

1312
from openapi_schema_validator import _format as oas_format
1413
from openapi_schema_validator import _types as oas_types
1514
from openapi_schema_validator import _validators as oas_validators
1615
from openapi_schema_validator._types import oas31_type_checker
1716

1817
OAS30Validator = create(
19-
meta_schema=_utils.load_schema("draft4"),
18+
meta_schema=SPECIFICATIONS.contents(
19+
"http://json-schema.org/draft-04/schema#",
20+
),
2021
validators={
2122
"multipleOf": _validators.multipleOf,
2223
# exclusiveMaximum supported inside maximum_draft3_draft4

poetry.lock

+71-43
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

+6-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ strict = true
2020
module = "jsonschema.*"
2121
ignore_missing_imports = true
2222

23+
[[tool.mypy.overrides]]
24+
module = "jsonschema_specifications"
25+
ignore_missing_imports = true
26+
2327
[[tool.mypy.overrides]]
2428
module = "rfc3339_validator"
2529
ignore_missing_imports = true
@@ -51,8 +55,9 @@ include = [
5155

5256
[tool.poetry.dependencies]
5357
python = "^3.8.0"
54-
jsonschema = ">=4.0.0,<4.18.0"
58+
jsonschema = {version = "^4.18.0a1", allow-prereleases = true}
5559
rfc3339-validator = "*" # requred by jsonschema for date-time checker
60+
jsonschema-specifications = "^2023.5.2"
5661

5762
[tool.poetry.extras]
5863
docs = ["sphinx", "sphinx-immaterial"]

0 commit comments

Comments
 (0)