Adding upstream version 0.5.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
303fa6e9d8
commit
97e6d74bac
110 changed files with 12006 additions and 0 deletions
33
openapi_pydantic/v3/parser.py
Normal file
33
openapi_pydantic/v3/parser.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
from typing import TYPE_CHECKING, Any, Union
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from openapi_pydantic.compat import PYDANTIC_V2
|
||||
|
||||
from .v3_0 import OpenAPI as OpenAPIv3_0
|
||||
from .v3_1 import OpenAPI as OpenAPIv3_1
|
||||
|
||||
OpenAPIv3 = Union[OpenAPIv3_1, OpenAPIv3_0]
|
||||
|
||||
if TYPE_CHECKING:
|
||||
|
||||
def parse_obj(data: Any) -> OpenAPIv3:
|
||||
"""Parse a raw object into an OpenAPI model with version inference."""
|
||||
...
|
||||
|
||||
elif PYDANTIC_V2:
|
||||
from pydantic import RootModel
|
||||
|
||||
class _OpenAPI(RootModel):
|
||||
root: OpenAPIv3 = Field(discriminator="openapi")
|
||||
|
||||
def parse_obj(data: Any) -> OpenAPIv3:
|
||||
return _OpenAPI.model_validate(data).root
|
||||
|
||||
else:
|
||||
|
||||
class _OpenAPI(BaseModel):
|
||||
__root__: OpenAPIv3 = Field(discriminator="openapi")
|
||||
|
||||
def parse_obj(data: Any) -> OpenAPIv3:
|
||||
return _OpenAPI.parse_obj(data).__root__
|
Loading…
Add table
Add a link
Reference in a new issue