|
| 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