This PR pins openapi-core to the latest release 0.18.0.
Changelog
### 0.18.0
```
This version drops support for Python 3.7
Upgrades
* Compatibility with jsonschema 4.18, jsonschema-spec 0.2, openapi-schema-validator 0.6 and openapi-spec-validator 0.6 597
* Update dependencies 616
Deprecations
* `spec_url` parameter of `Spec.from_dict` is deprecated. Use `base_uri` instead. 597
* `ref_resolver_handlers` parameter of `Spec.from_dict` is deprecated. Use `handlers` instead. 597
Backward incompatibilities
* Drop python 3.7 support 595
* Format validators ignore other types and pass (in accordance with the specification) 597
* Remove deprecated features 598
* `Spec.create` method
* `spec` as a first parameter for `validate_request` and `validate_response` shortcuts
* `validator` parameter for `validate_request` and `validate_response` shortcuts
* return unmarshalling data result for `validate_request` and `validate_response` shortcuts
* `RequestValidator`, `ResponseValidator` and `openapi_` objects
* `custom_deserializers`parameter
* `custom_formatters`parameter
```
### 0.18.0a1
```
This version drops support for Python 3.7
Features
* Compatibility with jsonschema 4.18, jsonschema-spec 0.2, openapi-schema-validator 0.6 and openapi-spec-validator 0.6 597
* `spec_url` parameter of `Spec.from_dict` is deprecated. Use `base_uri` instead.
* `ref_resolver_handlers` parameter of `Spec.from_dict` is deprecated. Use `handlers` instead.
Backward incompatibilities
* Drop python 3.7 support 595
* Format validators ignore other types and pass (in accordance with the specification) 597
* Remove deprecated features 598
* `Spec.create` method
* `spec` as a first parameter for `validate_request` and `validate_response` shortcuts
* `validator` parameter for `validate_request` and `validate_response` shortcuts
* return unmarshalling data result for `validate_request` and `validate_response` shortcuts
* `RequestValidator`, `ResponseValidator` and `openapi_` objects
* `custom_deserializers`parameter
* `custom_formatters`parameter
```
### 0.17.2
```
Features
* Integrations: Add support for aiohttp.web 571
Fixes
* Integrations: requests strip mimetype fix 553
* Unmarshalling: any unmarshaller get types fix 555
* Shortcuts: `validate_request` and `validate_response` show deprecation warning on return value use only 589
```
### 0.17.1
```
Changelog
* Include tests in sdist archives 537
* add python 3.11 support 538
```
### 0.17.0
```
Changelog
* shortcuts high level public api expose 465
* `ParametersError` context property deprecated 462
* `Spec.create` deprecated 463
* Validators refactor 457
* Webhooks support 470
* Rename `UnmarshalContext` to `ValidationContext` 472
* Fix `PATH_PARAMETER_PATTERN` for DRF default value pattern. 468
* Fix falcon response data none 471
* Shortcuts backward compatible 482
* `RequestValidator` and `ResponseValidator` backward compatibility 487
* Fix flask decorator function return other types 489
* Fix integration `Request` `Response` factories check types fix 490
* Fix Requests request dont allow fragments 491
* Fix openapi packages update and tests 498
* unmarshallers integration tests 497
* Unmarshallers and validators refactor 508
* Shortcuts refactor 517
* Media type deserializers refactor 518
Backward incompatibilities
* Schema unmarshalling/validation returns `Invalid*` exception (`InvalidData`, `InvalidParameter`, `InvalidRequestBody`, `InvalidHeader`). Use `__cause__` property to get root cause exception.
* `InvalidSecurity` exception renamed to `SecurityNotFound`
```
### 0.17.0a3
```
Changelog
* Fix Requests request dont allow fragments 491
* Fix openapi packages update and tests 498
* unmarshallers integration tests 497
* Unmarshallers and validators refactor 508
* Shortcuts refactor 517
* Media type deserializers refactor 518
```
### 0.17.0a2
```
Changelog
* Shortcuts backward compatible 482
* `RequestValidator` and `ResponseValidator` backward compatibility 487
* Fix flask decorator function return other types 489
* Fix integration `Request` `Response` factories check types fix 490
```
### 0.17.0a1
```
Changelog
* shortcuts high level public api expose 465
* ParametersError context property deprecated 462
* Spec.create deprecated 463
* Validators refactor 457
* Webhooks support 470
* Rename `UnmarshalContext` to `ValidationContext` 472
* Fix PATH_PARAMETER_PATTERN for DRF default value pattern. 468
* Fix falcon response data none 471
Backward incompatibilities
* `request` parameter for `validate_request` shortcut function moved to first position
* `request` and `response` parameters for `validate_response` shortcut function moved to first and second position
* Schema unmarshalling/validation returns `Invalid*` exception (`InvalidData`, `InvalidParameter`, `InvalidRequestBody`, `InvalidHeader`). Use `__cause__` property to get root cause exception.
* `InvalidSecurity` exception renamed to `SecurityNotFound`
```
### 0.16.6
```
Changelog
* openapi-schema-validator 0.5.2 tests compatibility fix 527
```
### 0.16.5
```
Changelog
* validators public api expose 455
* allow openapi-schema-validator 0.4 458
```
### 0.16.4
```
Changelog
* better unmarshaller finders with refactor 447
```
### 0.16.3
```
Changelog
* werkzeug flask root path fix 449
* additionalProperties without schema should allow null. 444
```
### 0.16.2
```
Changelog
* Add NullUnmarshaller 432
* Multi type unmarshaller 433
* Unmarshaller format refactor 434
```
### 0.16.1
```
Changelog
* lists as additional properties fix 429
* x-model extension optional 431
```
### 0.16.0
```
Changelog
* Switch to jsonschema-spec 416
* Use auto-detect validator proxy 418
* OpenAPI 3.1 support + Auto-detect proxies and request / response validator protocols 419
* Add py.typed to mark package as supporting typing 420
* Refuse to cast str or bytes to array 421
* x-model extension import model class 422
* Add deepObject support 379
* Add anyOf support 423
* Separate werkzeug support 426
* Starlette support 427
```
### 0.15.0
```
Changelog
* Parameter deserialize complex scenario support (329)
* Response headers support (332)
* Response headers support for contrib (333)
* Drop python 2.7 support (335 344 351)
* Drop python 3.5 support (339)
* Drop python 3.6 support 383
* Add python 3.10 support 383
* Falcon2 support drop (353)
* Django2 support drop (358)
* Support basic re_path for Django integration (337)
* unused `NoValue` type removed (340)
* `attrs` remove and use `dataclasses` backport for python 3.6 (345)
* Request validation parameters dataclass (346)
* Handle missing MIME type in MediaTypeFinder (371)
* Limit openapi dependencies upper bounds 386
* switch to `pathable` 389
* Get rid of `create_spec` shortcut 393
* `Request` and `Response` protocols 407
* validator factories removed from validation shortcuts 408
* Predefined openapi validators 409
* Customization refactor 412
* Static types with mypy 414
Backward incompatibilities
* Python 3.6 and earlier no longer supported
* `headers` attribute added to `OpenAPIResponse` datatype
* `RequestParameters`' `header` attribute as `Headers` type
* `RequestParameters`' `cookie` attribute as `ImmutableMultiDict` type
* `RequestValidationResult`' `parameters` attribute as `Parameters` type
* unused `server`, `operation` and `path` attributes removed from `RequestValidationResult`
* `EmptyParameterValue` exception renamed to `EmptyQueryParameterValue`
* `FalconOpenAPIRequestFactory` requires to be instantiated
* `create_spec` shortcut replaced with `Spec.create`
* `OpenAPIRequest` and `OpenAPIResponse` removed. All backward compabilities from`contrib` removed.
* `spec_validate_*` shortcuts removed. Use `validate_request` and `validate_response` with `validator ` parameter instead.
* `validate_{parameters,body,security}` shortcuts removed. Use predefined `openapi_request_parameters_validator`, `openapi_request_body_validator` and `openapi_request_security_validator` from `openapi_core.validation.request` instead.
* `validate_{data,headers}` shortcuts removed. Use predefined `openapi_response_data_validator` and `openapi_response_headers_validator` from `openapi_core.validation.response` instead.
* `custom_media_type_deserializers ` parameter for `RequestValidator` and `ResponseValidator` removed. Use `MediaTypeDeserializersFactory` with `custom_deserializers` parameter and pass it to validator with `media_type_deserializers_factory` parameter.
* `custom_formatters ` parameter for `RequestValidator` and `ResponseValidator` removed. Use `SchemaUnmarshallersFactory` with `custom_formatters` parameter and pass it to validator.
```
### 0.15.0a2
```
Changelog
* `Request` and `Response` protocols 407
* validator factories removed from validation shortcuts 408
* Predefined openapi validators 409
* Customization refactor 412
Backward incompatibilities
* `OpenAPIRequest` and `OpenAPIResponse` removed. All backward compabilities from`contrib` removed.
* `spec_validate_*` shortcuts removed. Use `validate_request` and `validate_response` with `validator ` parameter instead.
* `validate_{parameters,body,security}` shortcuts removed. Use predefined `openapi_request_parameters_validator`, `openapi_request_body_validator` and `openapi_request_security_validator` from `openapi_core.validation.request` instead.
* `validate_{data,headers}` shortcuts removed. Use predefined `openapi_response_data_validator` and `openapi_response_headers_validator` from `openapi_core.validation.response` instead.
* `custom_media_type_deserializers ` parameter for `RequestValidator` and `ResponseValidator` removed. Use `MediaTypeDeserializersFactory` with `custom_deserializers` parameter and pass it to validator with `media_type_deserializers_factory` parameter.
* `custom_formatters ` parameter for `RequestValidator` and `ResponseValidator` removed. Use `SchemaUnmarshallersFactory` with `custom_formatters` parameter and pass it to validator.
```
### 0.15.0a1
```
Changelog
* Parameter deserialize complex scenario support (329)
* Response headers support (332)
* Response headers support for contrib (333)
* Drop python 2.7 support (335 344 351)
* Drop python 3.5 support (339)
* Drop python 3.6 support 383
* Add python 3.10 support 383
* Falcon2 support drop (353)
* Django2 support drop (358)
* Support basic re_path for Django integration (337)
* unused `NoValue` type removed (340)
* `attrs` remove and use `dataclasses` backport for python 3.6 (345)
* Request validation parameters dataclass (346)
* Handle missing MIME type in MediaTypeFinder (371)
* Limit openapi dependencies upper bounds 386
* switch to `pathable` 389
* Get rid of `create_spec` shortcut 393
Backward incompatibilities
* Python 3.6 and earlier no longer supported
* `headers` attribute added to `OpenAPIResponse` datatype
* `RequestParameters`' `header` attribute as `Headers` type
* `RequestParameters`' `cookie` attribute as `ImmutableMultiDict` type
* `RequestValidationResult`' `parameters` attribute as `Parameters` type
* unused `server`, `operation` and `path` attributes removed from `RequestValidationResult`
* `EmptyParameterValue` exception renamed to `EmptyQueryParameterValue`
* `FalconOpenAPIRequestFactory` requires to be instantiated
* `create_spec` shortcut replaced with `Spec.create`
```
### 0.14.5
```
Changelog
* openapi-spec-validator strict requirement fix 406
```
### 0.14.4
```
Changelog
* pyyaml strict requirement fix 404
```
### 0.14.3
```
Changelog
* pin openapi dependencies 403
```
### 0.14.2
```
Changelog
* Non required request body fix (325)
```
### 0.14.1
```
Changelog
* Parameter simple scenarion for any schema type fix (323)
```
### 0.14.0
```
openapi-core 0.14 is scheduled to be the last major version in the 0.x series.
This release introduces `SpecPath` which reduces spec creation time and allows to get rid of big `schema` package
Changes:
* `Spec` replaced with `SpecPath` (318)
Backward incompatibilities:
* `create_spec` shortcut returns `SpecPath` instead of `Spec`
* removed Spec-related `schema` package
* schema-related `exceptions` moved to top level `exceptions` module
* `readOnly`/`writeOnly` invalid properties raise error (before were ommitted)
* `MediaTypeDeserializersFactory.create` expects `mimetype` string instead of `media_type`
* `MediaTypeFinder.find` returns `media_type, mimetype` tuple instead of just `media_type`
```
### 0.13.8
```
Changelog
* use prepared request to format payload before converting (271)
* deserialize form urlencoded media type (302)
* deserialize data form media type (303)
* Media type finder (307)
* Add extensions support for the Parameter model (308)
* Response finder (309)
* Falcon3 support (316)
```
### 0.13.7
```
Changelog
* Any unmarshaller validate fix (295)
* Spec validation customization (290)
* Format checker deepcopy to shallowcopy (291)
* Format checker on validation scope (292)
* Basic documentation (293)
```
### 0.13.6
```
Changelog
* Remove security on operation level fix (284)
* AnyUnmarshaller use allOf schemas (286)
```
### 0.13.5
```
Changelog
* prioritize concrete paths fix (273)
* return None on nullable array type (276)
```
### 0.13.4
```
Changelog
* Paths finder relative url and simple paths check fix (222)
* Add documentation for custom formatters (228)
* Fix Requests.response factory (227)
* Case insensitive headers fix (236)
* Security HTTP provider fix (225)
* Unmarshalling nullable objects (239)
* Date-time format unmarshal tz fix (237)
* Templating parser path parameter search fix (245)
* Fix the Falcon integration to properly handle URLs with query strings. (233)
```
### 0.13.3
```
Changelog
* Path patterns finder (202) - server and path with variables resolving
* Requests integration (209)
* b64decode issue29427 fix (210)
* Extensible schema models (211)
* Use `openapi-schema-validator` library (212)
* Fix to force ConfigParser to correctly parse extra requirements (214)
* Falcon integration (215)
```
### 0.13.2
```
Changelog
* werkzeug missing dependency fix (203)
```
### 0.13.1
```
Changelog
* Flask error handler status fix (199)
* Validators shortcuts fix (200)
```
### 0.13.0
```
Changelog
* Validation result datatypes (165)
* OpenAPI request/response factories introduction (166)
* Django OpenAPI request/response factories (167)
* Schema exceptions refactor (168)
* Operations fields (169)
* Validation schema errors iter fix (170)
* webob support (173)
* CVE-2019-19844 fix (182)
* Move Unmarshallers to separate subpackage (183)
* Flask OpenAPI view & decorator (177)
* Flask OpenAPI request parameters (185)
* Move casters to separate subpackage (184)
* Move schema validator to separate subpackage (186)
* Move unmarshal out of schema models (188)
* Deserialise models without schema fix (190)
* Move deserialize/cast out of schema models (191)
* Custom media type deserializers (192)
* Missing Info models (193)
* Free-form objects unmarshal (194)
* Security validation with API Key and HTTP security types support (195)
* Missing path model fields (196)
* OpenAPI request datatype refactor (197)
* readOnly and writeOnly support (152)
Backward incompatibility
* new datatype `RequestParameters`. That means `parameters` in `RequestValidationResult` is no longer `dict` type but you can still access parameter types (path, query, heder, cookie) lika a dict.
* `validate_body`, `validate_parameters` and `validate_data` no longer accept `wrapper_class`, `request_wrapper_class` and `response_wrapper_class` keyword arguments. Use `request_factory` and `response_factory` instead.
* `openapi_core.wrappers.flask` module moved to `openapi_core.contrib.flask`
* `openapi_core.wrappers.mock` module moved to `openapi_core.testing.mock`
* validation is now part of unmarshalling process
* `strict` parameter removed
* standardized formatting process with `Formatter` class. Custom formatters should inherit from the class.
* unmarshalling process no longer raise `InvalidMediaTypeValue ` and `InvalidParameterValue ` exceptions
* casting process no longer raise `InvalidParameterValue` exception
* deserializing process no longer raise `InvalidMediaTypeValue` exception
* `OpenAPIRequest `'s `host_url ` and `path_pattern ` attributes replaced with `full_url_pattern ` attribute
```
### 0.12.0
```
This release contains new Open API schema validation based on jsonschema (OAS Validator).
Changelog
- OAS validation with JSONSchema (157)
```
### 0.11.1
```
Changelog
* Path item parameter override (145)
* Separate cast and unmarshal (156)
```
### 0.11.0
```
openapi-core 0.11 is the last major version with schema validation based on internal validators (object validators). Next major versions is scheduled to be based on jsonschema validators (OAS Validator).
Changelog
- End of Python 3.4 support (136)
- Add support for one-of with any type (133)
- Modify FlaskOpenAPIRequest to accommodate path variables (141)
- Primitive types unmarshallers (138)
- attr errors hashable fix (143)
- Parameters on path item object support (144)
```
### 0.10.0
```
openapi-core 0.10 is the last major version with Python 3.4 support
Changelog
* Fix 124: Checking "additionalProperties" in "oneOf" items. (125)
* Add support for `password` string format (132)
* Add support for path-level parameters (130)
* Add support for "links" in Response (131)
* Fix number validator (134)
```
### 0.9.0
```
Changelog
- Raw value type strict validation (123
- Object additionalProperties support (121)
- Properly formatting UUID if value is already a UUID (112)
- String byte format fix (117)
```
### 0.8.0
```
Changelog
* byte string format (111)
* Fix import in an example (102)
* Dont use value for determining any type (106)
* Test for non utc systems fix (107)
* Accepting uuid string format and validating accordingly (109)
```
### 0.7.1
```
Changelog
* Python 2.7 requirements fix
```
Links
- PyPI: https://pypi.org/project/openapi-core
- Changelog: https://pyup.io/changelogs/openapi-core/
- Repo: https://github.com/python-openapi/openapi-core
This PR pins openapi-core to the latest release 0.18.0.
Changelog
### 0.18.0 ``` This version drops support for Python 3.7 Upgrades * Compatibility with jsonschema 4.18, jsonschema-spec 0.2, openapi-schema-validator 0.6 and openapi-spec-validator 0.6 597 * Update dependencies 616 Deprecations * `spec_url` parameter of `Spec.from_dict` is deprecated. Use `base_uri` instead. 597 * `ref_resolver_handlers` parameter of `Spec.from_dict` is deprecated. Use `handlers` instead. 597 Backward incompatibilities * Drop python 3.7 support 595 * Format validators ignore other types and pass (in accordance with the specification) 597 * Remove deprecated features 598 * `Spec.create` method * `spec` as a first parameter for `validate_request` and `validate_response` shortcuts * `validator` parameter for `validate_request` and `validate_response` shortcuts * return unmarshalling data result for `validate_request` and `validate_response` shortcuts * `RequestValidator`, `ResponseValidator` and `openapi_` objects * `custom_deserializers`parameter * `custom_formatters`parameter ``` ### 0.18.0a1 ``` This version drops support for Python 3.7 Features * Compatibility with jsonschema 4.18, jsonschema-spec 0.2, openapi-schema-validator 0.6 and openapi-spec-validator 0.6 597 * `spec_url` parameter of `Spec.from_dict` is deprecated. Use `base_uri` instead. * `ref_resolver_handlers` parameter of `Spec.from_dict` is deprecated. Use `handlers` instead. Backward incompatibilities * Drop python 3.7 support 595 * Format validators ignore other types and pass (in accordance with the specification) 597 * Remove deprecated features 598 * `Spec.create` method * `spec` as a first parameter for `validate_request` and `validate_response` shortcuts * `validator` parameter for `validate_request` and `validate_response` shortcuts * return unmarshalling data result for `validate_request` and `validate_response` shortcuts * `RequestValidator`, `ResponseValidator` and `openapi_` objects * `custom_deserializers`parameter * `custom_formatters`parameter ``` ### 0.17.2 ``` Features * Integrations: Add support for aiohttp.web 571 Fixes * Integrations: requests strip mimetype fix 553 * Unmarshalling: any unmarshaller get types fix 555 * Shortcuts: `validate_request` and `validate_response` show deprecation warning on return value use only 589 ``` ### 0.17.1 ``` Changelog * Include tests in sdist archives 537 * add python 3.11 support 538 ``` ### 0.17.0 ``` Changelog * shortcuts high level public api expose 465 * `ParametersError` context property deprecated 462 * `Spec.create` deprecated 463 * Validators refactor 457 * Webhooks support 470 * Rename `UnmarshalContext` to `ValidationContext` 472 * Fix `PATH_PARAMETER_PATTERN` for DRF default value pattern. 468 * Fix falcon response data none 471 * Shortcuts backward compatible 482 * `RequestValidator` and `ResponseValidator` backward compatibility 487 * Fix flask decorator function return other types 489 * Fix integration `Request` `Response` factories check types fix 490 * Fix Requests request dont allow fragments 491 * Fix openapi packages update and tests 498 * unmarshallers integration tests 497 * Unmarshallers and validators refactor 508 * Shortcuts refactor 517 * Media type deserializers refactor 518 Backward incompatibilities * Schema unmarshalling/validation returns `Invalid*` exception (`InvalidData`, `InvalidParameter`, `InvalidRequestBody`, `InvalidHeader`). Use `__cause__` property to get root cause exception. * `InvalidSecurity` exception renamed to `SecurityNotFound` ``` ### 0.17.0a3 ``` Changelog * Fix Requests request dont allow fragments 491 * Fix openapi packages update and tests 498 * unmarshallers integration tests 497 * Unmarshallers and validators refactor 508 * Shortcuts refactor 517 * Media type deserializers refactor 518 ``` ### 0.17.0a2 ``` Changelog * Shortcuts backward compatible 482 * `RequestValidator` and `ResponseValidator` backward compatibility 487 * Fix flask decorator function return other types 489 * Fix integration `Request` `Response` factories check types fix 490 ``` ### 0.17.0a1 ``` Changelog * shortcuts high level public api expose 465 * ParametersError context property deprecated 462 * Spec.create deprecated 463 * Validators refactor 457 * Webhooks support 470 * Rename `UnmarshalContext` to `ValidationContext` 472 * Fix PATH_PARAMETER_PATTERN for DRF default value pattern. 468 * Fix falcon response data none 471 Backward incompatibilities * `request` parameter for `validate_request` shortcut function moved to first position * `request` and `response` parameters for `validate_response` shortcut function moved to first and second position * Schema unmarshalling/validation returns `Invalid*` exception (`InvalidData`, `InvalidParameter`, `InvalidRequestBody`, `InvalidHeader`). Use `__cause__` property to get root cause exception. * `InvalidSecurity` exception renamed to `SecurityNotFound` ``` ### 0.16.6 ``` Changelog * openapi-schema-validator 0.5.2 tests compatibility fix 527 ``` ### 0.16.5 ``` Changelog * validators public api expose 455 * allow openapi-schema-validator 0.4 458 ``` ### 0.16.4 ``` Changelog * better unmarshaller finders with refactor 447 ``` ### 0.16.3 ``` Changelog * werkzeug flask root path fix 449 * additionalProperties without schema should allow null. 444 ``` ### 0.16.2 ``` Changelog * Add NullUnmarshaller 432 * Multi type unmarshaller 433 * Unmarshaller format refactor 434 ``` ### 0.16.1 ``` Changelog * lists as additional properties fix 429 * x-model extension optional 431 ``` ### 0.16.0 ``` Changelog * Switch to jsonschema-spec 416 * Use auto-detect validator proxy 418 * OpenAPI 3.1 support + Auto-detect proxies and request / response validator protocols 419 * Add py.typed to mark package as supporting typing 420 * Refuse to cast str or bytes to array 421 * x-model extension import model class 422 * Add deepObject support 379 * Add anyOf support 423 * Separate werkzeug support 426 * Starlette support 427 ``` ### 0.15.0 ``` Changelog * Parameter deserialize complex scenario support (329) * Response headers support (332) * Response headers support for contrib (333) * Drop python 2.7 support (335 344 351) * Drop python 3.5 support (339) * Drop python 3.6 support 383 * Add python 3.10 support 383 * Falcon2 support drop (353) * Django2 support drop (358) * Support basic re_path for Django integration (337) * unused `NoValue` type removed (340) * `attrs` remove and use `dataclasses` backport for python 3.6 (345) * Request validation parameters dataclass (346) * Handle missing MIME type in MediaTypeFinder (371) * Limit openapi dependencies upper bounds 386 * switch to `pathable` 389 * Get rid of `create_spec` shortcut 393 * `Request` and `Response` protocols 407 * validator factories removed from validation shortcuts 408 * Predefined openapi validators 409 * Customization refactor 412 * Static types with mypy 414 Backward incompatibilities * Python 3.6 and earlier no longer supported * `headers` attribute added to `OpenAPIResponse` datatype * `RequestParameters`' `header` attribute as `Headers` type * `RequestParameters`' `cookie` attribute as `ImmutableMultiDict` type * `RequestValidationResult`' `parameters` attribute as `Parameters` type * unused `server`, `operation` and `path` attributes removed from `RequestValidationResult` * `EmptyParameterValue` exception renamed to `EmptyQueryParameterValue` * `FalconOpenAPIRequestFactory` requires to be instantiated * `create_spec` shortcut replaced with `Spec.create` * `OpenAPIRequest` and `OpenAPIResponse` removed. All backward compabilities from`contrib` removed. * `spec_validate_*` shortcuts removed. Use `validate_request` and `validate_response` with `validator ` parameter instead. * `validate_{parameters,body,security}` shortcuts removed. Use predefined `openapi_request_parameters_validator`, `openapi_request_body_validator` and `openapi_request_security_validator` from `openapi_core.validation.request` instead. * `validate_{data,headers}` shortcuts removed. Use predefined `openapi_response_data_validator` and `openapi_response_headers_validator` from `openapi_core.validation.response` instead. * `custom_media_type_deserializers ` parameter for `RequestValidator` and `ResponseValidator` removed. Use `MediaTypeDeserializersFactory` with `custom_deserializers` parameter and pass it to validator with `media_type_deserializers_factory` parameter. * `custom_formatters ` parameter for `RequestValidator` and `ResponseValidator` removed. Use `SchemaUnmarshallersFactory` with `custom_formatters` parameter and pass it to validator. ``` ### 0.15.0a2 ``` Changelog * `Request` and `Response` protocols 407 * validator factories removed from validation shortcuts 408 * Predefined openapi validators 409 * Customization refactor 412 Backward incompatibilities * `OpenAPIRequest` and `OpenAPIResponse` removed. All backward compabilities from`contrib` removed. * `spec_validate_*` shortcuts removed. Use `validate_request` and `validate_response` with `validator ` parameter instead. * `validate_{parameters,body,security}` shortcuts removed. Use predefined `openapi_request_parameters_validator`, `openapi_request_body_validator` and `openapi_request_security_validator` from `openapi_core.validation.request` instead. * `validate_{data,headers}` shortcuts removed. Use predefined `openapi_response_data_validator` and `openapi_response_headers_validator` from `openapi_core.validation.response` instead. * `custom_media_type_deserializers ` parameter for `RequestValidator` and `ResponseValidator` removed. Use `MediaTypeDeserializersFactory` with `custom_deserializers` parameter and pass it to validator with `media_type_deserializers_factory` parameter. * `custom_formatters ` parameter for `RequestValidator` and `ResponseValidator` removed. Use `SchemaUnmarshallersFactory` with `custom_formatters` parameter and pass it to validator. ``` ### 0.15.0a1 ``` Changelog * Parameter deserialize complex scenario support (329) * Response headers support (332) * Response headers support for contrib (333) * Drop python 2.7 support (335 344 351) * Drop python 3.5 support (339) * Drop python 3.6 support 383 * Add python 3.10 support 383 * Falcon2 support drop (353) * Django2 support drop (358) * Support basic re_path for Django integration (337) * unused `NoValue` type removed (340) * `attrs` remove and use `dataclasses` backport for python 3.6 (345) * Request validation parameters dataclass (346) * Handle missing MIME type in MediaTypeFinder (371) * Limit openapi dependencies upper bounds 386 * switch to `pathable` 389 * Get rid of `create_spec` shortcut 393 Backward incompatibilities * Python 3.6 and earlier no longer supported * `headers` attribute added to `OpenAPIResponse` datatype * `RequestParameters`' `header` attribute as `Headers` type * `RequestParameters`' `cookie` attribute as `ImmutableMultiDict` type * `RequestValidationResult`' `parameters` attribute as `Parameters` type * unused `server`, `operation` and `path` attributes removed from `RequestValidationResult` * `EmptyParameterValue` exception renamed to `EmptyQueryParameterValue` * `FalconOpenAPIRequestFactory` requires to be instantiated * `create_spec` shortcut replaced with `Spec.create` ``` ### 0.14.5 ``` Changelog * openapi-spec-validator strict requirement fix 406 ``` ### 0.14.4 ``` Changelog * pyyaml strict requirement fix 404 ``` ### 0.14.3 ``` Changelog * pin openapi dependencies 403 ``` ### 0.14.2 ``` Changelog * Non required request body fix (325) ``` ### 0.14.1 ``` Changelog * Parameter simple scenarion for any schema type fix (323) ``` ### 0.14.0 ``` openapi-core 0.14 is scheduled to be the last major version in the 0.x series. This release introduces `SpecPath` which reduces spec creation time and allows to get rid of big `schema` package Changes: * `Spec` replaced with `SpecPath` (318) Backward incompatibilities: * `create_spec` shortcut returns `SpecPath` instead of `Spec` * removed Spec-related `schema` package * schema-related `exceptions` moved to top level `exceptions` module * `readOnly`/`writeOnly` invalid properties raise error (before were ommitted) * `MediaTypeDeserializersFactory.create` expects `mimetype` string instead of `media_type` * `MediaTypeFinder.find` returns `media_type, mimetype` tuple instead of just `media_type` ``` ### 0.13.8 ``` Changelog * use prepared request to format payload before converting (271) * deserialize form urlencoded media type (302) * deserialize data form media type (303) * Media type finder (307) * Add extensions support for the Parameter model (308) * Response finder (309) * Falcon3 support (316) ``` ### 0.13.7 ``` Changelog * Any unmarshaller validate fix (295) * Spec validation customization (290) * Format checker deepcopy to shallowcopy (291) * Format checker on validation scope (292) * Basic documentation (293) ``` ### 0.13.6 ``` Changelog * Remove security on operation level fix (284) * AnyUnmarshaller use allOf schemas (286) ``` ### 0.13.5 ``` Changelog * prioritize concrete paths fix (273) * return None on nullable array type (276) ``` ### 0.13.4 ``` Changelog * Paths finder relative url and simple paths check fix (222) * Add documentation for custom formatters (228) * Fix Requests.response factory (227) * Case insensitive headers fix (236) * Security HTTP provider fix (225) * Unmarshalling nullable objects (239) * Date-time format unmarshal tz fix (237) * Templating parser path parameter search fix (245) * Fix the Falcon integration to properly handle URLs with query strings. (233) ``` ### 0.13.3 ``` Changelog * Path patterns finder (202) - server and path with variables resolving * Requests integration (209) * b64decode issue29427 fix (210) * Extensible schema models (211) * Use `openapi-schema-validator` library (212) * Fix to force ConfigParser to correctly parse extra requirements (214) * Falcon integration (215) ``` ### 0.13.2 ``` Changelog * werkzeug missing dependency fix (203) ``` ### 0.13.1 ``` Changelog * Flask error handler status fix (199) * Validators shortcuts fix (200) ``` ### 0.13.0 ``` Changelog * Validation result datatypes (165) * OpenAPI request/response factories introduction (166) * Django OpenAPI request/response factories (167) * Schema exceptions refactor (168) * Operations fields (169) * Validation schema errors iter fix (170) * webob support (173) * CVE-2019-19844 fix (182) * Move Unmarshallers to separate subpackage (183) * Flask OpenAPI view & decorator (177) * Flask OpenAPI request parameters (185) * Move casters to separate subpackage (184) * Move schema validator to separate subpackage (186) * Move unmarshal out of schema models (188) * Deserialise models without schema fix (190) * Move deserialize/cast out of schema models (191) * Custom media type deserializers (192) * Missing Info models (193) * Free-form objects unmarshal (194) * Security validation with API Key and HTTP security types support (195) * Missing path model fields (196) * OpenAPI request datatype refactor (197) * readOnly and writeOnly support (152) Backward incompatibility * new datatype `RequestParameters`. That means `parameters` in `RequestValidationResult` is no longer `dict` type but you can still access parameter types (path, query, heder, cookie) lika a dict. * `validate_body`, `validate_parameters` and `validate_data` no longer accept `wrapper_class`, `request_wrapper_class` and `response_wrapper_class` keyword arguments. Use `request_factory` and `response_factory` instead. * `openapi_core.wrappers.flask` module moved to `openapi_core.contrib.flask` * `openapi_core.wrappers.mock` module moved to `openapi_core.testing.mock` * validation is now part of unmarshalling process * `strict` parameter removed * standardized formatting process with `Formatter` class. Custom formatters should inherit from the class. * unmarshalling process no longer raise `InvalidMediaTypeValue ` and `InvalidParameterValue ` exceptions * casting process no longer raise `InvalidParameterValue` exception * deserializing process no longer raise `InvalidMediaTypeValue` exception * `OpenAPIRequest `'s `host_url ` and `path_pattern ` attributes replaced with `full_url_pattern ` attribute ``` ### 0.12.0 ``` This release contains new Open API schema validation based on jsonschema (OAS Validator). Changelog - OAS validation with JSONSchema (157) ``` ### 0.11.1 ``` Changelog * Path item parameter override (145) * Separate cast and unmarshal (156) ``` ### 0.11.0 ``` openapi-core 0.11 is the last major version with schema validation based on internal validators (object validators). Next major versions is scheduled to be based on jsonschema validators (OAS Validator). Changelog - End of Python 3.4 support (136) - Add support for one-of with any type (133) - Modify FlaskOpenAPIRequest to accommodate path variables (141) - Primitive types unmarshallers (138) - attr errors hashable fix (143) - Parameters on path item object support (144) ``` ### 0.10.0 ``` openapi-core 0.10 is the last major version with Python 3.4 support Changelog * Fix 124: Checking "additionalProperties" in "oneOf" items. (125) * Add support for `password` string format (132) * Add support for path-level parameters (130) * Add support for "links" in Response (131) * Fix number validator (134) ``` ### 0.9.0 ``` Changelog - Raw value type strict validation (123 - Object additionalProperties support (121) - Properly formatting UUID if value is already a UUID (112) - String byte format fix (117) ``` ### 0.8.0 ``` Changelog * byte string format (111) * Fix import in an example (102) * Dont use value for determining any type (106) * Test for non utc systems fix (107) * Accepting uuid string format and validating accordingly (109) ``` ### 0.7.1 ``` Changelog * Python 2.7 requirements fix ```Links
- PyPI: https://pypi.org/project/openapi-core - Changelog: https://pyup.io/changelogs/openapi-core/ - Repo: https://github.com/python-openapi/openapi-core