|
| 1 | +from functools import partial |
| 2 | + |
1 | 3 | from jsonschema.validators import Draft4Validator
|
2 | 4 | from jsonschema.validators import Draft202012Validator
|
3 | 5 | from jsonschema_spec.handlers import default_handlers
|
| 6 | +from lazy_object_proxy import Proxy |
4 | 7 | from openapi_schema_validator import oas30_format_checker
|
5 | 8 | from openapi_schema_validator import oas31_format_checker
|
6 | 9 | from openapi_schema_validator.validators import OAS30Validator
|
|
19 | 22 | ]
|
20 | 23 |
|
21 | 24 | # v2.0 spec
|
22 |
| -openapi_v2_schema_validator = Draft4Validator(schema_v2) |
23 |
| -openapi_v2_spec_validator = SpecValidator( |
| 25 | +get_openapi_v2_schema_validator = partial(Draft4Validator, schema_v2) |
| 26 | +openapi_v2_schema_validator = Proxy(get_openapi_v2_schema_validator) |
| 27 | +get_openapi_v2_spec_validator = partial( |
| 28 | + SpecValidator, |
24 | 29 | openapi_v2_schema_validator,
|
25 | 30 | OAS30Validator,
|
26 | 31 | oas30_format_checker,
|
27 | 32 | resolver_handlers=default_handlers,
|
28 | 33 | )
|
| 34 | +openapi_v2_spec_validator = Proxy(get_openapi_v2_spec_validator) |
29 | 35 |
|
30 | 36 | # v3.0 spec
|
31 |
| -openapi_v30_schema_validator = Draft4Validator(schema_v30) |
32 |
| -openapi_v30_spec_validator = SpecValidator( |
| 37 | +get_openapi_v30_schema_validator = partial(Draft4Validator, schema_v30) |
| 38 | +openapi_v30_schema_validator = Proxy(get_openapi_v30_schema_validator) |
| 39 | +get_openapi_v30_spec_validator = partial( |
| 40 | + SpecValidator, |
33 | 41 | openapi_v30_schema_validator,
|
34 | 42 | OAS30Validator,
|
35 | 43 | oas30_format_checker,
|
36 | 44 | resolver_handlers=default_handlers,
|
37 | 45 | )
|
| 46 | +openapi_v30_spec_validator = Proxy(get_openapi_v30_spec_validator) |
38 | 47 |
|
39 | 48 | # v3.1 spec
|
40 |
| -openapi_v31_schema_validator = Draft202012Validator(schema_v31) |
41 |
| -openapi_v31_spec_validator = SpecValidator( |
| 49 | +get_openapi_v31_schema_validator = partial(Draft202012Validator, schema_v31) |
| 50 | +openapi_v31_schema_validator = Proxy(get_openapi_v31_schema_validator) |
| 51 | +get_openapi_v31_spec_validator = partial( |
| 52 | + SpecValidator, |
42 | 53 | openapi_v31_schema_validator,
|
43 | 54 | OAS31Validator,
|
44 | 55 | oas31_format_checker,
|
45 | 56 | resolver_handlers=default_handlers,
|
46 | 57 | )
|
| 58 | +openapi_v31_spec_validator = Proxy(get_openapi_v31_spec_validator) |
47 | 59 |
|
48 | 60 | # alias to the latest v3 version
|
49 | 61 | openapi_v3_spec_validator = openapi_v31_spec_validator
|
0 commit comments