forked from loafle/openapi-generator-original
python: adjust basic typing information (#17511)
* python: adjust basic typing information This is an initial pass to fix and adjust the typing information for the generated client. This is enough to have mypy runnning without complains on all the (modern) generated clients (Pydantic v1 code is not checked for instance) mypy is also now run directly in the CI, so further changes will also be checked and thus, will need to be compliant with good typing information. Note that this doesn't *fully* type all the code: mypy is not run in "strict" mode and there are still many functions/methods/attributes which are still not fully typed, but it's a first good step in that direction. * ApiResponse's raw_data can't be None * Fix indentation * Revert test changes * run mypy on tests/ directory * don't forcefully convert the client response headers to dict * override petstore ApiResponse model * adjust type of 'any/one_of_schemas' fields
This commit is contained in:
parent
4acbd69c3d
commit
22a0fc1727
@ -42,3 +42,7 @@ jobs:
|
|||||||
- name: Test
|
- name: Test
|
||||||
working-directory: ${{ matrix.sample }}
|
working-directory: ${{ matrix.sample }}
|
||||||
run: python -m pytest
|
run: python -m pytest
|
||||||
|
|
||||||
|
- name: mypy
|
||||||
|
working-directory: ${{ matrix.sample }}
|
||||||
|
run: python -m mypy
|
||||||
|
@ -57,3 +57,7 @@ jobs:
|
|||||||
- name: Test
|
- name: Test
|
||||||
working-directory: ${{ matrix.sample }}
|
working-directory: ${{ matrix.sample }}
|
||||||
run: poetry run pytest -v
|
run: poetry run pytest -v
|
||||||
|
|
||||||
|
- name: mypy
|
||||||
|
working-directory: ${{ matrix.sample }}
|
||||||
|
run: poetry run mypy
|
||||||
|
@ -6,3 +6,9 @@ library: asyncio
|
|||||||
additionalProperties:
|
additionalProperties:
|
||||||
packageName: petstore_api
|
packageName: petstore_api
|
||||||
mapNumberTo: float
|
mapNumberTo: float
|
||||||
|
nameMappings:
|
||||||
|
_type: underscore_type
|
||||||
|
type_: type_with_underscore
|
||||||
|
modelNameMappings:
|
||||||
|
# The OpenAPI spec ApiResponse conflicts with the internal ApiResponse
|
||||||
|
ApiResponse: ModelApiResponse
|
||||||
|
@ -10,3 +10,6 @@ additionalProperties:
|
|||||||
nameMappings:
|
nameMappings:
|
||||||
_type: underscore_type
|
_type: underscore_type
|
||||||
type_: type_with_underscore
|
type_: type_with_underscore
|
||||||
|
modelNameMappings:
|
||||||
|
# The OpenAPI spec ApiResponse conflicts with the internal ApiResponse
|
||||||
|
ApiResponse: ModelApiResponse
|
||||||
|
@ -4,11 +4,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
{{#imports}}
|
{{#imports}}
|
||||||
{{import}}
|
{{import}}
|
||||||
|
@ -280,15 +280,13 @@ class ApiClient:
|
|||||||
)
|
)
|
||||||
|
|
||||||
except ApiException as e:
|
except ApiException as e:
|
||||||
if e.body:
|
|
||||||
e.body = e.body.decode('utf-8')
|
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
return response_data
|
return response_data
|
||||||
|
|
||||||
def response_deserialize(
|
def response_deserialize(
|
||||||
self,
|
self,
|
||||||
response_data: rest.RESTResponse = None,
|
response_data: rest.RESTResponse,
|
||||||
response_types_map=None
|
response_types_map=None
|
||||||
) -> ApiResponse:
|
) -> ApiResponse:
|
||||||
"""Deserializes response into an object.
|
"""Deserializes response into an object.
|
||||||
@ -297,6 +295,8 @@ class ApiClient:
|
|||||||
:return: ApiResponse
|
:return: ApiResponse
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
msg = "RESTResponse.read() must be called before passing it to response_deserialize()"
|
||||||
|
assert response_data.data is not None, msg
|
||||||
|
|
||||||
response_type = response_types_map.get(str(response_data.status), None)
|
response_type = response_types_map.get(str(response_data.status), None)
|
||||||
if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
|
if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
"""API response object."""
|
"""API response object."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Dict, Optional, Generic, TypeVar
|
from typing import Optional, Generic, Mapping, TypeVar
|
||||||
from pydantic import Field, StrictInt, StrictStr, StrictBytes, BaseModel
|
from pydantic import Field, StrictInt, StrictBytes, BaseModel
|
||||||
|
|
||||||
T = TypeVar("T")
|
T = TypeVar("T")
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ class ApiResponse(BaseModel, Generic[T]):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
status_code: StrictInt = Field(description="HTTP status code")
|
status_code: StrictInt = Field(description="HTTP status code")
|
||||||
headers: Optional[Dict[StrictStr, StrictStr]] = Field(None, description="HTTP headers")
|
headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers")
|
||||||
data: T = Field(description="Deserialized data given the data type")
|
data: T = Field(description="Deserialized data given the data type")
|
||||||
raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
|
raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import io
|
|||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
import ssl
|
import ssl
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
import aiohttp_retry
|
import aiohttp_retry
|
||||||
@ -72,6 +73,7 @@ class RESTClientObject:
|
|||||||
)
|
)
|
||||||
|
|
||||||
retries = configuration.retries
|
retries = configuration.retries
|
||||||
|
self.retry_client: Optional[aiohttp_retry.RetryClient]
|
||||||
if retries is not None:
|
if retries is not None:
|
||||||
self.retry_client = aiohttp_retry.RetryClient(
|
self.retry_client = aiohttp_retry.RetryClient(
|
||||||
client_session=self.pool_manager,
|
client_session=self.pool_manager,
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
{{>partial_header}}
|
{{>partial_header}}
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
from typing_extensions import Self
|
from typing_extensions import Self
|
||||||
|
|
||||||
class OpenApiException(Exception):
|
class OpenApiException(Exception):
|
||||||
|
@ -11,6 +11,7 @@ import re # noqa: F401
|
|||||||
{{/vendorExtensions.x-py-model-imports}}
|
{{/vendorExtensions.x-py-model-imports}}
|
||||||
from typing import Union, Any, List, TYPE_CHECKING, Optional, Dict
|
from typing import Union, Any, List, TYPE_CHECKING, Optional, Dict
|
||||||
from typing_extensions import Literal, Self
|
from typing_extensions import Literal, Self
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
{{#lambda.uppercase}}{{{classname}}}{{/lambda.uppercase}}_ANY_OF_SCHEMAS = [{{#anyOf}}"{{.}}"{{^-last}}, {{/-last}}{{/anyOf}}]
|
{{#lambda.uppercase}}{{{classname}}}{{/lambda.uppercase}}_ANY_OF_SCHEMAS = [{{#anyOf}}"{{.}}"{{^-last}}, {{/-last}}{{/anyOf}}]
|
||||||
|
|
||||||
@ -27,7 +28,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
actual_instance: Optional[Union[{{#anyOf}}{{{.}}}{{^-last}}, {{/-last}}{{/anyOf}}]] = None
|
actual_instance: Optional[Union[{{#anyOf}}{{{.}}}{{^-last}}, {{/-last}}{{/anyOf}}]] = None
|
||||||
else:
|
else:
|
||||||
actual_instance: Any = None
|
actual_instance: Any = None
|
||||||
any_of_schemas: List[str] = Literal[{{#lambda.uppercase}}{{{classname}}}{{/lambda.uppercase}}_ANY_OF_SCHEMAS]
|
any_of_schemas: List[str] = Field(default=Literal[{{#anyOf}}"{{.}}"{{^-last}}, {{/-last}}{{/anyOf}}])
|
||||||
|
|
||||||
model_config = {
|
model_config = {
|
||||||
"validate_assignment": True,
|
"validate_assignment": True,
|
||||||
@ -153,22 +154,20 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
if self.actual_instance is None:
|
if self.actual_instance is None:
|
||||||
return "null"
|
return "null"
|
||||||
|
|
||||||
to_json = getattr(self.actual_instance, "to_json", None)
|
if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
|
||||||
if callable(to_json):
|
|
||||||
return self.actual_instance.to_json()
|
return self.actual_instance.to_json()
|
||||||
else:
|
else:
|
||||||
return json.dumps(self.actual_instance)
|
return json.dumps(self.actual_instance)
|
||||||
|
|
||||||
def to_dict(self) -> Dict:
|
def to_dict(self) -> Optional[Union[Dict, {{#anyOf}}{{.}}{{^-last}}, {{/-last}}{{/anyOf}}]]:
|
||||||
"""Returns the dict representation of the actual instance"""
|
"""Returns the dict representation of the actual instance"""
|
||||||
if self.actual_instance is None:
|
if self.actual_instance is None:
|
||||||
return "null"
|
return None
|
||||||
|
|
||||||
to_json = getattr(self.actual_instance, "to_json", None)
|
if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
|
||||||
if callable(to_json):
|
|
||||||
return self.actual_instance.to_dict()
|
return self.actual_instance.to_dict()
|
||||||
else:
|
else:
|
||||||
return json.dumps(self.actual_instance)
|
return self.actual_instance
|
||||||
|
|
||||||
def to_str(self) -> str:
|
def to_str(self) -> str:
|
||||||
"""Returns the string representation of the actual instance"""
|
"""Returns the string representation of the actual instance"""
|
||||||
|
@ -9,10 +9,8 @@ import json
|
|||||||
{{#vendorExtensions.x-py-model-imports}}
|
{{#vendorExtensions.x-py-model-imports}}
|
||||||
{{{.}}}
|
{{{.}}}
|
||||||
{{/vendorExtensions.x-py-model-imports}}
|
{{/vendorExtensions.x-py-model-imports}}
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}):
|
class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}):
|
||||||
"""
|
"""
|
||||||
@ -87,7 +85,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
{{#hasChildren}}
|
{{#hasChildren}}
|
||||||
{{#discriminator}}
|
{{#discriminator}}
|
||||||
# JSON field name that stores the object type
|
# JSON field name that stores the object type
|
||||||
__discriminator_property_name: ClassVar[List[str]] = '{{discriminator.propertyBaseName}}'
|
__discriminator_property_name: ClassVar[str] = '{{discriminator.propertyBaseName}}'
|
||||||
|
|
||||||
# discriminator mappings
|
# discriminator mappings
|
||||||
__discriminator_value_class_map: ClassVar[Dict[str, str]] = {
|
__discriminator_value_class_map: ClassVar[Dict[str, str]] = {
|
||||||
@ -95,7 +93,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
}
|
}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_discriminator_value(cls, obj: Dict) -> str:
|
def get_discriminator_value(cls, obj: Dict) -> Optional[str]:
|
||||||
"""Returns the discriminator value (object type) of the data"""
|
"""Returns the discriminator value (object type) of the data"""
|
||||||
discriminator_value = obj[cls.__discriminator_property_name]
|
discriminator_value = obj[cls.__discriminator_property_name]
|
||||||
if discriminator_value:
|
if discriminator_value:
|
||||||
@ -115,7 +113,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> {{^hasChildren}}Self{{/hasChildren}}{{#hasChildren}}{{#discriminator}}Union[{{#children}}Self{{^-last}}, {{/-last}}{{/children}}]{{/discriminator}}{{^discriminator}}Self{{/discriminator}}{{/hasChildren}}:
|
def from_json(cls, json_str: str) -> Optional[{{^hasChildren}}Self{{/hasChildren}}{{#hasChildren}}{{#discriminator}}Union[{{#children}}Self{{^-last}}, {{/-last}}{{/children}}]{{/discriminator}}{{^discriminator}}Self{{/discriminator}}{{/hasChildren}}]:
|
||||||
"""Create an instance of {{{classname}}} from a JSON string"""
|
"""Create an instance of {{{classname}}} from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -135,16 +133,18 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
* Fields in `self.additional_properties` are added to the output dict.
|
* Fields in `self.additional_properties` are added to the output dict.
|
||||||
{{/isAdditionalPropertiesTrue}}
|
{{/isAdditionalPropertiesTrue}}
|
||||||
"""
|
"""
|
||||||
_dict = self.model_dump(
|
excluded_fields: Set[str] = set([
|
||||||
by_alias=True,
|
|
||||||
exclude={
|
|
||||||
{{#vendorExtensions.x-py-readonly}}
|
{{#vendorExtensions.x-py-readonly}}
|
||||||
"{{{.}}}",
|
"{{{.}}}",
|
||||||
{{/vendorExtensions.x-py-readonly}}
|
{{/vendorExtensions.x-py-readonly}}
|
||||||
{{#isAdditionalPropertiesTrue}}
|
{{#isAdditionalPropertiesTrue}}
|
||||||
"additional_properties",
|
"additional_properties",
|
||||||
{{/isAdditionalPropertiesTrue}}
|
{{/isAdditionalPropertiesTrue}}
|
||||||
},
|
])
|
||||||
|
|
||||||
|
_dict = self.model_dump(
|
||||||
|
by_alias=True,
|
||||||
|
exclude=excluded_fields,
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
{{#allVars}}
|
{{#allVars}}
|
||||||
@ -234,10 +234,10 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
{{/allVars}}
|
{{/allVars}}
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_dict(cls, obj: Dict) -> {{^hasChildren}}Self{{/hasChildren}}{{#hasChildren}}{{#discriminator}}Union[{{#children}}Self{{^-last}}, {{/-last}}{{/children}}]{{/discriminator}}{{^discriminator}}Self{{/discriminator}}{{/hasChildren}}:
|
|
||||||
"""Create an instance of {{{classname}}} from a dict"""
|
|
||||||
{{#hasChildren}}
|
{{#hasChildren}}
|
||||||
|
@classmethod
|
||||||
|
def from_dict(cls, obj: Dict) -> Optional[{{#discriminator}}Union[{{#children}}Self{{^-last}}, {{/-last}}{{/children}}]{{/discriminator}}{{^discriminator}}Self{{/discriminator}}]:
|
||||||
|
"""Create an instance of {{{classname}}} from a dict"""
|
||||||
{{#discriminator}}
|
{{#discriminator}}
|
||||||
# look up the object type based on discriminator mapping
|
# look up the object type based on discriminator mapping
|
||||||
object_type = cls.get_discriminator_value(obj)
|
object_type = cls.get_discriminator_value(obj)
|
||||||
@ -251,6 +251,9 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
{{/discriminator}}
|
{{/discriminator}}
|
||||||
{{/hasChildren}}
|
{{/hasChildren}}
|
||||||
{{^hasChildren}}
|
{{^hasChildren}}
|
||||||
|
@classmethod
|
||||||
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
|
"""Create an instance of {{{classname}}} from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -277,7 +280,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
{{^items.items.isPrimitiveType}}
|
{{^items.items.isPrimitiveType}}
|
||||||
"{{{baseName}}}": [
|
"{{{baseName}}}": [
|
||||||
[{{{items.items.dataType}}}.from_dict(_inner_item) for _inner_item in _item]
|
[{{{items.items.dataType}}}.from_dict(_inner_item) for _inner_item in _item]
|
||||||
for _item in obj.get("{{{baseName}}}")
|
for _item in obj["{{{baseName}}}"]
|
||||||
] if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}}
|
] if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}}
|
||||||
{{/items.items.isPrimitiveType}}
|
{{/items.items.isPrimitiveType}}
|
||||||
{{/items.isArray}}
|
{{/items.isArray}}
|
||||||
@ -287,7 +290,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
"{{{baseName}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}}
|
"{{{baseName}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}}
|
||||||
{{/items.isEnumOrRef}}
|
{{/items.isEnumOrRef}}
|
||||||
{{^items.isEnumOrRef}}
|
{{^items.isEnumOrRef}}
|
||||||
"{{{baseName}}}": [{{{items.dataType}}}.from_dict(_item) for _item in obj.get("{{{baseName}}}")] if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}}
|
"{{{baseName}}}": [{{{items.dataType}}}.from_dict(_item) for _item in obj["{{{baseName}}}"]] if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}}
|
||||||
{{/items.isEnumOrRef}}
|
{{/items.isEnumOrRef}}
|
||||||
{{/items.isPrimitiveType}}
|
{{/items.isPrimitiveType}}
|
||||||
{{#items.isPrimitiveType}}
|
{{#items.isPrimitiveType}}
|
||||||
@ -320,14 +323,14 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
if _v is not None
|
if _v is not None
|
||||||
else None
|
else None
|
||||||
)
|
)
|
||||||
for _k, _v in obj.get("{{{baseName}}}").items()
|
for _k, _v in obj.get("{{{baseName}}}", {}).items()
|
||||||
){{^-last}},{{/-last}}
|
){{^-last}},{{/-last}}
|
||||||
{{/items.isArray}}
|
{{/items.isArray}}
|
||||||
{{/items.isContainer}}
|
{{/items.isContainer}}
|
||||||
{{^items.isContainer}}
|
{{^items.isContainer}}
|
||||||
"{{{baseName}}}": dict(
|
"{{{baseName}}}": dict(
|
||||||
(_k, {{{items.dataType}}}.from_dict(_v))
|
(_k, {{{items.dataType}}}.from_dict(_v))
|
||||||
for _k, _v in obj.get("{{{baseName}}}").items()
|
for _k, _v in obj["{{{baseName}}}"].items()
|
||||||
)
|
)
|
||||||
if obj.get("{{{baseName}}}") is not None
|
if obj.get("{{{baseName}}}") is not None
|
||||||
else None{{^-last}},{{/-last}}
|
else None{{^-last}},{{/-last}}
|
||||||
@ -345,7 +348,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
{{^isContainer}}
|
{{^isContainer}}
|
||||||
{{^isPrimitiveType}}
|
{{^isPrimitiveType}}
|
||||||
{{^isEnumOrRef}}
|
{{^isEnumOrRef}}
|
||||||
"{{{baseName}}}": {{{dataType}}}.from_dict(obj.get("{{{baseName}}}")) if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}}
|
"{{{baseName}}}": {{{dataType}}}.from_dict(obj["{{{baseName}}}"]) if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}}
|
||||||
{{/isEnumOrRef}}
|
{{/isEnumOrRef}}
|
||||||
{{#isEnumOrRef}}
|
{{#isEnumOrRef}}
|
||||||
"{{{baseName}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}}
|
"{{{baseName}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}}
|
||||||
|
@ -22,7 +22,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
{{vendorExtensions.x-py-name}}: {{{vendorExtensions.x-py-typing}}}
|
{{vendorExtensions.x-py-name}}: {{{vendorExtensions.x-py-typing}}}
|
||||||
{{/composedSchemas.oneOf}}
|
{{/composedSchemas.oneOf}}
|
||||||
actual_instance: Optional[Union[{{#oneOf}}{{{.}}}{{^-last}}, {{/-last}}{{/oneOf}}]] = None
|
actual_instance: Optional[Union[{{#oneOf}}{{{.}}}{{^-last}}, {{/-last}}{{/oneOf}}]] = None
|
||||||
one_of_schemas: List[str] = Literal[{{#oneOf}}"{{.}}"{{^-last}}, {{/-last}}{{/oneOf}}]
|
one_of_schemas: List[str] = Field(default=Literal[{{#oneOf}}"{{.}}"{{^-last}}, {{/-last}}{{/oneOf}}])
|
||||||
|
|
||||||
model_config = {
|
model_config = {
|
||||||
"validate_assignment": True,
|
"validate_assignment": True,
|
||||||
@ -175,19 +175,17 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
|||||||
if self.actual_instance is None:
|
if self.actual_instance is None:
|
||||||
return "null"
|
return "null"
|
||||||
|
|
||||||
to_json = getattr(self.actual_instance, "to_json", None)
|
if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
|
||||||
if callable(to_json):
|
|
||||||
return self.actual_instance.to_json()
|
return self.actual_instance.to_json()
|
||||||
else:
|
else:
|
||||||
return json.dumps(self.actual_instance)
|
return json.dumps(self.actual_instance)
|
||||||
|
|
||||||
def to_dict(self) -> Dict:
|
def to_dict(self) -> Optional[Union[Dict, {{#oneOf}}{{{.}}}{{^-last}}, {{/-last}}{{/oneOf}}]]:
|
||||||
"""Returns the dict representation of the actual instance"""
|
"""Returns the dict representation of the actual instance"""
|
||||||
if self.actual_instance is None:
|
if self.actual_instance is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
to_dict = getattr(self.actual_instance, "to_dict", None)
|
if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
|
||||||
if callable(to_dict):
|
|
||||||
return self.actual_instance.to_dict()
|
return self.actual_instance.to_dict()
|
||||||
else:
|
else:
|
||||||
# primitive type
|
# primitive type
|
||||||
|
@ -32,6 +32,9 @@ typing-extensions = ">=4.7.1"
|
|||||||
pytest = ">=7.2.1"
|
pytest = ">=7.2.1"
|
||||||
tox = ">=3.9.0"
|
tox = ">=3.9.0"
|
||||||
flake8 = ">=4.0.0"
|
flake8 = ">=4.0.0"
|
||||||
|
types-python-dateutil = ">=2.8.19.14"
|
||||||
|
mypy = "1.4.1"
|
||||||
|
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["setuptools"]
|
requires = ["setuptools"]
|
||||||
@ -39,3 +42,10 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[tool.pylint.'MESSAGES CONTROL']
|
[tool.pylint.'MESSAGES CONTROL']
|
||||||
extension-pkg-whitelist = "pydantic"
|
extension-pkg-whitelist = "pydantic"
|
||||||
|
|
||||||
|
[tool.mypy]
|
||||||
|
files = [
|
||||||
|
"{{{packageName}}}",
|
||||||
|
#"test", # auto-generated tests
|
||||||
|
"tests", # hand-written tests
|
||||||
|
]
|
||||||
|
@ -61,56 +61,45 @@ class RESTClientObject:
|
|||||||
else:
|
else:
|
||||||
cert_reqs = ssl.CERT_NONE
|
cert_reqs = ssl.CERT_NONE
|
||||||
|
|
||||||
addition_pool_args = {}
|
pool_args = {
|
||||||
|
"cert_reqs": cert_reqs,
|
||||||
|
"ca_certs": configuration.ssl_ca_cert,
|
||||||
|
"cert_file": configuration.cert_file,
|
||||||
|
"key_file": configuration.key_file,
|
||||||
|
}
|
||||||
if configuration.assert_hostname is not None:
|
if configuration.assert_hostname is not None:
|
||||||
addition_pool_args['assert_hostname'] = (
|
pool_args['assert_hostname'] = (
|
||||||
configuration.assert_hostname
|
configuration.assert_hostname
|
||||||
)
|
)
|
||||||
|
|
||||||
if configuration.retries is not None:
|
if configuration.retries is not None:
|
||||||
addition_pool_args['retries'] = configuration.retries
|
pool_args['retries'] = configuration.retries
|
||||||
|
|
||||||
if configuration.tls_server_name:
|
if configuration.tls_server_name:
|
||||||
addition_pool_args['server_hostname'] = configuration.tls_server_name
|
pool_args['server_hostname'] = configuration.tls_server_name
|
||||||
|
|
||||||
|
|
||||||
if configuration.socket_options is not None:
|
if configuration.socket_options is not None:
|
||||||
addition_pool_args['socket_options'] = configuration.socket_options
|
pool_args['socket_options'] = configuration.socket_options
|
||||||
|
|
||||||
if configuration.connection_pool_maxsize is not None:
|
if configuration.connection_pool_maxsize is not None:
|
||||||
addition_pool_args['maxsize'] = configuration.connection_pool_maxsize
|
pool_args['maxsize'] = configuration.connection_pool_maxsize
|
||||||
|
|
||||||
# https pool manager
|
# https pool manager
|
||||||
|
self.pool_manager: urllib3.PoolManager
|
||||||
|
|
||||||
if configuration.proxy:
|
if configuration.proxy:
|
||||||
if is_socks_proxy_url(configuration.proxy):
|
if is_socks_proxy_url(configuration.proxy):
|
||||||
from urllib3.contrib.socks import SOCKSProxyManager
|
from urllib3.contrib.socks import SOCKSProxyManager
|
||||||
self.pool_manager = SOCKSProxyManager(
|
pool_args["proxy_url"] = configuration.proxy
|
||||||
cert_reqs=cert_reqs,
|
pool_args["headers"] = configuration.proxy_headers
|
||||||
ca_certs=configuration.ssl_ca_cert,
|
self.pool_manager = SOCKSProxyManager(**pool_args)
|
||||||
cert_file=configuration.cert_file,
|
|
||||||
key_file=configuration.key_file,
|
|
||||||
proxy_url=configuration.proxy,
|
|
||||||
headers=configuration.proxy_headers,
|
|
||||||
**addition_pool_args
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
self.pool_manager = urllib3.ProxyManager(
|
pool_args["proxy_url"] = configuration.proxy
|
||||||
cert_reqs=cert_reqs,
|
pool_args["proxy_headers"] = configuration.proxy_headers
|
||||||
ca_certs=configuration.ssl_ca_cert,
|
self.pool_manager = urllib3.ProxyManager(**pool_args)
|
||||||
cert_file=configuration.cert_file,
|
|
||||||
key_file=configuration.key_file,
|
|
||||||
proxy_url=configuration.proxy,
|
|
||||||
proxy_headers=configuration.proxy_headers,
|
|
||||||
**addition_pool_args
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
self.pool_manager = urllib3.PoolManager(
|
self.pool_manager = urllib3.PoolManager(**pool_args)
|
||||||
cert_reqs=cert_reqs,
|
|
||||||
ca_certs=configuration.ssl_ca_cert,
|
|
||||||
cert_file=configuration.cert_file,
|
|
||||||
key_file=configuration.key_file,
|
|
||||||
**addition_pool_args
|
|
||||||
)
|
|
||||||
|
|
||||||
def request(
|
def request(
|
||||||
self,
|
self,
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
pytest~=7.1.3
|
pytest~=7.1.3
|
||||||
pytest-cov>=2.8.1
|
pytest-cov>=2.8.1
|
||||||
pytest-randomly>=3.12.0
|
pytest-randomly>=3.12.0
|
||||||
|
mypy>=1.4.1
|
||||||
|
types-python-dateutil>=2.8.19
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
|
|
||||||
from openapi_client.api_client import ApiClient
|
from openapi_client.api_client import ApiClient
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import Field, StrictBytes, StrictStr
|
from pydantic import Field, StrictBytes, StrictStr
|
||||||
from typing import Any, Dict, List, Optional, Union
|
from typing import Any, Dict, List, Optional, Union
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import StrictBool, StrictInt, StrictStr
|
from pydantic import StrictBool, StrictInt, StrictStr
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import StrictBool, StrictInt, StrictStr, field_validator
|
from pydantic import StrictBool, StrictInt, StrictStr, field_validator
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import StrictInt, StrictStr, field_validator
|
from pydantic import StrictInt, StrictStr, field_validator
|
||||||
from openapi_client.models.string_enum_ref import StringEnumRef
|
from openapi_client.models.string_enum_ref import StringEnumRef
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from datetime import date, datetime
|
from datetime import date, datetime
|
||||||
from pydantic import StrictBool, StrictInt, StrictStr, field_validator
|
from pydantic import StrictBool, StrictInt, StrictStr, field_validator
|
||||||
|
@ -273,15 +273,13 @@ class ApiClient:
|
|||||||
)
|
)
|
||||||
|
|
||||||
except ApiException as e:
|
except ApiException as e:
|
||||||
if e.body:
|
|
||||||
e.body = e.body.decode('utf-8')
|
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
return response_data
|
return response_data
|
||||||
|
|
||||||
def response_deserialize(
|
def response_deserialize(
|
||||||
self,
|
self,
|
||||||
response_data: rest.RESTResponse = None,
|
response_data: rest.RESTResponse,
|
||||||
response_types_map=None
|
response_types_map=None
|
||||||
) -> ApiResponse:
|
) -> ApiResponse:
|
||||||
"""Deserializes response into an object.
|
"""Deserializes response into an object.
|
||||||
@ -290,6 +288,8 @@ class ApiClient:
|
|||||||
:return: ApiResponse
|
:return: ApiResponse
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
msg = "RESTResponse.read() must be called before passing it to response_deserialize()"
|
||||||
|
assert response_data.data is not None, msg
|
||||||
|
|
||||||
response_type = response_types_map.get(str(response_data.status), None)
|
response_type = response_types_map.get(str(response_data.status), None)
|
||||||
if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
|
if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
"""API response object."""
|
"""API response object."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Dict, Optional, Generic, TypeVar
|
from typing import Optional, Generic, Mapping, TypeVar
|
||||||
from pydantic import Field, StrictInt, StrictStr, StrictBytes, BaseModel
|
from pydantic import Field, StrictInt, StrictBytes, BaseModel
|
||||||
|
|
||||||
T = TypeVar("T")
|
T = TypeVar("T")
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ class ApiResponse(BaseModel, Generic[T]):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
status_code: StrictInt = Field(description="HTTP status code")
|
status_code: StrictInt = Field(description="HTTP status code")
|
||||||
headers: Optional[Dict[StrictStr, StrictStr]] = Field(None, description="HTTP headers")
|
headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers")
|
||||||
data: T = Field(description="Deserialized data given the data type")
|
data: T = Field(description="Deserialized data given the data type")
|
||||||
raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
|
raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
""" # noqa: E501
|
""" # noqa: E501
|
||||||
|
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
from typing_extensions import Self
|
from typing_extensions import Self
|
||||||
|
|
||||||
class OpenApiException(Exception):
|
class OpenApiException(Exception):
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictStr
|
from pydantic import BaseModel, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Bird(BaseModel):
|
class Bird(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -50,7 +48,7 @@ class Bird(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Bird from a JSON string"""
|
"""Create an instance of Bird from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,16 +62,18 @@ class Bird(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Bird from a dict"""
|
"""Create an instance of Bird from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictInt, StrictStr
|
from pydantic import BaseModel, StrictInt, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Category(BaseModel):
|
class Category(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -50,7 +48,7 @@ class Category(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Category from a JSON string"""
|
"""Create an instance of Category from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,16 +62,18 @@ class Category(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Category from a dict"""
|
"""Create an instance of Category from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -22,10 +22,8 @@ from datetime import datetime
|
|||||||
from pydantic import Field, StrictStr
|
from pydantic import Field, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from openapi_client.models.query import Query
|
from openapi_client.models.query import Query
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class DataQuery(Query):
|
class DataQuery(Query):
|
||||||
"""
|
"""
|
||||||
@ -53,7 +51,7 @@ class DataQuery(Query):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of DataQuery from a JSON string"""
|
"""Create an instance of DataQuery from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -67,16 +65,18 @@ class DataQuery(Query):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of DataQuery from a dict"""
|
"""Create an instance of DataQuery from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -21,10 +21,8 @@ import json
|
|||||||
from pydantic import BaseModel, StrictInt, StrictStr, field_validator
|
from pydantic import BaseModel, StrictInt, StrictStr, field_validator
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from openapi_client.models.string_enum_ref import StringEnumRef
|
from openapi_client.models.string_enum_ref import StringEnumRef
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class DefaultValue(BaseModel):
|
class DefaultValue(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -68,7 +66,7 @@ class DefaultValue(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of DefaultValue from a JSON string"""
|
"""Create an instance of DefaultValue from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -82,10 +80,12 @@ class DefaultValue(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# set to None if array_string_nullable (nullable) is None
|
# set to None if array_string_nullable (nullable) is None
|
||||||
@ -106,7 +106,7 @@ class DefaultValue(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of DefaultValue from a dict"""
|
"""Create an instance of DefaultValue from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -21,10 +21,8 @@ import json
|
|||||||
from pydantic import BaseModel, Field, StrictFloat, StrictInt
|
from pydantic import BaseModel, Field, StrictFloat, StrictInt
|
||||||
from typing import Any, ClassVar, Dict, List, Optional, Union
|
from typing import Any, ClassVar, Dict, List, Optional, Union
|
||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class NumberPropertiesOnly(BaseModel):
|
class NumberPropertiesOnly(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -52,7 +50,7 @@ class NumberPropertiesOnly(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of NumberPropertiesOnly from a JSON string"""
|
"""Create an instance of NumberPropertiesOnly from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -66,16 +64,18 @@ class NumberPropertiesOnly(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of NumberPropertiesOnly from a dict"""
|
"""Create an instance of NumberPropertiesOnly from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -22,10 +22,8 @@ from pydantic import BaseModel, Field, StrictInt, StrictStr, field_validator
|
|||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from openapi_client.models.category import Category
|
from openapi_client.models.category import Category
|
||||||
from openapi_client.models.tag import Tag
|
from openapi_client.models.tag import Tag
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Pet(BaseModel):
|
class Pet(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -66,7 +64,7 @@ class Pet(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Pet from a JSON string"""
|
"""Create an instance of Pet from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -80,10 +78,12 @@ class Pet(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# override the default output from pydantic by calling `to_dict()` of category
|
# override the default output from pydantic by calling `to_dict()` of category
|
||||||
@ -99,7 +99,7 @@ class Pet(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Pet from a dict"""
|
"""Create an instance of Pet from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
@ -115,9 +115,9 @@ class Pet(BaseModel):
|
|||||||
_obj = cls.model_validate({
|
_obj = cls.model_validate({
|
||||||
"id": obj.get("id"),
|
"id": obj.get("id"),
|
||||||
"name": obj.get("name"),
|
"name": obj.get("name"),
|
||||||
"category": Category.from_dict(obj.get("category")) if obj.get("category") is not None else None,
|
"category": Category.from_dict(obj["category"]) if obj.get("category") is not None else None,
|
||||||
"photoUrls": obj.get("photoUrls"),
|
"photoUrls": obj.get("photoUrls"),
|
||||||
"tags": [Tag.from_dict(_item) for _item in obj.get("tags")] if obj.get("tags") is not None else None,
|
"tags": [Tag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
|
||||||
"status": obj.get("status")
|
"status": obj.get("status")
|
||||||
})
|
})
|
||||||
return _obj
|
return _obj
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field, StrictInt, StrictStr, field_validator
|
from pydantic import BaseModel, Field, StrictInt, StrictStr, field_validator
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Query(BaseModel):
|
class Query(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -61,7 +59,7 @@ class Query(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Query from a JSON string"""
|
"""Create an instance of Query from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -75,16 +73,18 @@ class Query(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Dict) -> Optional[Self]:
|
||||||
"""Create an instance of Query from a dict"""
|
"""Create an instance of Query from a dict"""
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictInt, StrictStr
|
from pydantic import BaseModel, StrictInt, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Tag(BaseModel):
|
class Tag(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -50,7 +48,7 @@ class Tag(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Tag from a JSON string"""
|
"""Create an instance of Tag from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,16 +62,18 @@ class Tag(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Tag from a dict"""
|
"""Create an instance of Tag from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictInt, StrictStr
|
from pydantic import BaseModel, StrictInt, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter(BaseModel):
|
class TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -52,7 +50,7 @@ class TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter(BaseMod
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter from a JSON string"""
|
"""Create an instance of TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -66,16 +64,18 @@ class TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter(BaseMod
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter from a dict"""
|
"""Create an instance of TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictStr
|
from pydantic import BaseModel, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter(BaseModel):
|
class TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter from a JSON string"""
|
"""Create an instance of TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -63,16 +61,18 @@ class TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter from a dict"""
|
"""Create an instance of TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -72,56 +72,45 @@ class RESTClientObject:
|
|||||||
else:
|
else:
|
||||||
cert_reqs = ssl.CERT_NONE
|
cert_reqs = ssl.CERT_NONE
|
||||||
|
|
||||||
addition_pool_args = {}
|
pool_args = {
|
||||||
|
"cert_reqs": cert_reqs,
|
||||||
|
"ca_certs": configuration.ssl_ca_cert,
|
||||||
|
"cert_file": configuration.cert_file,
|
||||||
|
"key_file": configuration.key_file,
|
||||||
|
}
|
||||||
if configuration.assert_hostname is not None:
|
if configuration.assert_hostname is not None:
|
||||||
addition_pool_args['assert_hostname'] = (
|
pool_args['assert_hostname'] = (
|
||||||
configuration.assert_hostname
|
configuration.assert_hostname
|
||||||
)
|
)
|
||||||
|
|
||||||
if configuration.retries is not None:
|
if configuration.retries is not None:
|
||||||
addition_pool_args['retries'] = configuration.retries
|
pool_args['retries'] = configuration.retries
|
||||||
|
|
||||||
if configuration.tls_server_name:
|
if configuration.tls_server_name:
|
||||||
addition_pool_args['server_hostname'] = configuration.tls_server_name
|
pool_args['server_hostname'] = configuration.tls_server_name
|
||||||
|
|
||||||
|
|
||||||
if configuration.socket_options is not None:
|
if configuration.socket_options is not None:
|
||||||
addition_pool_args['socket_options'] = configuration.socket_options
|
pool_args['socket_options'] = configuration.socket_options
|
||||||
|
|
||||||
if configuration.connection_pool_maxsize is not None:
|
if configuration.connection_pool_maxsize is not None:
|
||||||
addition_pool_args['maxsize'] = configuration.connection_pool_maxsize
|
pool_args['maxsize'] = configuration.connection_pool_maxsize
|
||||||
|
|
||||||
# https pool manager
|
# https pool manager
|
||||||
|
self.pool_manager: urllib3.PoolManager
|
||||||
|
|
||||||
if configuration.proxy:
|
if configuration.proxy:
|
||||||
if is_socks_proxy_url(configuration.proxy):
|
if is_socks_proxy_url(configuration.proxy):
|
||||||
from urllib3.contrib.socks import SOCKSProxyManager
|
from urllib3.contrib.socks import SOCKSProxyManager
|
||||||
self.pool_manager = SOCKSProxyManager(
|
pool_args["proxy_url"] = configuration.proxy
|
||||||
cert_reqs=cert_reqs,
|
pool_args["headers"] = configuration.proxy_headers
|
||||||
ca_certs=configuration.ssl_ca_cert,
|
self.pool_manager = SOCKSProxyManager(**pool_args)
|
||||||
cert_file=configuration.cert_file,
|
|
||||||
key_file=configuration.key_file,
|
|
||||||
proxy_url=configuration.proxy,
|
|
||||||
headers=configuration.proxy_headers,
|
|
||||||
**addition_pool_args
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
self.pool_manager = urllib3.ProxyManager(
|
pool_args["proxy_url"] = configuration.proxy
|
||||||
cert_reqs=cert_reqs,
|
pool_args["proxy_headers"] = configuration.proxy_headers
|
||||||
ca_certs=configuration.ssl_ca_cert,
|
self.pool_manager = urllib3.ProxyManager(**pool_args)
|
||||||
cert_file=configuration.cert_file,
|
|
||||||
key_file=configuration.key_file,
|
|
||||||
proxy_url=configuration.proxy,
|
|
||||||
proxy_headers=configuration.proxy_headers,
|
|
||||||
**addition_pool_args
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
self.pool_manager = urllib3.PoolManager(
|
self.pool_manager = urllib3.PoolManager(**pool_args)
|
||||||
cert_reqs=cert_reqs,
|
|
||||||
ca_certs=configuration.ssl_ca_cert,
|
|
||||||
cert_file=configuration.cert_file,
|
|
||||||
key_file=configuration.key_file,
|
|
||||||
**addition_pool_args
|
|
||||||
)
|
|
||||||
|
|
||||||
def request(
|
def request(
|
||||||
self,
|
self,
|
||||||
|
@ -21,6 +21,9 @@ typing-extensions = ">=4.7.1"
|
|||||||
pytest = ">=7.2.1"
|
pytest = ">=7.2.1"
|
||||||
tox = ">=3.9.0"
|
tox = ">=3.9.0"
|
||||||
flake8 = ">=4.0.0"
|
flake8 = ">=4.0.0"
|
||||||
|
types-python-dateutil = ">=2.8.19.14"
|
||||||
|
mypy = "1.4.1"
|
||||||
|
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["setuptools"]
|
requires = ["setuptools"]
|
||||||
@ -28,3 +31,10 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[tool.pylint.'MESSAGES CONTROL']
|
[tool.pylint.'MESSAGES CONTROL']
|
||||||
extension-pkg-whitelist = "pydantic"
|
extension-pkg-whitelist = "pydantic"
|
||||||
|
|
||||||
|
[tool.mypy]
|
||||||
|
files = [
|
||||||
|
"openapi_client",
|
||||||
|
#"test", # auto-generated tests
|
||||||
|
"tests", # hand-written tests
|
||||||
|
]
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
pytest~=7.1.3
|
pytest~=7.1.3
|
||||||
pytest-cov>=2.8.1
|
pytest-cov>=2.8.1
|
||||||
pytest-randomly>=3.12.0
|
pytest-randomly>=3.12.0
|
||||||
|
mypy>=1.4.1
|
||||||
|
types-python-dateutil>=2.8.19
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
|
|
||||||
from openapi_client.api_client import ApiClient
|
from openapi_client.api_client import ApiClient
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import Field, StrictBytes, StrictStr
|
from pydantic import Field, StrictBytes, StrictStr
|
||||||
from typing import Any, Dict, List, Optional, Union
|
from typing import Any, Dict, List, Optional, Union
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import StrictBool, StrictInt, StrictStr
|
from pydantic import StrictBool, StrictInt, StrictStr
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import StrictBool, StrictInt, StrictStr, field_validator
|
from pydantic import StrictBool, StrictInt, StrictStr, field_validator
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import StrictInt, StrictStr, field_validator
|
from pydantic import StrictInt, StrictStr, field_validator
|
||||||
from openapi_client.models.string_enum_ref import StringEnumRef
|
from openapi_client.models.string_enum_ref import StringEnumRef
|
||||||
|
@ -15,11 +15,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from datetime import date, datetime
|
from datetime import date, datetime
|
||||||
from pydantic import StrictBool, StrictInt, StrictStr, field_validator
|
from pydantic import StrictBool, StrictInt, StrictStr, field_validator
|
||||||
|
@ -273,15 +273,13 @@ class ApiClient:
|
|||||||
)
|
)
|
||||||
|
|
||||||
except ApiException as e:
|
except ApiException as e:
|
||||||
if e.body:
|
|
||||||
e.body = e.body.decode('utf-8')
|
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
return response_data
|
return response_data
|
||||||
|
|
||||||
def response_deserialize(
|
def response_deserialize(
|
||||||
self,
|
self,
|
||||||
response_data: rest.RESTResponse = None,
|
response_data: rest.RESTResponse,
|
||||||
response_types_map=None
|
response_types_map=None
|
||||||
) -> ApiResponse:
|
) -> ApiResponse:
|
||||||
"""Deserializes response into an object.
|
"""Deserializes response into an object.
|
||||||
@ -290,6 +288,8 @@ class ApiClient:
|
|||||||
:return: ApiResponse
|
:return: ApiResponse
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
msg = "RESTResponse.read() must be called before passing it to response_deserialize()"
|
||||||
|
assert response_data.data is not None, msg
|
||||||
|
|
||||||
response_type = response_types_map.get(str(response_data.status), None)
|
response_type = response_types_map.get(str(response_data.status), None)
|
||||||
if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
|
if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
"""API response object."""
|
"""API response object."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Dict, Optional, Generic, TypeVar
|
from typing import Optional, Generic, Mapping, TypeVar
|
||||||
from pydantic import Field, StrictInt, StrictStr, StrictBytes, BaseModel
|
from pydantic import Field, StrictInt, StrictBytes, BaseModel
|
||||||
|
|
||||||
T = TypeVar("T")
|
T = TypeVar("T")
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ class ApiResponse(BaseModel, Generic[T]):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
status_code: StrictInt = Field(description="HTTP status code")
|
status_code: StrictInt = Field(description="HTTP status code")
|
||||||
headers: Optional[Dict[StrictStr, StrictStr]] = Field(None, description="HTTP headers")
|
headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers")
|
||||||
data: T = Field(description="Deserialized data given the data type")
|
data: T = Field(description="Deserialized data given the data type")
|
||||||
raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
|
raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
""" # noqa: E501
|
""" # noqa: E501
|
||||||
|
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
from typing_extensions import Self
|
from typing_extensions import Self
|
||||||
|
|
||||||
class OpenApiException(Exception):
|
class OpenApiException(Exception):
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictStr
|
from pydantic import BaseModel, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Bird(BaseModel):
|
class Bird(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -50,7 +48,7 @@ class Bird(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Bird from a JSON string"""
|
"""Create an instance of Bird from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,16 +62,18 @@ class Bird(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Bird from a dict"""
|
"""Create an instance of Bird from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictInt, StrictStr
|
from pydantic import BaseModel, StrictInt, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Category(BaseModel):
|
class Category(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -50,7 +48,7 @@ class Category(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Category from a JSON string"""
|
"""Create an instance of Category from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,16 +62,18 @@ class Category(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Category from a dict"""
|
"""Create an instance of Category from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -22,10 +22,8 @@ from datetime import datetime
|
|||||||
from pydantic import Field, StrictStr
|
from pydantic import Field, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from openapi_client.models.query import Query
|
from openapi_client.models.query import Query
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class DataQuery(Query):
|
class DataQuery(Query):
|
||||||
"""
|
"""
|
||||||
@ -53,7 +51,7 @@ class DataQuery(Query):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of DataQuery from a JSON string"""
|
"""Create an instance of DataQuery from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -67,16 +65,18 @@ class DataQuery(Query):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of DataQuery from a dict"""
|
"""Create an instance of DataQuery from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -21,10 +21,8 @@ import json
|
|||||||
from pydantic import BaseModel, StrictInt, StrictStr, field_validator
|
from pydantic import BaseModel, StrictInt, StrictStr, field_validator
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from openapi_client.models.string_enum_ref import StringEnumRef
|
from openapi_client.models.string_enum_ref import StringEnumRef
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class DefaultValue(BaseModel):
|
class DefaultValue(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -68,7 +66,7 @@ class DefaultValue(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of DefaultValue from a JSON string"""
|
"""Create an instance of DefaultValue from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -82,10 +80,12 @@ class DefaultValue(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# set to None if array_string_nullable (nullable) is None
|
# set to None if array_string_nullable (nullable) is None
|
||||||
@ -106,7 +106,7 @@ class DefaultValue(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of DefaultValue from a dict"""
|
"""Create an instance of DefaultValue from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -21,10 +21,8 @@ import json
|
|||||||
from pydantic import BaseModel, Field, StrictFloat, StrictInt
|
from pydantic import BaseModel, Field, StrictFloat, StrictInt
|
||||||
from typing import Any, ClassVar, Dict, List, Optional, Union
|
from typing import Any, ClassVar, Dict, List, Optional, Union
|
||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class NumberPropertiesOnly(BaseModel):
|
class NumberPropertiesOnly(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -52,7 +50,7 @@ class NumberPropertiesOnly(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of NumberPropertiesOnly from a JSON string"""
|
"""Create an instance of NumberPropertiesOnly from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -66,16 +64,18 @@ class NumberPropertiesOnly(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of NumberPropertiesOnly from a dict"""
|
"""Create an instance of NumberPropertiesOnly from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -22,10 +22,8 @@ from pydantic import BaseModel, Field, StrictInt, StrictStr, field_validator
|
|||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from openapi_client.models.category import Category
|
from openapi_client.models.category import Category
|
||||||
from openapi_client.models.tag import Tag
|
from openapi_client.models.tag import Tag
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Pet(BaseModel):
|
class Pet(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -66,7 +64,7 @@ class Pet(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Pet from a JSON string"""
|
"""Create an instance of Pet from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -80,10 +78,12 @@ class Pet(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# override the default output from pydantic by calling `to_dict()` of category
|
# override the default output from pydantic by calling `to_dict()` of category
|
||||||
@ -99,7 +99,7 @@ class Pet(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Pet from a dict"""
|
"""Create an instance of Pet from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
@ -110,9 +110,9 @@ class Pet(BaseModel):
|
|||||||
_obj = cls.model_validate({
|
_obj = cls.model_validate({
|
||||||
"id": obj.get("id"),
|
"id": obj.get("id"),
|
||||||
"name": obj.get("name"),
|
"name": obj.get("name"),
|
||||||
"category": Category.from_dict(obj.get("category")) if obj.get("category") is not None else None,
|
"category": Category.from_dict(obj["category"]) if obj.get("category") is not None else None,
|
||||||
"photoUrls": obj.get("photoUrls"),
|
"photoUrls": obj.get("photoUrls"),
|
||||||
"tags": [Tag.from_dict(_item) for _item in obj.get("tags")] if obj.get("tags") is not None else None,
|
"tags": [Tag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
|
||||||
"status": obj.get("status")
|
"status": obj.get("status")
|
||||||
})
|
})
|
||||||
return _obj
|
return _obj
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field, StrictInt, StrictStr, field_validator
|
from pydantic import BaseModel, Field, StrictInt, StrictStr, field_validator
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Query(BaseModel):
|
class Query(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -61,7 +59,7 @@ class Query(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Query from a JSON string"""
|
"""Create an instance of Query from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -75,16 +73,18 @@ class Query(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Dict) -> Optional[Self]:
|
||||||
"""Create an instance of Query from a dict"""
|
"""Create an instance of Query from a dict"""
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictInt, StrictStr
|
from pydantic import BaseModel, StrictInt, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Tag(BaseModel):
|
class Tag(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -50,7 +48,7 @@ class Tag(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Tag from a JSON string"""
|
"""Create an instance of Tag from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,16 +62,18 @@ class Tag(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Tag from a dict"""
|
"""Create an instance of Tag from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictInt, StrictStr
|
from pydantic import BaseModel, StrictInt, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter(BaseModel):
|
class TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -52,7 +50,7 @@ class TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter(BaseMod
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter from a JSON string"""
|
"""Create an instance of TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -66,16 +64,18 @@ class TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter(BaseMod
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter from a dict"""
|
"""Create an instance of TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictStr
|
from pydantic import BaseModel, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter(BaseModel):
|
class TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter from a JSON string"""
|
"""Create an instance of TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -63,16 +61,18 @@ class TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter from a dict"""
|
"""Create an instance of TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -72,56 +72,45 @@ class RESTClientObject:
|
|||||||
else:
|
else:
|
||||||
cert_reqs = ssl.CERT_NONE
|
cert_reqs = ssl.CERT_NONE
|
||||||
|
|
||||||
addition_pool_args = {}
|
pool_args = {
|
||||||
|
"cert_reqs": cert_reqs,
|
||||||
|
"ca_certs": configuration.ssl_ca_cert,
|
||||||
|
"cert_file": configuration.cert_file,
|
||||||
|
"key_file": configuration.key_file,
|
||||||
|
}
|
||||||
if configuration.assert_hostname is not None:
|
if configuration.assert_hostname is not None:
|
||||||
addition_pool_args['assert_hostname'] = (
|
pool_args['assert_hostname'] = (
|
||||||
configuration.assert_hostname
|
configuration.assert_hostname
|
||||||
)
|
)
|
||||||
|
|
||||||
if configuration.retries is not None:
|
if configuration.retries is not None:
|
||||||
addition_pool_args['retries'] = configuration.retries
|
pool_args['retries'] = configuration.retries
|
||||||
|
|
||||||
if configuration.tls_server_name:
|
if configuration.tls_server_name:
|
||||||
addition_pool_args['server_hostname'] = configuration.tls_server_name
|
pool_args['server_hostname'] = configuration.tls_server_name
|
||||||
|
|
||||||
|
|
||||||
if configuration.socket_options is not None:
|
if configuration.socket_options is not None:
|
||||||
addition_pool_args['socket_options'] = configuration.socket_options
|
pool_args['socket_options'] = configuration.socket_options
|
||||||
|
|
||||||
if configuration.connection_pool_maxsize is not None:
|
if configuration.connection_pool_maxsize is not None:
|
||||||
addition_pool_args['maxsize'] = configuration.connection_pool_maxsize
|
pool_args['maxsize'] = configuration.connection_pool_maxsize
|
||||||
|
|
||||||
# https pool manager
|
# https pool manager
|
||||||
|
self.pool_manager: urllib3.PoolManager
|
||||||
|
|
||||||
if configuration.proxy:
|
if configuration.proxy:
|
||||||
if is_socks_proxy_url(configuration.proxy):
|
if is_socks_proxy_url(configuration.proxy):
|
||||||
from urllib3.contrib.socks import SOCKSProxyManager
|
from urllib3.contrib.socks import SOCKSProxyManager
|
||||||
self.pool_manager = SOCKSProxyManager(
|
pool_args["proxy_url"] = configuration.proxy
|
||||||
cert_reqs=cert_reqs,
|
pool_args["headers"] = configuration.proxy_headers
|
||||||
ca_certs=configuration.ssl_ca_cert,
|
self.pool_manager = SOCKSProxyManager(**pool_args)
|
||||||
cert_file=configuration.cert_file,
|
|
||||||
key_file=configuration.key_file,
|
|
||||||
proxy_url=configuration.proxy,
|
|
||||||
headers=configuration.proxy_headers,
|
|
||||||
**addition_pool_args
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
self.pool_manager = urllib3.ProxyManager(
|
pool_args["proxy_url"] = configuration.proxy
|
||||||
cert_reqs=cert_reqs,
|
pool_args["proxy_headers"] = configuration.proxy_headers
|
||||||
ca_certs=configuration.ssl_ca_cert,
|
self.pool_manager = urllib3.ProxyManager(**pool_args)
|
||||||
cert_file=configuration.cert_file,
|
|
||||||
key_file=configuration.key_file,
|
|
||||||
proxy_url=configuration.proxy,
|
|
||||||
proxy_headers=configuration.proxy_headers,
|
|
||||||
**addition_pool_args
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
self.pool_manager = urllib3.PoolManager(
|
self.pool_manager = urllib3.PoolManager(**pool_args)
|
||||||
cert_reqs=cert_reqs,
|
|
||||||
ca_certs=configuration.ssl_ca_cert,
|
|
||||||
cert_file=configuration.cert_file,
|
|
||||||
key_file=configuration.key_file,
|
|
||||||
**addition_pool_args
|
|
||||||
)
|
|
||||||
|
|
||||||
def request(
|
def request(
|
||||||
self,
|
self,
|
||||||
|
614
samples/client/echo_api/python/poetry.lock
generated
Normal file
614
samples/client/echo_api/python/poetry.lock
generated
Normal file
@ -0,0 +1,614 @@
|
|||||||
|
# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand.
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "annotated-types"
|
||||||
|
version = "0.5.0"
|
||||||
|
description = "Reusable constraint types to use with typing.Annotated"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "annotated_types-0.5.0-py3-none-any.whl", hash = "sha256:58da39888f92c276ad970249761ebea80ba544b77acddaa1a4d6cf78287d45fd"},
|
||||||
|
{file = "annotated_types-0.5.0.tar.gz", hash = "sha256:47cdc3490d9ac1506ce92c7aaa76c579dc3509ff11e098fc867e5130ab7be802"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""}
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "colorama"
|
||||||
|
version = "0.4.6"
|
||||||
|
description = "Cross-platform colored terminal text."
|
||||||
|
optional = false
|
||||||
|
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
||||||
|
files = [
|
||||||
|
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
|
||||||
|
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "distlib"
|
||||||
|
version = "0.3.8"
|
||||||
|
description = "Distribution utilities"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"},
|
||||||
|
{file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "exceptiongroup"
|
||||||
|
version = "1.2.0"
|
||||||
|
description = "Backport of PEP 654 (exception groups)"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
|
||||||
|
{file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
test = ["pytest (>=6)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "filelock"
|
||||||
|
version = "3.12.2"
|
||||||
|
description = "A platform independent file lock."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"},
|
||||||
|
{file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"]
|
||||||
|
testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "flake8"
|
||||||
|
version = "5.0.4"
|
||||||
|
description = "the modular source code checker: pep8 pyflakes and co"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6.1"
|
||||||
|
files = [
|
||||||
|
{file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"},
|
||||||
|
{file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
importlib-metadata = {version = ">=1.1.0,<4.3", markers = "python_version < \"3.8\""}
|
||||||
|
mccabe = ">=0.7.0,<0.8.0"
|
||||||
|
pycodestyle = ">=2.9.0,<2.10.0"
|
||||||
|
pyflakes = ">=2.5.0,<2.6.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "importlib-metadata"
|
||||||
|
version = "4.2.0"
|
||||||
|
description = "Read metadata from Python packages"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "importlib_metadata-4.2.0-py3-none-any.whl", hash = "sha256:057e92c15bc8d9e8109738a48db0ccb31b4d9d5cfbee5a8670879a30be66304b"},
|
||||||
|
{file = "importlib_metadata-4.2.0.tar.gz", hash = "sha256:b7e52a1f8dec14a75ea73e0891f3060099ca1d8e6a462a4dff11c3e119ea1b31"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
|
||||||
|
zipp = ">=0.5"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"]
|
||||||
|
testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", "pyfakefs", "pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "iniconfig"
|
||||||
|
version = "2.0.0"
|
||||||
|
description = "brain-dead simple config-ini parsing"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
|
||||||
|
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mccabe"
|
||||||
|
version = "0.7.0"
|
||||||
|
description = "McCabe checker, plugin for flake8"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"},
|
||||||
|
{file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mypy"
|
||||||
|
version = "1.4.1"
|
||||||
|
description = "Optional static typing for Python"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "mypy-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8"},
|
||||||
|
{file = "mypy-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878"},
|
||||||
|
{file = "mypy-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd"},
|
||||||
|
{file = "mypy-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc"},
|
||||||
|
{file = "mypy-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1"},
|
||||||
|
{file = "mypy-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462"},
|
||||||
|
{file = "mypy-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258"},
|
||||||
|
{file = "mypy-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2"},
|
||||||
|
{file = "mypy-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7"},
|
||||||
|
{file = "mypy-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01"},
|
||||||
|
{file = "mypy-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b"},
|
||||||
|
{file = "mypy-1.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b"},
|
||||||
|
{file = "mypy-1.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7"},
|
||||||
|
{file = "mypy-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9"},
|
||||||
|
{file = "mypy-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042"},
|
||||||
|
{file = "mypy-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3"},
|
||||||
|
{file = "mypy-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6"},
|
||||||
|
{file = "mypy-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f"},
|
||||||
|
{file = "mypy-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc"},
|
||||||
|
{file = "mypy-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828"},
|
||||||
|
{file = "mypy-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3"},
|
||||||
|
{file = "mypy-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816"},
|
||||||
|
{file = "mypy-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c"},
|
||||||
|
{file = "mypy-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f"},
|
||||||
|
{file = "mypy-1.4.1-py3-none-any.whl", hash = "sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4"},
|
||||||
|
{file = "mypy-1.4.1.tar.gz", hash = "sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
mypy-extensions = ">=1.0.0"
|
||||||
|
tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
|
||||||
|
typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""}
|
||||||
|
typing-extensions = ">=4.1.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dmypy = ["psutil (>=4.0)"]
|
||||||
|
install-types = ["pip"]
|
||||||
|
python2 = ["typed-ast (>=1.4.0,<2)"]
|
||||||
|
reports = ["lxml"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mypy-extensions"
|
||||||
|
version = "1.0.0"
|
||||||
|
description = "Type system extensions for programs checked with the mypy type checker."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
files = [
|
||||||
|
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
|
||||||
|
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "packaging"
|
||||||
|
version = "23.2"
|
||||||
|
description = "Core utilities for Python packages"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"},
|
||||||
|
{file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "platformdirs"
|
||||||
|
version = "2.6.2"
|
||||||
|
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "platformdirs-2.6.2-py3-none-any.whl", hash = "sha256:83c8f6d04389165de7c9b6f0c682439697887bca0aa2f1c87ef1826be3584490"},
|
||||||
|
{file = "platformdirs-2.6.2.tar.gz", hash = "sha256:e1fea1fe471b9ff8332e229df3cb7de4f53eeea4998d3b6bfff542115e998bd2"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
typing-extensions = {version = ">=4.4", markers = "python_version < \"3.8\""}
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.5)"]
|
||||||
|
test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pluggy"
|
||||||
|
version = "1.2.0"
|
||||||
|
description = "plugin and hook calling mechanisms for python"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"},
|
||||||
|
{file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dev = ["pre-commit", "tox"]
|
||||||
|
testing = ["pytest", "pytest-benchmark"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "py"
|
||||||
|
version = "1.11.0"
|
||||||
|
description = "library with cross-python path, ini-parsing, io, code, log facilities"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
files = [
|
||||||
|
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
|
||||||
|
{file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pycodestyle"
|
||||||
|
version = "2.9.1"
|
||||||
|
description = "Python style guide checker"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"},
|
||||||
|
{file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pydantic"
|
||||||
|
version = "2.5.3"
|
||||||
|
description = "Data validation using Python type hints"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "pydantic-2.5.3-py3-none-any.whl", hash = "sha256:d0caf5954bee831b6bfe7e338c32b9e30c85dfe080c843680783ac2b631673b4"},
|
||||||
|
{file = "pydantic-2.5.3.tar.gz", hash = "sha256:b3ef57c62535b0941697cce638c08900d87fcb67e29cfa99e8a68f747f393f7a"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
annotated-types = ">=0.4.0"
|
||||||
|
importlib-metadata = {version = "*", markers = "python_version == \"3.7\""}
|
||||||
|
pydantic-core = "2.14.6"
|
||||||
|
typing-extensions = ">=4.6.1"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
email = ["email-validator (>=2.0.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pydantic-core"
|
||||||
|
version = "2.14.6"
|
||||||
|
description = ""
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:72f9a942d739f09cd42fffe5dc759928217649f070056f03c70df14f5770acf9"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6a31d98c0d69776c2576dda4b77b8e0c69ad08e8b539c25c7d0ca0dc19a50d6c"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5aa90562bc079c6c290f0512b21768967f9968e4cfea84ea4ff5af5d917016e4"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:370ffecb5316ed23b667d99ce4debe53ea664b99cc37bfa2af47bc769056d534"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f85f3843bdb1fe80e8c206fe6eed7a1caeae897e496542cee499c374a85c6e08"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9862bf828112e19685b76ca499b379338fd4c5c269d897e218b2ae8fcb80139d"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:036137b5ad0cb0004c75b579445a1efccd072387a36c7f217bb8efd1afbe5245"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92879bce89f91f4b2416eba4429c7b5ca22c45ef4a499c39f0c5c69257522c7c"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0c08de15d50fa190d577e8591f0329a643eeaed696d7771760295998aca6bc66"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:36099c69f6b14fc2c49d7996cbf4f87ec4f0e66d1c74aa05228583225a07b590"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-none-win32.whl", hash = "sha256:7be719e4d2ae6c314f72844ba9d69e38dff342bc360379f7c8537c48e23034b7"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp310-none-win_amd64.whl", hash = "sha256:36fa402dcdc8ea7f1b0ddcf0df4254cc6b2e08f8cd80e7010d4c4ae6e86b2a87"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dea7fcd62915fb150cdc373212141a30037e11b761fbced340e9db3379b892d4"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffff855100bc066ff2cd3aa4a60bc9534661816b110f0243e59503ec2df38421"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b027c86c66b8627eb90e57aee1f526df77dc6d8b354ec498be9a757d513b92b"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:00b1087dabcee0b0ffd104f9f53d7d3eaddfaa314cdd6726143af6bc713aa27e"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75ec284328b60a4e91010c1acade0c30584f28a1f345bc8f72fe8b9e46ec6a96"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7e1f4744eea1501404b20b0ac059ff7e3f96a97d3e3f48ce27a139e053bb370b"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2602177668f89b38b9f84b7b3435d0a72511ddef45dc14446811759b82235a1"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6c8edaea3089bf908dd27da8f5d9e395c5b4dc092dbcce9b65e7156099b4b937"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:478e9e7b360dfec451daafe286998d4a1eeaecf6d69c427b834ae771cad4b622"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b6ca36c12a5120bad343eef193cc0122928c5c7466121da7c20f41160ba00ba2"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-none-win32.whl", hash = "sha256:2b8719037e570639e6b665a4050add43134d80b687288ba3ade18b22bbb29dd2"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-none-win_amd64.whl", hash = "sha256:78ee52ecc088c61cce32b2d30a826f929e1708f7b9247dc3b921aec367dc1b23"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp311-none-win_arm64.whl", hash = "sha256:a19b794f8fe6569472ff77602437ec4430f9b2b9ec7a1105cfd2232f9ba355e6"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:667aa2eac9cd0700af1ddb38b7b1ef246d8cf94c85637cbb03d7757ca4c3fdec"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cdee837710ef6b56ebd20245b83799fce40b265b3b406e51e8ccc5b85b9099b7"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c5bcf3414367e29f83fd66f7de64509a8fd2368b1edf4351e862910727d3e51"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:26a92ae76f75d1915806b77cf459811e772d8f71fd1e4339c99750f0e7f6324f"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a983cca5ed1dd9a35e9e42ebf9f278d344603bfcb174ff99a5815f953925140a"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cb92f9061657287eded380d7dc455bbf115430b3aa4741bdc662d02977e7d0af"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4ace1e220b078c8e48e82c081e35002038657e4b37d403ce940fa679e57113b"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ef633add81832f4b56d3b4c9408b43d530dfca29e68fb1b797dcb861a2c734cd"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7e90d6cc4aad2cc1f5e16ed56e46cebf4877c62403a311af20459c15da76fd91"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e8a5ac97ea521d7bde7621d86c30e86b798cdecd985723c4ed737a2aa9e77d0c"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-none-win32.whl", hash = "sha256:f27207e8ca3e5e021e2402ba942e5b4c629718e665c81b8b306f3c8b1ddbb786"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-none-win_amd64.whl", hash = "sha256:b3e5fe4538001bb82e2295b8d2a39356a84694c97cb73a566dc36328b9f83b40"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp312-none-win_arm64.whl", hash = "sha256:64634ccf9d671c6be242a664a33c4acf12882670b09b3f163cd00a24cffbd74e"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:24368e31be2c88bd69340fbfe741b405302993242ccb476c5c3ff48aeee1afe0"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:e33b0834f1cf779aa839975f9d8755a7c2420510c0fa1e9fa0497de77cd35d2c"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6af4b3f52cc65f8a0bc8b1cd9676f8c21ef3e9132f21fed250f6958bd7223bed"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d15687d7d7f40333bd8266f3814c591c2e2cd263fa2116e314f60d82086e353a"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:095b707bb287bfd534044166ab767bec70a9bba3175dcdc3371782175c14e43c"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94fc0e6621e07d1e91c44e016cc0b189b48db053061cc22d6298a611de8071bb"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ce830e480f6774608dedfd4a90c42aac4a7af0a711f1b52f807130c2e434c06"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a306cdd2ad3a7d795d8e617a58c3a2ed0f76c8496fb7621b6cd514eb1532cae8"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:2f5fa187bde8524b1e37ba894db13aadd64faa884657473b03a019f625cee9a8"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:438027a975cc213a47c5d70672e0d29776082155cfae540c4e225716586be75e"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-none-win32.whl", hash = "sha256:f96ae96a060a8072ceff4cfde89d261837b4294a4f28b84a28765470d502ccc6"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp37-none-win_amd64.whl", hash = "sha256:e646c0e282e960345314f42f2cea5e0b5f56938c093541ea6dbf11aec2862391"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:db453f2da3f59a348f514cfbfeb042393b68720787bbef2b4c6068ea362c8149"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3860c62057acd95cc84044e758e47b18dcd8871a328ebc8ccdefd18b0d26a21b"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36026d8f99c58d7044413e1b819a67ca0e0b8ebe0f25e775e6c3d1fabb3c38fb"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8ed1af8692bd8d2a29d702f1a2e6065416d76897d726e45a1775b1444f5928a7"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:314ccc4264ce7d854941231cf71b592e30d8d368a71e50197c905874feacc8a8"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:982487f8931067a32e72d40ab6b47b1628a9c5d344be7f1a4e668fb462d2da42"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dbe357bc4ddda078f79d2a36fc1dd0494a7f2fad83a0a684465b6f24b46fe80"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2f6ffc6701a0eb28648c845f4945a194dc7ab3c651f535b81793251e1185ac3d"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7f5025db12fc6de7bc1104d826d5aee1d172f9ba6ca936bf6474c2148ac336c1"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dab03ed811ed1c71d700ed08bde8431cf429bbe59e423394f0f4055f1ca0ea60"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-none-win32.whl", hash = "sha256:dfcbebdb3c4b6f739a91769aea5ed615023f3c88cb70df812849aef634c25fbe"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp38-none-win_amd64.whl", hash = "sha256:99b14dbea2fdb563d8b5a57c9badfcd72083f6006caf8e126b491519c7d64ca8"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:4ce8299b481bcb68e5c82002b96e411796b844d72b3e92a3fbedfe8e19813eab"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b9a9d92f10772d2a181b5ca339dee066ab7d1c9a34ae2421b2a52556e719756f"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd9e98b408384989ea4ab60206b8e100d8687da18b5c813c11e92fd8212a98e0"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4f86f1f318e56f5cbb282fe61eb84767aee743ebe32c7c0834690ebea50c0a6b"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86ce5fcfc3accf3a07a729779d0b86c5d0309a4764c897d86c11089be61da160"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dcf1978be02153c6a31692d4fbcc2a3f1db9da36039ead23173bc256ee3b91b"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eedf97be7bc3dbc8addcef4142f4b4164066df0c6f36397ae4aaed3eb187d8ab"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d5f916acf8afbcab6bacbb376ba7dc61f845367901ecd5e328fc4d4aef2fcab0"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8a14c192c1d724c3acbfb3f10a958c55a2638391319ce8078cb36c02283959b9"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0348b1dc6b76041516e8a854ff95b21c55f5a411c3297d2ca52f5528e49d8411"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-none-win32.whl", hash = "sha256:de2a0645a923ba57c5527497daf8ec5df69c6eadf869e9cd46e86349146e5975"},
|
||||||
|
{file = "pydantic_core-2.14.6-cp39-none-win_amd64.whl", hash = "sha256:aca48506a9c20f68ee61c87f2008f81f8ee99f8d7f0104bff3c47e2d148f89d9"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d5c28525c19f5bb1e09511669bb57353d22b94cf8b65f3a8d141c389a55dec95"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:78d0768ee59baa3de0f4adac9e3748b4b1fffc52143caebddfd5ea2961595277"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b93785eadaef932e4fe9c6e12ba67beb1b3f1e5495631419c784ab87e975670"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a874f21f87c485310944b2b2734cd6d318765bcbb7515eead33af9641816506e"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89f4477d915ea43b4ceea6756f63f0288941b6443a2b28c69004fe07fde0d0d"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:172de779e2a153d36ee690dbc49c6db568d7b33b18dc56b69a7514aecbcf380d"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dfcebb950aa7e667ec226a442722134539e77c575f6cfaa423f24371bb8d2e94"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:55a23dcd98c858c0db44fc5c04fc7ed81c4b4d33c653a7c45ddaebf6563a2f66"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4241204e4b36ab5ae466ecec5c4c16527a054c69f99bba20f6f75232a6a534e2"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e574de99d735b3fc8364cba9912c2bec2da78775eba95cbb225ef7dda6acea24"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1302a54f87b5cd8528e4d6d1bf2133b6aa7c6122ff8e9dc5220fbc1e07bffebd"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8e81e4b55930e5ffab4a68db1af431629cf2e4066dbdbfef65348b8ab804ea8"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c99462ffc538717b3e60151dfaf91125f637e801f5ab008f81c402f1dff0cd0f"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e4cf2d5829f6963a5483ec01578ee76d329eb5caf330ecd05b3edd697e7d768a"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:cf10b7d58ae4a1f07fccbf4a0a956d705356fea05fb4c70608bb6fa81d103cda"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:399ac0891c284fa8eb998bcfa323f2234858f5d2efca3950ae58c8f88830f145"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c6a5c79b28003543db3ba67d1df336f253a87d3112dac3a51b94f7d48e4c0e1"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:599c87d79cab2a6a2a9df4aefe0455e61e7d2aeede2f8577c1b7c0aec643ee8e"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43e166ad47ba900f2542a80d83f9fc65fe99eb63ceec4debec160ae729824052"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3a0b5db001b98e1c649dd55afa928e75aa4087e587b9524a4992316fa23c9fba"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:747265448cb57a9f37572a488a57d873fd96bf51e5bb7edb52cfb37124516da4"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:7ebe3416785f65c28f4f9441e916bfc8a54179c8dea73c23023f7086fa601c5d"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:86c963186ca5e50d5c8287b1d1c9d3f8f024cbe343d048c5bd282aec2d8641f2"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e0641b506486f0b4cd1500a2a65740243e8670a2549bb02bc4556a83af84ae03"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71d72ca5eaaa8d38c8df16b7deb1a2da4f650c41b58bb142f3fb75d5ad4a611f"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27e524624eace5c59af499cd97dc18bb201dc6a7a2da24bfc66ef151c69a5f2a"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3dde6cac75e0b0902778978d3b1646ca9f438654395a362cb21d9ad34b24acf"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:00646784f6cd993b1e1c0e7b0fdcbccc375d539db95555477771c27555e3c556"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:23598acb8ccaa3d1d875ef3b35cb6376535095e9405d91a3d57a8c7db5d29341"},
|
||||||
|
{file = "pydantic_core-2.14.6-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7f41533d7e3cf9520065f610b41ac1c76bc2161415955fbcead4981b22c7611e"},
|
||||||
|
{file = "pydantic_core-2.14.6.tar.gz", hash = "sha256:1fd0c1d395372843fba13a51c28e3bb9d59bd7aebfeb17358ffaaa1e4dbbe948"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pyflakes"
|
||||||
|
version = "2.5.0"
|
||||||
|
description = "passive checker of Python programs"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"},
|
||||||
|
{file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pytest"
|
||||||
|
version = "7.4.4"
|
||||||
|
description = "pytest: simple powerful testing with Python"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"},
|
||||||
|
{file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
||||||
|
exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
|
||||||
|
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
|
||||||
|
iniconfig = "*"
|
||||||
|
packaging = "*"
|
||||||
|
pluggy = ">=0.12,<2.0"
|
||||||
|
tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""}
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "python-dateutil"
|
||||||
|
version = "2.8.2"
|
||||||
|
description = "Extensions to the standard Python datetime module"
|
||||||
|
optional = false
|
||||||
|
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
||||||
|
files = [
|
||||||
|
{file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
|
||||||
|
{file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
six = ">=1.5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "six"
|
||||||
|
version = "1.16.0"
|
||||||
|
description = "Python 2 and 3 compatibility utilities"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
|
files = [
|
||||||
|
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
||||||
|
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tomli"
|
||||||
|
version = "2.0.1"
|
||||||
|
description = "A lil' TOML parser"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
||||||
|
{file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tox"
|
||||||
|
version = "3.28.0"
|
||||||
|
description = "tox is a generic virtualenv management and test command line tool"
|
||||||
|
optional = false
|
||||||
|
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
|
||||||
|
files = [
|
||||||
|
{file = "tox-3.28.0-py2.py3-none-any.whl", hash = "sha256:57b5ab7e8bb3074edc3c0c0b4b192a4f3799d3723b2c5b76f1fa9f2d40316eea"},
|
||||||
|
{file = "tox-3.28.0.tar.gz", hash = "sha256:d0d28f3fe6d6d7195c27f8b054c3e99d5451952b54abdae673b71609a581f640"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""}
|
||||||
|
filelock = ">=3.0.0"
|
||||||
|
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
|
||||||
|
packaging = ">=14"
|
||||||
|
pluggy = ">=0.12.0"
|
||||||
|
py = ">=1.4.17"
|
||||||
|
six = ">=1.14.0"
|
||||||
|
tomli = {version = ">=2.0.1", markers = "python_version >= \"3.7\" and python_version < \"3.11\""}
|
||||||
|
virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"]
|
||||||
|
testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "typed-ast"
|
||||||
|
version = "1.5.5"
|
||||||
|
description = "a fork of Python 2 and 3 ast modules with type comment support"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"},
|
||||||
|
{file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"},
|
||||||
|
{file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769"},
|
||||||
|
{file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04"},
|
||||||
|
{file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d"},
|
||||||
|
{file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d"},
|
||||||
|
{file = "typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02"},
|
||||||
|
{file = "typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee"},
|
||||||
|
{file = "typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18"},
|
||||||
|
{file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88"},
|
||||||
|
{file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2"},
|
||||||
|
{file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9"},
|
||||||
|
{file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8"},
|
||||||
|
{file = "typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b"},
|
||||||
|
{file = "typed_ast-1.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5"},
|
||||||
|
{file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c"},
|
||||||
|
{file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa"},
|
||||||
|
{file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f"},
|
||||||
|
{file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d"},
|
||||||
|
{file = "typed_ast-1.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5"},
|
||||||
|
{file = "typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e"},
|
||||||
|
{file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e"},
|
||||||
|
{file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311"},
|
||||||
|
{file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2"},
|
||||||
|
{file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4"},
|
||||||
|
{file = "typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431"},
|
||||||
|
{file = "typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a"},
|
||||||
|
{file = "typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437"},
|
||||||
|
{file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede"},
|
||||||
|
{file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4"},
|
||||||
|
{file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6"},
|
||||||
|
{file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4"},
|
||||||
|
{file = "typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b"},
|
||||||
|
{file = "typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10"},
|
||||||
|
{file = "typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814"},
|
||||||
|
{file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8"},
|
||||||
|
{file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274"},
|
||||||
|
{file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a"},
|
||||||
|
{file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba"},
|
||||||
|
{file = "typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155"},
|
||||||
|
{file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "types-python-dateutil"
|
||||||
|
version = "2.8.19.14"
|
||||||
|
description = "Typing stubs for python-dateutil"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "types-python-dateutil-2.8.19.14.tar.gz", hash = "sha256:1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b"},
|
||||||
|
{file = "types_python_dateutil-2.8.19.14-py3-none-any.whl", hash = "sha256:f977b8de27787639986b4e28963263fd0e5158942b3ecef91b9335c130cb1ce9"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "typing-extensions"
|
||||||
|
version = "4.7.1"
|
||||||
|
description = "Backported and Experimental Type Hints for Python 3.7+"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"},
|
||||||
|
{file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "urllib3"
|
||||||
|
version = "2.0.7"
|
||||||
|
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"},
|
||||||
|
{file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
|
||||||
|
secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"]
|
||||||
|
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
|
||||||
|
zstd = ["zstandard (>=0.18.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "virtualenv"
|
||||||
|
version = "20.16.2"
|
||||||
|
description = "Virtual Python Environment builder"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "virtualenv-20.16.2-py2.py3-none-any.whl", hash = "sha256:635b272a8e2f77cb051946f46c60a54ace3cb5e25568228bd6b57fc70eca9ff3"},
|
||||||
|
{file = "virtualenv-20.16.2.tar.gz", hash = "sha256:0ef5be6d07181946891f5abc8047fda8bc2f0b4b9bf222c64e6e8963baee76db"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
distlib = ">=0.3.1,<1"
|
||||||
|
filelock = ">=3.2,<4"
|
||||||
|
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
|
||||||
|
platformdirs = ">=2,<3"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"]
|
||||||
|
testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "packaging (>=20.0)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zipp"
|
||||||
|
version = "3.15.0"
|
||||||
|
description = "Backport of pathlib-compatible object wrapper for zip files"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"},
|
||||||
|
{file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
||||||
|
testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"]
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
lock-version = "2.0"
|
||||||
|
python-versions = "^3.7"
|
||||||
|
content-hash = "e3db4fda1f09507e7001e5eccf6e0827b049b9384dba0fe21c7e1ff0a118503d"
|
@ -21,6 +21,9 @@ typing-extensions = ">=4.7.1"
|
|||||||
pytest = ">=7.2.1"
|
pytest = ">=7.2.1"
|
||||||
tox = ">=3.9.0"
|
tox = ">=3.9.0"
|
||||||
flake8 = ">=4.0.0"
|
flake8 = ">=4.0.0"
|
||||||
|
types-python-dateutil = ">=2.8.19.14"
|
||||||
|
mypy = "1.4.1"
|
||||||
|
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["setuptools"]
|
requires = ["setuptools"]
|
||||||
@ -28,3 +31,10 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[tool.pylint.'MESSAGES CONTROL']
|
[tool.pylint.'MESSAGES CONTROL']
|
||||||
extension-pkg-whitelist = "pydantic"
|
extension-pkg-whitelist = "pydantic"
|
||||||
|
|
||||||
|
[tool.mypy]
|
||||||
|
files = [
|
||||||
|
"openapi_client",
|
||||||
|
#"test", # auto-generated tests
|
||||||
|
"tests", # hand-written tests
|
||||||
|
]
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
pytest~=7.1.3
|
pytest~=7.1.3
|
||||||
pytest-cov>=2.8.1
|
pytest-cov>=2.8.1
|
||||||
pytest-randomly>=3.12.0
|
pytest-randomly>=3.12.0
|
||||||
|
mypy>=1.4.1
|
||||||
|
types-python-dateutil>=2.8.19
|
||||||
|
0
samples/client/echo_api/python/tests/__init__.py
Normal file
0
samples/client/echo_api/python/tests/__init__.py
Normal file
@ -12,7 +12,6 @@ docs/Animal.md
|
|||||||
docs/AnotherFakeApi.md
|
docs/AnotherFakeApi.md
|
||||||
docs/AnyOfColor.md
|
docs/AnyOfColor.md
|
||||||
docs/AnyOfPig.md
|
docs/AnyOfPig.md
|
||||||
docs/ApiResponse.md
|
|
||||||
docs/ArrayOfArrayOfModel.md
|
docs/ArrayOfArrayOfModel.md
|
||||||
docs/ArrayOfArrayOfNumberOnly.md
|
docs/ArrayOfArrayOfNumberOnly.md
|
||||||
docs/ArrayOfNumberOnly.md
|
docs/ArrayOfNumberOnly.md
|
||||||
@ -54,6 +53,7 @@ docs/MapOfArrayOfModel.md
|
|||||||
docs/MapTest.md
|
docs/MapTest.md
|
||||||
docs/MixedPropertiesAndAdditionalPropertiesClass.md
|
docs/MixedPropertiesAndAdditionalPropertiesClass.md
|
||||||
docs/Model200Response.md
|
docs/Model200Response.md
|
||||||
|
docs/ModelApiResponse.md
|
||||||
docs/ModelReturn.md
|
docs/ModelReturn.md
|
||||||
docs/Name.md
|
docs/Name.md
|
||||||
docs/NullableClass.md
|
docs/NullableClass.md
|
||||||
@ -116,7 +116,6 @@ petstore_api/models/all_of_with_single_ref.py
|
|||||||
petstore_api/models/animal.py
|
petstore_api/models/animal.py
|
||||||
petstore_api/models/any_of_color.py
|
petstore_api/models/any_of_color.py
|
||||||
petstore_api/models/any_of_pig.py
|
petstore_api/models/any_of_pig.py
|
||||||
petstore_api/models/api_response.py
|
|
||||||
petstore_api/models/array_of_array_of_model.py
|
petstore_api/models/array_of_array_of_model.py
|
||||||
petstore_api/models/array_of_array_of_number_only.py
|
petstore_api/models/array_of_array_of_number_only.py
|
||||||
petstore_api/models/array_of_number_only.py
|
petstore_api/models/array_of_number_only.py
|
||||||
@ -155,6 +154,7 @@ petstore_api/models/map_of_array_of_model.py
|
|||||||
petstore_api/models/map_test.py
|
petstore_api/models/map_test.py
|
||||||
petstore_api/models/mixed_properties_and_additional_properties_class.py
|
petstore_api/models/mixed_properties_and_additional_properties_class.py
|
||||||
petstore_api/models/model200_response.py
|
petstore_api/models/model200_response.py
|
||||||
|
petstore_api/models/model_api_response.py
|
||||||
petstore_api/models/model_return.py
|
petstore_api/models/model_return.py
|
||||||
petstore_api/models/name.py
|
petstore_api/models/name.py
|
||||||
petstore_api/models/nullable_class.py
|
petstore_api/models/nullable_class.py
|
||||||
|
@ -146,7 +146,6 @@ Class | Method | HTTP request | Description
|
|||||||
- [Animal](docs/Animal.md)
|
- [Animal](docs/Animal.md)
|
||||||
- [AnyOfColor](docs/AnyOfColor.md)
|
- [AnyOfColor](docs/AnyOfColor.md)
|
||||||
- [AnyOfPig](docs/AnyOfPig.md)
|
- [AnyOfPig](docs/AnyOfPig.md)
|
||||||
- [ApiResponse](docs/ApiResponse.md)
|
|
||||||
- [ArrayOfArrayOfModel](docs/ArrayOfArrayOfModel.md)
|
- [ArrayOfArrayOfModel](docs/ArrayOfArrayOfModel.md)
|
||||||
- [ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
|
- [ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
|
||||||
- [ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
|
- [ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
|
||||||
@ -185,6 +184,7 @@ Class | Method | HTTP request | Description
|
|||||||
- [MapTest](docs/MapTest.md)
|
- [MapTest](docs/MapTest.md)
|
||||||
- [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
|
- [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
|
||||||
- [Model200Response](docs/Model200Response.md)
|
- [Model200Response](docs/Model200Response.md)
|
||||||
|
- [ModelApiResponse](docs/ModelApiResponse.md)
|
||||||
- [ModelReturn](docs/ModelReturn.md)
|
- [ModelReturn](docs/ModelReturn.md)
|
||||||
- [Name](docs/Name.md)
|
- [Name](docs/Name.md)
|
||||||
- [NullableClass](docs/NullableClass.md)
|
- [NullableClass](docs/NullableClass.md)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ApiResponse
|
# ModelApiResponse
|
||||||
|
|
||||||
|
|
||||||
## Properties
|
## Properties
|
||||||
@ -12,19 +12,19 @@ Name | Type | Description | Notes
|
|||||||
## Example
|
## Example
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from petstore_api.models.api_response import ApiResponse
|
from petstore_api.models.model_api_response import ModelApiResponse
|
||||||
|
|
||||||
# TODO update the JSON string below
|
# TODO update the JSON string below
|
||||||
json = "{}"
|
json = "{}"
|
||||||
# create an instance of ApiResponse from a JSON string
|
# create an instance of ModelApiResponse from a JSON string
|
||||||
api_response_instance = ApiResponse.from_json(json)
|
model_api_response_instance = ModelApiResponse.from_json(json)
|
||||||
# print the JSON string representation of the object
|
# print the JSON string representation of the object
|
||||||
print ApiResponse.to_json()
|
print ModelApiResponse.to_json()
|
||||||
|
|
||||||
# convert the object into a dict
|
# convert the object into a dict
|
||||||
api_response_dict = api_response_instance.to_dict()
|
model_api_response_dict = model_api_response_instance.to_dict()
|
||||||
# create an instance of ApiResponse from a dict
|
# create an instance of ModelApiResponse from a dict
|
||||||
api_response_form_dict = api_response.from_dict(api_response_dict)
|
model_api_response_form_dict = model_api_response.from_dict(model_api_response_dict)
|
||||||
```
|
```
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
@ -803,7 +803,7 @@ void (empty response body)
|
|||||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||||
|
|
||||||
# **upload_file**
|
# **upload_file**
|
||||||
> ApiResponse upload_file(pet_id, additional_metadata=additional_metadata, file=file)
|
> ModelApiResponse upload_file(pet_id, additional_metadata=additional_metadata, file=file)
|
||||||
|
|
||||||
uploads an image
|
uploads an image
|
||||||
|
|
||||||
@ -815,7 +815,7 @@ uploads an image
|
|||||||
|
|
||||||
```python
|
```python
|
||||||
import petstore_api
|
import petstore_api
|
||||||
from petstore_api.models.api_response import ApiResponse
|
from petstore_api.models.model_api_response import ModelApiResponse
|
||||||
from petstore_api.rest import ApiException
|
from petstore_api.rest import ApiException
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
@ -862,7 +862,7 @@ Name | Type | Description | Notes
|
|||||||
|
|
||||||
### Return type
|
### Return type
|
||||||
|
|
||||||
[**ApiResponse**](ApiResponse.md)
|
[**ModelApiResponse**](ModelApiResponse.md)
|
||||||
|
|
||||||
### Authorization
|
### Authorization
|
||||||
|
|
||||||
@ -882,7 +882,7 @@ Name | Type | Description | Notes
|
|||||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||||
|
|
||||||
# **upload_file_with_required_file**
|
# **upload_file_with_required_file**
|
||||||
> ApiResponse upload_file_with_required_file(pet_id, required_file, additional_metadata=additional_metadata)
|
> ModelApiResponse upload_file_with_required_file(pet_id, required_file, additional_metadata=additional_metadata)
|
||||||
|
|
||||||
uploads an image (required)
|
uploads an image (required)
|
||||||
|
|
||||||
@ -894,7 +894,7 @@ uploads an image (required)
|
|||||||
|
|
||||||
```python
|
```python
|
||||||
import petstore_api
|
import petstore_api
|
||||||
from petstore_api.models.api_response import ApiResponse
|
from petstore_api.models.model_api_response import ModelApiResponse
|
||||||
from petstore_api.rest import ApiException
|
from petstore_api.rest import ApiException
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
@ -941,7 +941,7 @@ Name | Type | Description | Notes
|
|||||||
|
|
||||||
### Return type
|
### Return type
|
||||||
|
|
||||||
[**ApiResponse**](ApiResponse.md)
|
[**ModelApiResponse**](ModelApiResponse.md)
|
||||||
|
|
||||||
### Authorization
|
### Authorization
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
Name | Type | Description | Notes
|
Name | Type | Description | Notes
|
||||||
------------ | ------------- | ------------- | -------------
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**underscore_type** | **str** | | [optional]
|
||||||
**type** | **str** | | [optional]
|
**type** | **str** | | [optional]
|
||||||
**type** | **str** | | [optional]
|
**type_with_underscore** | **str** | | [optional]
|
||||||
**type_** | **str** | | [optional]
|
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
|
@ -46,7 +46,6 @@ from petstore_api.models.all_of_with_single_ref import AllOfWithSingleRef
|
|||||||
from petstore_api.models.animal import Animal
|
from petstore_api.models.animal import Animal
|
||||||
from petstore_api.models.any_of_color import AnyOfColor
|
from petstore_api.models.any_of_color import AnyOfColor
|
||||||
from petstore_api.models.any_of_pig import AnyOfPig
|
from petstore_api.models.any_of_pig import AnyOfPig
|
||||||
from petstore_api.models.api_response import ApiResponse
|
|
||||||
from petstore_api.models.array_of_array_of_model import ArrayOfArrayOfModel
|
from petstore_api.models.array_of_array_of_model import ArrayOfArrayOfModel
|
||||||
from petstore_api.models.array_of_array_of_number_only import ArrayOfArrayOfNumberOnly
|
from petstore_api.models.array_of_array_of_number_only import ArrayOfArrayOfNumberOnly
|
||||||
from petstore_api.models.array_of_number_only import ArrayOfNumberOnly
|
from petstore_api.models.array_of_number_only import ArrayOfNumberOnly
|
||||||
@ -85,6 +84,7 @@ from petstore_api.models.map_of_array_of_model import MapOfArrayOfModel
|
|||||||
from petstore_api.models.map_test import MapTest
|
from petstore_api.models.map_test import MapTest
|
||||||
from petstore_api.models.mixed_properties_and_additional_properties_class import MixedPropertiesAndAdditionalPropertiesClass
|
from petstore_api.models.mixed_properties_and_additional_properties_class import MixedPropertiesAndAdditionalPropertiesClass
|
||||||
from petstore_api.models.model200_response import Model200Response
|
from petstore_api.models.model200_response import Model200Response
|
||||||
|
from petstore_api.models.model_api_response import ModelApiResponse
|
||||||
from petstore_api.models.model_return import ModelReturn
|
from petstore_api.models.model_return import ModelReturn
|
||||||
from petstore_api.models.name import Name
|
from petstore_api.models.name import Name
|
||||||
from petstore_api.models.nullable_class import NullableClass
|
from petstore_api.models.nullable_class import NullableClass
|
||||||
|
@ -14,11 +14,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import Field
|
from pydantic import Field
|
||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
|
@ -14,11 +14,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from petstore_api.models.foo_get_default_response import FooGetDefaultResponse
|
from petstore_api.models.foo_get_default_response import FooGetDefaultResponse
|
||||||
|
|
||||||
|
@ -14,11 +14,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from datetime import date, datetime
|
from datetime import date, datetime
|
||||||
from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr, field_validator
|
from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr, field_validator
|
||||||
|
@ -14,11 +14,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import Field
|
from pydantic import Field
|
||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
|
@ -14,16 +14,12 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import Field, StrictBytes, StrictInt, StrictStr, field_validator
|
from pydantic import Field, StrictBytes, StrictInt, StrictStr, field_validator
|
||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
from petstore_api.models.api_response import ApiResponse
|
from petstore_api.models.model_api_response import ModelApiResponse
|
||||||
from petstore_api.models.pet import Pet
|
from petstore_api.models.pet import Pet
|
||||||
|
|
||||||
from petstore_api.api_client import ApiClient
|
from petstore_api.api_client import ApiClient
|
||||||
@ -1976,7 +1972,7 @@ class PetApi:
|
|||||||
_content_type: Optional[StrictStr] = None,
|
_content_type: Optional[StrictStr] = None,
|
||||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||||
) -> ApiResponse:
|
) -> ModelApiResponse:
|
||||||
"""uploads an image
|
"""uploads an image
|
||||||
|
|
||||||
|
|
||||||
@ -2020,7 +2016,7 @@ class PetApi:
|
|||||||
)
|
)
|
||||||
|
|
||||||
_response_types_map: Dict[str, Optional[str]] = {
|
_response_types_map: Dict[str, Optional[str]] = {
|
||||||
'200': "ApiResponse",
|
'200': "ModelApiResponse",
|
||||||
}
|
}
|
||||||
response_data = await self.api_client.call_api(
|
response_data = await self.api_client.call_api(
|
||||||
*_param,
|
*_param,
|
||||||
@ -2051,7 +2047,7 @@ class PetApi:
|
|||||||
_content_type: Optional[StrictStr] = None,
|
_content_type: Optional[StrictStr] = None,
|
||||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||||
) -> ApiResponse[ApiResponse]:
|
) -> ApiResponse[ModelApiResponse]:
|
||||||
"""uploads an image
|
"""uploads an image
|
||||||
|
|
||||||
|
|
||||||
@ -2095,7 +2091,7 @@ class PetApi:
|
|||||||
)
|
)
|
||||||
|
|
||||||
_response_types_map: Dict[str, Optional[str]] = {
|
_response_types_map: Dict[str, Optional[str]] = {
|
||||||
'200': "ApiResponse",
|
'200': "ModelApiResponse",
|
||||||
}
|
}
|
||||||
response_data = await self.api_client.call_api(
|
response_data = await self.api_client.call_api(
|
||||||
*_param,
|
*_param,
|
||||||
@ -2170,7 +2166,7 @@ class PetApi:
|
|||||||
)
|
)
|
||||||
|
|
||||||
_response_types_map: Dict[str, Optional[str]] = {
|
_response_types_map: Dict[str, Optional[str]] = {
|
||||||
'200': "ApiResponse",
|
'200': "ModelApiResponse",
|
||||||
}
|
}
|
||||||
response_data = await self.api_client.call_api(
|
response_data = await self.api_client.call_api(
|
||||||
*_param,
|
*_param,
|
||||||
@ -2277,7 +2273,7 @@ class PetApi:
|
|||||||
_content_type: Optional[StrictStr] = None,
|
_content_type: Optional[StrictStr] = None,
|
||||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||||
) -> ApiResponse:
|
) -> ModelApiResponse:
|
||||||
"""uploads an image (required)
|
"""uploads an image (required)
|
||||||
|
|
||||||
|
|
||||||
@ -2321,7 +2317,7 @@ class PetApi:
|
|||||||
)
|
)
|
||||||
|
|
||||||
_response_types_map: Dict[str, Optional[str]] = {
|
_response_types_map: Dict[str, Optional[str]] = {
|
||||||
'200': "ApiResponse",
|
'200': "ModelApiResponse",
|
||||||
}
|
}
|
||||||
response_data = await self.api_client.call_api(
|
response_data = await self.api_client.call_api(
|
||||||
*_param,
|
*_param,
|
||||||
@ -2352,7 +2348,7 @@ class PetApi:
|
|||||||
_content_type: Optional[StrictStr] = None,
|
_content_type: Optional[StrictStr] = None,
|
||||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||||
) -> ApiResponse[ApiResponse]:
|
) -> ApiResponse[ModelApiResponse]:
|
||||||
"""uploads an image (required)
|
"""uploads an image (required)
|
||||||
|
|
||||||
|
|
||||||
@ -2396,7 +2392,7 @@ class PetApi:
|
|||||||
)
|
)
|
||||||
|
|
||||||
_response_types_map: Dict[str, Optional[str]] = {
|
_response_types_map: Dict[str, Optional[str]] = {
|
||||||
'200': "ApiResponse",
|
'200': "ModelApiResponse",
|
||||||
}
|
}
|
||||||
response_data = await self.api_client.call_api(
|
response_data = await self.api_client.call_api(
|
||||||
*_param,
|
*_param,
|
||||||
@ -2471,7 +2467,7 @@ class PetApi:
|
|||||||
)
|
)
|
||||||
|
|
||||||
_response_types_map: Dict[str, Optional[str]] = {
|
_response_types_map: Dict[str, Optional[str]] = {
|
||||||
'200': "ApiResponse",
|
'200': "ModelApiResponse",
|
||||||
}
|
}
|
||||||
response_data = await self.api_client.call_api(
|
response_data = await self.api_client.call_api(
|
||||||
*_param,
|
*_param,
|
||||||
|
@ -14,11 +14,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import Field, StrictStr
|
from pydantic import Field, StrictStr
|
||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
|
@ -14,11 +14,7 @@
|
|||||||
import warnings
|
import warnings
|
||||||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||||
|
from typing_extensions import Annotated
|
||||||
try:
|
|
||||||
from typing import Annotated
|
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from pydantic import Field, StrictStr
|
from pydantic import Field, StrictStr
|
||||||
from typing import List
|
from typing import List
|
||||||
|
@ -275,15 +275,13 @@ class ApiClient:
|
|||||||
)
|
)
|
||||||
|
|
||||||
except ApiException as e:
|
except ApiException as e:
|
||||||
if e.body:
|
|
||||||
e.body = e.body.decode('utf-8')
|
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
return response_data
|
return response_data
|
||||||
|
|
||||||
def response_deserialize(
|
def response_deserialize(
|
||||||
self,
|
self,
|
||||||
response_data: rest.RESTResponse = None,
|
response_data: rest.RESTResponse,
|
||||||
response_types_map=None
|
response_types_map=None
|
||||||
) -> ApiResponse:
|
) -> ApiResponse:
|
||||||
"""Deserializes response into an object.
|
"""Deserializes response into an object.
|
||||||
@ -292,6 +290,8 @@ class ApiClient:
|
|||||||
:return: ApiResponse
|
:return: ApiResponse
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
msg = "RESTResponse.read() must be called before passing it to response_deserialize()"
|
||||||
|
assert response_data.data is not None, msg
|
||||||
|
|
||||||
response_type = response_types_map.get(str(response_data.status), None)
|
response_type = response_types_map.get(str(response_data.status), None)
|
||||||
if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
|
if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
"""API response object."""
|
"""API response object."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Dict, Optional, Generic, TypeVar
|
from typing import Optional, Generic, Mapping, TypeVar
|
||||||
from pydantic import Field, StrictInt, StrictStr, StrictBytes, BaseModel
|
from pydantic import Field, StrictInt, StrictBytes, BaseModel
|
||||||
|
|
||||||
T = TypeVar("T")
|
T = TypeVar("T")
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ class ApiResponse(BaseModel, Generic[T]):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
status_code: StrictInt = Field(description="HTTP status code")
|
status_code: StrictInt = Field(description="HTTP status code")
|
||||||
headers: Optional[Dict[StrictStr, StrictStr]] = Field(None, description="HTTP headers")
|
headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers")
|
||||||
data: T = Field(description="Deserialized data given the data type")
|
data: T = Field(description="Deserialized data given the data type")
|
||||||
raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
|
raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
""" # noqa: E501
|
""" # noqa: E501
|
||||||
|
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
from typing_extensions import Self
|
from typing_extensions import Self
|
||||||
|
|
||||||
class OpenApiException(Exception):
|
class OpenApiException(Exception):
|
||||||
|
@ -22,7 +22,6 @@ from petstore_api.models.all_of_with_single_ref import AllOfWithSingleRef
|
|||||||
from petstore_api.models.animal import Animal
|
from petstore_api.models.animal import Animal
|
||||||
from petstore_api.models.any_of_color import AnyOfColor
|
from petstore_api.models.any_of_color import AnyOfColor
|
||||||
from petstore_api.models.any_of_pig import AnyOfPig
|
from petstore_api.models.any_of_pig import AnyOfPig
|
||||||
from petstore_api.models.api_response import ApiResponse
|
|
||||||
from petstore_api.models.array_of_array_of_model import ArrayOfArrayOfModel
|
from petstore_api.models.array_of_array_of_model import ArrayOfArrayOfModel
|
||||||
from petstore_api.models.array_of_array_of_number_only import ArrayOfArrayOfNumberOnly
|
from petstore_api.models.array_of_array_of_number_only import ArrayOfArrayOfNumberOnly
|
||||||
from petstore_api.models.array_of_number_only import ArrayOfNumberOnly
|
from petstore_api.models.array_of_number_only import ArrayOfNumberOnly
|
||||||
@ -61,6 +60,7 @@ from petstore_api.models.map_of_array_of_model import MapOfArrayOfModel
|
|||||||
from petstore_api.models.map_test import MapTest
|
from petstore_api.models.map_test import MapTest
|
||||||
from petstore_api.models.mixed_properties_and_additional_properties_class import MixedPropertiesAndAdditionalPropertiesClass
|
from petstore_api.models.mixed_properties_and_additional_properties_class import MixedPropertiesAndAdditionalPropertiesClass
|
||||||
from petstore_api.models.model200_response import Model200Response
|
from petstore_api.models.model200_response import Model200Response
|
||||||
|
from petstore_api.models.model_api_response import ModelApiResponse
|
||||||
from petstore_api.models.model_return import ModelReturn
|
from petstore_api.models.model_return import ModelReturn
|
||||||
from petstore_api.models.name import Name
|
from petstore_api.models.name import Name
|
||||||
from petstore_api.models.nullable_class import NullableClass
|
from petstore_api.models.nullable_class import NullableClass
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictStr
|
from pydantic import BaseModel, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class AdditionalPropertiesAnyType(BaseModel):
|
class AdditionalPropertiesAnyType(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class AdditionalPropertiesAnyType(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of AdditionalPropertiesAnyType from a JSON string"""
|
"""Create an instance of AdditionalPropertiesAnyType from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,11 +62,13 @@ class AdditionalPropertiesAnyType(BaseModel):
|
|||||||
are ignored.
|
are ignored.
|
||||||
* Fields in `self.additional_properties` are added to the output dict.
|
* Fields in `self.additional_properties` are added to the output dict.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
"additional_properties",
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
"additional_properties",
|
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# puts key-value pairs in additional_properties in the top level
|
# puts key-value pairs in additional_properties in the top level
|
||||||
@ -79,7 +79,7 @@ class AdditionalPropertiesAnyType(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of AdditionalPropertiesAnyType from a dict"""
|
"""Create an instance of AdditionalPropertiesAnyType from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictStr
|
from pydantic import BaseModel, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class AdditionalPropertiesClass(BaseModel):
|
class AdditionalPropertiesClass(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class AdditionalPropertiesClass(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of AdditionalPropertiesClass from a JSON string"""
|
"""Create an instance of AdditionalPropertiesClass from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -63,16 +61,18 @@ class AdditionalPropertiesClass(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of AdditionalPropertiesClass from a dict"""
|
"""Create an instance of AdditionalPropertiesClass from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictStr
|
from pydantic import BaseModel, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class AdditionalPropertiesObject(BaseModel):
|
class AdditionalPropertiesObject(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class AdditionalPropertiesObject(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of AdditionalPropertiesObject from a JSON string"""
|
"""Create an instance of AdditionalPropertiesObject from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,11 +62,13 @@ class AdditionalPropertiesObject(BaseModel):
|
|||||||
are ignored.
|
are ignored.
|
||||||
* Fields in `self.additional_properties` are added to the output dict.
|
* Fields in `self.additional_properties` are added to the output dict.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
"additional_properties",
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
"additional_properties",
|
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# puts key-value pairs in additional_properties in the top level
|
# puts key-value pairs in additional_properties in the top level
|
||||||
@ -79,7 +79,7 @@ class AdditionalPropertiesObject(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of AdditionalPropertiesObject from a dict"""
|
"""Create an instance of AdditionalPropertiesObject from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictStr
|
from pydantic import BaseModel, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class AdditionalPropertiesWithDescriptionOnly(BaseModel):
|
class AdditionalPropertiesWithDescriptionOnly(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class AdditionalPropertiesWithDescriptionOnly(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of AdditionalPropertiesWithDescriptionOnly from a JSON string"""
|
"""Create an instance of AdditionalPropertiesWithDescriptionOnly from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,11 +62,13 @@ class AdditionalPropertiesWithDescriptionOnly(BaseModel):
|
|||||||
are ignored.
|
are ignored.
|
||||||
* Fields in `self.additional_properties` are added to the output dict.
|
* Fields in `self.additional_properties` are added to the output dict.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
"additional_properties",
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
"additional_properties",
|
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# puts key-value pairs in additional_properties in the top level
|
# puts key-value pairs in additional_properties in the top level
|
||||||
@ -79,7 +79,7 @@ class AdditionalPropertiesWithDescriptionOnly(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of AdditionalPropertiesWithDescriptionOnly from a dict"""
|
"""Create an instance of AdditionalPropertiesWithDescriptionOnly from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
from pydantic import BaseModel, Field, StrictStr
|
from pydantic import BaseModel, Field, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from petstore_api.models.single_ref_type import SingleRefType
|
from petstore_api.models.single_ref_type import SingleRefType
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class AllOfWithSingleRef(BaseModel):
|
class AllOfWithSingleRef(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -50,7 +48,7 @@ class AllOfWithSingleRef(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of AllOfWithSingleRef from a JSON string"""
|
"""Create an instance of AllOfWithSingleRef from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -64,16 +62,18 @@ class AllOfWithSingleRef(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of AllOfWithSingleRef from a dict"""
|
"""Create an instance of AllOfWithSingleRef from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field, StrictStr
|
from pydantic import BaseModel, Field, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional, Union
|
from typing import Any, ClassVar, Dict, List, Optional, Union
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Animal(BaseModel):
|
class Animal(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -40,7 +38,7 @@ class Animal(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
# JSON field name that stores the object type
|
# JSON field name that stores the object type
|
||||||
__discriminator_property_name: ClassVar[List[str]] = 'className'
|
__discriminator_property_name: ClassVar[str] = 'className'
|
||||||
|
|
||||||
# discriminator mappings
|
# discriminator mappings
|
||||||
__discriminator_value_class_map: ClassVar[Dict[str, str]] = {
|
__discriminator_value_class_map: ClassVar[Dict[str, str]] = {
|
||||||
@ -48,7 +46,7 @@ class Animal(BaseModel):
|
|||||||
}
|
}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_discriminator_value(cls, obj: Dict) -> str:
|
def get_discriminator_value(cls, obj: Dict) -> Optional[str]:
|
||||||
"""Returns the discriminator value (object type) of the data"""
|
"""Returns the discriminator value (object type) of the data"""
|
||||||
discriminator_value = obj[cls.__discriminator_property_name]
|
discriminator_value = obj[cls.__discriminator_property_name]
|
||||||
if discriminator_value:
|
if discriminator_value:
|
||||||
@ -66,7 +64,7 @@ class Animal(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Union[Self, Self]:
|
def from_json(cls, json_str: str) -> Optional[Union[Self, Self]]:
|
||||||
"""Create an instance of Animal from a JSON string"""
|
"""Create an instance of Animal from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -80,16 +78,18 @@ class Animal(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Union[Self, Self]:
|
def from_dict(cls, obj: Dict) -> Optional[Union[Self, Self]]:
|
||||||
"""Create an instance of Animal from a dict"""
|
"""Create an instance of Animal from a dict"""
|
||||||
# look up the object type based on discriminator mapping
|
# look up the object type based on discriminator mapping
|
||||||
object_type = cls.get_discriminator_value(obj)
|
object_type = cls.get_discriminator_value(obj)
|
||||||
|
@ -22,6 +22,7 @@ from typing import List, Optional
|
|||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
from typing import Union, Any, List, TYPE_CHECKING, Optional, Dict
|
from typing import Union, Any, List, TYPE_CHECKING, Optional, Dict
|
||||||
from typing_extensions import Literal, Self
|
from typing_extensions import Literal, Self
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
ANYOFCOLOR_ANY_OF_SCHEMAS = ["List[int]", "str"]
|
ANYOFCOLOR_ANY_OF_SCHEMAS = ["List[int]", "str"]
|
||||||
|
|
||||||
@ -40,7 +41,7 @@ class AnyOfColor(BaseModel):
|
|||||||
actual_instance: Optional[Union[List[int], str]] = None
|
actual_instance: Optional[Union[List[int], str]] = None
|
||||||
else:
|
else:
|
||||||
actual_instance: Any = None
|
actual_instance: Any = None
|
||||||
any_of_schemas: List[str] = Literal[ANYOFCOLOR_ANY_OF_SCHEMAS]
|
any_of_schemas: List[str] = Field(default=Literal["List[int]", "str"])
|
||||||
|
|
||||||
model_config = {
|
model_config = {
|
||||||
"validate_assignment": True,
|
"validate_assignment": True,
|
||||||
@ -133,22 +134,20 @@ class AnyOfColor(BaseModel):
|
|||||||
if self.actual_instance is None:
|
if self.actual_instance is None:
|
||||||
return "null"
|
return "null"
|
||||||
|
|
||||||
to_json = getattr(self.actual_instance, "to_json", None)
|
if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
|
||||||
if callable(to_json):
|
|
||||||
return self.actual_instance.to_json()
|
return self.actual_instance.to_json()
|
||||||
else:
|
else:
|
||||||
return json.dumps(self.actual_instance)
|
return json.dumps(self.actual_instance)
|
||||||
|
|
||||||
def to_dict(self) -> Dict:
|
def to_dict(self) -> Optional[Union[Dict, List[int], str]]:
|
||||||
"""Returns the dict representation of the actual instance"""
|
"""Returns the dict representation of the actual instance"""
|
||||||
if self.actual_instance is None:
|
if self.actual_instance is None:
|
||||||
return "null"
|
return None
|
||||||
|
|
||||||
to_json = getattr(self.actual_instance, "to_json", None)
|
if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
|
||||||
if callable(to_json):
|
|
||||||
return self.actual_instance.to_dict()
|
return self.actual_instance.to_dict()
|
||||||
else:
|
else:
|
||||||
return json.dumps(self.actual_instance)
|
return self.actual_instance
|
||||||
|
|
||||||
def to_str(self) -> str:
|
def to_str(self) -> str:
|
||||||
"""Returns the string representation of the actual instance"""
|
"""Returns the string representation of the actual instance"""
|
||||||
|
@ -23,6 +23,7 @@ from petstore_api.models.basque_pig import BasquePig
|
|||||||
from petstore_api.models.danish_pig import DanishPig
|
from petstore_api.models.danish_pig import DanishPig
|
||||||
from typing import Union, Any, List, TYPE_CHECKING, Optional, Dict
|
from typing import Union, Any, List, TYPE_CHECKING, Optional, Dict
|
||||||
from typing_extensions import Literal, Self
|
from typing_extensions import Literal, Self
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
ANYOFPIG_ANY_OF_SCHEMAS = ["BasquePig", "DanishPig"]
|
ANYOFPIG_ANY_OF_SCHEMAS = ["BasquePig", "DanishPig"]
|
||||||
|
|
||||||
@ -39,7 +40,7 @@ class AnyOfPig(BaseModel):
|
|||||||
actual_instance: Optional[Union[BasquePig, DanishPig]] = None
|
actual_instance: Optional[Union[BasquePig, DanishPig]] = None
|
||||||
else:
|
else:
|
||||||
actual_instance: Any = None
|
actual_instance: Any = None
|
||||||
any_of_schemas: List[str] = Literal[ANYOFPIG_ANY_OF_SCHEMAS]
|
any_of_schemas: List[str] = Field(default=Literal["BasquePig", "DanishPig"])
|
||||||
|
|
||||||
model_config = {
|
model_config = {
|
||||||
"validate_assignment": True,
|
"validate_assignment": True,
|
||||||
@ -111,22 +112,20 @@ class AnyOfPig(BaseModel):
|
|||||||
if self.actual_instance is None:
|
if self.actual_instance is None:
|
||||||
return "null"
|
return "null"
|
||||||
|
|
||||||
to_json = getattr(self.actual_instance, "to_json", None)
|
if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
|
||||||
if callable(to_json):
|
|
||||||
return self.actual_instance.to_json()
|
return self.actual_instance.to_json()
|
||||||
else:
|
else:
|
||||||
return json.dumps(self.actual_instance)
|
return json.dumps(self.actual_instance)
|
||||||
|
|
||||||
def to_dict(self) -> Dict:
|
def to_dict(self) -> Optional[Union[Dict, BasquePig, DanishPig]]:
|
||||||
"""Returns the dict representation of the actual instance"""
|
"""Returns the dict representation of the actual instance"""
|
||||||
if self.actual_instance is None:
|
if self.actual_instance is None:
|
||||||
return "null"
|
return None
|
||||||
|
|
||||||
to_json = getattr(self.actual_instance, "to_json", None)
|
if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
|
||||||
if callable(to_json):
|
|
||||||
return self.actual_instance.to_dict()
|
return self.actual_instance.to_dict()
|
||||||
else:
|
else:
|
||||||
return json.dumps(self.actual_instance)
|
return self.actual_instance
|
||||||
|
|
||||||
def to_str(self) -> str:
|
def to_str(self) -> str:
|
||||||
"""Returns the string representation of the actual instance"""
|
"""Returns the string representation of the actual instance"""
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from petstore_api.models.tag import Tag
|
from petstore_api.models.tag import Tag
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class ArrayOfArrayOfModel(BaseModel):
|
class ArrayOfArrayOfModel(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class ArrayOfArrayOfModel(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of ArrayOfArrayOfModel from a JSON string"""
|
"""Create an instance of ArrayOfArrayOfModel from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -63,10 +61,12 @@ class ArrayOfArrayOfModel(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# override the default output from pydantic by calling `to_dict()` of each item in another_property (list of list)
|
# override the default output from pydantic by calling `to_dict()` of each item in another_property (list of list)
|
||||||
@ -81,7 +81,7 @@ class ArrayOfArrayOfModel(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of ArrayOfArrayOfModel from a dict"""
|
"""Create an instance of ArrayOfArrayOfModel from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
@ -92,7 +92,7 @@ class ArrayOfArrayOfModel(BaseModel):
|
|||||||
_obj = cls.model_validate({
|
_obj = cls.model_validate({
|
||||||
"another_property": [
|
"another_property": [
|
||||||
[Tag.from_dict(_inner_item) for _inner_item in _item]
|
[Tag.from_dict(_inner_item) for _inner_item in _item]
|
||||||
for _item in obj.get("another_property")
|
for _item in obj["another_property"]
|
||||||
] if obj.get("another_property") is not None else None
|
] if obj.get("another_property") is not None else None
|
||||||
})
|
})
|
||||||
return _obj
|
return _obj
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class ArrayOfArrayOfNumberOnly(BaseModel):
|
class ArrayOfArrayOfNumberOnly(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -48,7 +46,7 @@ class ArrayOfArrayOfNumberOnly(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of ArrayOfArrayOfNumberOnly from a JSON string"""
|
"""Create an instance of ArrayOfArrayOfNumberOnly from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -62,16 +60,18 @@ class ArrayOfArrayOfNumberOnly(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of ArrayOfArrayOfNumberOnly from a dict"""
|
"""Create an instance of ArrayOfArrayOfNumberOnly from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class ArrayOfNumberOnly(BaseModel):
|
class ArrayOfNumberOnly(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -48,7 +46,7 @@ class ArrayOfNumberOnly(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of ArrayOfNumberOnly from a JSON string"""
|
"""Create an instance of ArrayOfNumberOnly from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -62,16 +60,18 @@ class ArrayOfNumberOnly(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of ArrayOfNumberOnly from a dict"""
|
"""Create an instance of ArrayOfNumberOnly from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -21,10 +21,8 @@ from pydantic import BaseModel, Field, StrictInt, StrictStr
|
|||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from typing_extensions import Annotated
|
from typing_extensions import Annotated
|
||||||
from petstore_api.models.read_only_first import ReadOnlyFirst
|
from petstore_api.models.read_only_first import ReadOnlyFirst
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class ArrayTest(BaseModel):
|
class ArrayTest(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -52,7 +50,7 @@ class ArrayTest(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of ArrayTest from a JSON string"""
|
"""Create an instance of ArrayTest from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -66,10 +64,12 @@ class ArrayTest(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# override the default output from pydantic by calling `to_dict()` of each item in array_array_of_model (list of list)
|
# override the default output from pydantic by calling `to_dict()` of each item in array_array_of_model (list of list)
|
||||||
@ -84,7 +84,7 @@ class ArrayTest(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of ArrayTest from a dict"""
|
"""Create an instance of ArrayTest from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
@ -97,7 +97,7 @@ class ArrayTest(BaseModel):
|
|||||||
"array_array_of_integer": obj.get("array_array_of_integer"),
|
"array_array_of_integer": obj.get("array_array_of_integer"),
|
||||||
"array_array_of_model": [
|
"array_array_of_model": [
|
||||||
[ReadOnlyFirst.from_dict(_inner_item) for _inner_item in _item]
|
[ReadOnlyFirst.from_dict(_inner_item) for _inner_item in _item]
|
||||||
for _item in obj.get("array_array_of_model")
|
for _item in obj["array_array_of_model"]
|
||||||
] if obj.get("array_array_of_model") is not None else None
|
] if obj.get("array_array_of_model") is not None else None
|
||||||
})
|
})
|
||||||
return _obj
|
return _obj
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field, StrictStr
|
from pydantic import BaseModel, Field, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List
|
from typing import Any, ClassVar, Dict, List
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class BasquePig(BaseModel):
|
class BasquePig(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class BasquePig(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of BasquePig from a JSON string"""
|
"""Create an instance of BasquePig from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -63,16 +61,18 @@ class BasquePig(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of BasquePig from a dict"""
|
"""Create an instance of BasquePig from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field, StrictStr
|
from pydantic import BaseModel, Field, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Capitalization(BaseModel):
|
class Capitalization(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -53,7 +51,7 @@ class Capitalization(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Capitalization from a JSON string"""
|
"""Create an instance of Capitalization from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -67,16 +65,18 @@ class Capitalization(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Capitalization from a dict"""
|
"""Create an instance of Capitalization from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -20,10 +20,8 @@ import json
|
|||||||
from pydantic import StrictBool
|
from pydantic import StrictBool
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
from petstore_api.models.animal import Animal
|
from petstore_api.models.animal import Animal
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Cat(Animal):
|
class Cat(Animal):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class Cat(Animal):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Cat from a JSON string"""
|
"""Create an instance of Cat from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -63,16 +61,18 @@ class Cat(Animal):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Cat from a dict"""
|
"""Create an instance of Cat from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictInt, StrictStr
|
from pydantic import BaseModel, StrictInt, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Category(BaseModel):
|
class Category(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class Category(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Category from a JSON string"""
|
"""Create an instance of Category from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -63,16 +61,18 @@ class Category(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Category from a dict"""
|
"""Create an instance of Category from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictInt
|
from pydantic import BaseModel, StrictInt
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class CircularReferenceModel(BaseModel):
|
class CircularReferenceModel(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -49,7 +47,7 @@ class CircularReferenceModel(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of CircularReferenceModel from a JSON string"""
|
"""Create an instance of CircularReferenceModel from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -63,10 +61,12 @@ class CircularReferenceModel(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
# override the default output from pydantic by calling `to_dict()` of nested
|
# override the default output from pydantic by calling `to_dict()` of nested
|
||||||
@ -75,7 +75,7 @@ class CircularReferenceModel(BaseModel):
|
|||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of CircularReferenceModel from a dict"""
|
"""Create an instance of CircularReferenceModel from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
@ -85,7 +85,7 @@ class CircularReferenceModel(BaseModel):
|
|||||||
|
|
||||||
_obj = cls.model_validate({
|
_obj = cls.model_validate({
|
||||||
"size": obj.get("size"),
|
"size": obj.get("size"),
|
||||||
"nested": FirstRef.from_dict(obj.get("nested")) if obj.get("nested") is not None else None
|
"nested": FirstRef.from_dict(obj["nested"]) if obj.get("nested") is not None else None
|
||||||
})
|
})
|
||||||
return _obj
|
return _obj
|
||||||
|
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field, StrictStr
|
from pydantic import BaseModel, Field, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class ClassModel(BaseModel):
|
class ClassModel(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -48,7 +46,7 @@ class ClassModel(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of ClassModel from a JSON string"""
|
"""Create an instance of ClassModel from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -62,16 +60,18 @@ class ClassModel(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of ClassModel from a dict"""
|
"""Create an instance of ClassModel from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
@ -19,10 +19,8 @@ import json
|
|||||||
|
|
||||||
from pydantic import BaseModel, StrictStr
|
from pydantic import BaseModel, StrictStr
|
||||||
from typing import Any, ClassVar, Dict, List, Optional
|
from typing import Any, ClassVar, Dict, List, Optional
|
||||||
try:
|
from typing import Optional, Set
|
||||||
from typing import Self
|
from typing_extensions import Self
|
||||||
except ImportError:
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
class Client(BaseModel):
|
class Client(BaseModel):
|
||||||
"""
|
"""
|
||||||
@ -48,7 +46,7 @@ class Client(BaseModel):
|
|||||||
return json.dumps(self.to_dict())
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json_str: str) -> Self:
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||||
"""Create an instance of Client from a JSON string"""
|
"""Create an instance of Client from a JSON string"""
|
||||||
return cls.from_dict(json.loads(json_str))
|
return cls.from_dict(json.loads(json_str))
|
||||||
|
|
||||||
@ -62,16 +60,18 @@ class Client(BaseModel):
|
|||||||
were set at model initialization. Other fields with value `None`
|
were set at model initialization. Other fields with value `None`
|
||||||
are ignored.
|
are ignored.
|
||||||
"""
|
"""
|
||||||
|
excluded_fields: Set[str] = set([
|
||||||
|
])
|
||||||
|
|
||||||
_dict = self.model_dump(
|
_dict = self.model_dump(
|
||||||
by_alias=True,
|
by_alias=True,
|
||||||
exclude={
|
exclude=excluded_fields,
|
||||||
},
|
|
||||||
exclude_none=True,
|
exclude_none=True,
|
||||||
)
|
)
|
||||||
return _dict
|
return _dict
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, obj: Dict) -> Self:
|
def from_dict(cls, obj: Optional[Dict]) -> Optional[Self]:
|
||||||
"""Create an instance of Client from a dict"""
|
"""Create an instance of Client from a dict"""
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return None
|
return None
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user