diff --git a/modules/openapi-generator/src/main/resources/python/model_anyof.mustache b/modules/openapi-generator/src/main/resources/python/model_anyof.mustache index c1e67ffb1a4..4aaff740489 100644 --- a/modules/openapi-generator/src/main/resources/python/model_anyof.mustache +++ b/modules/openapi-generator/src/main/resources/python/model_anyof.mustache @@ -9,7 +9,7 @@ import re # noqa: F401 {{#vendorExtensions.x-py-model-imports}} {{{.}}} {{/vendorExtensions.x-py-model-imports}} -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field {{#lambda.uppercase}}{{{classname}}}{{/lambda.uppercase}}_ANY_OF_SCHEMAS = [{{#anyOf}}"{{.}}"{{^-last}}, {{/-last}}{{/anyOf}}] @@ -23,7 +23,10 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} # data type: {{{dataType}}} {{vendorExtensions.x-py-name}}: {{{vendorExtensions.x-py-typing}}} {{/composedSchemas.anyOf}} - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[{{#anyOf}}{{{.}}}{{^-last}}, {{/-last}}{{/anyOf}}] + else: + actual_instance: Any any_of_schemas: List[str] = Field({{#lambda.uppercase}}{{{classname}}}{{/lambda.uppercase}}_ANY_OF_SCHEMAS, const=True) class Config: diff --git a/modules/openapi-generator/src/main/resources/python/model_oneof.mustache b/modules/openapi-generator/src/main/resources/python/model_oneof.mustache index 9c3463ba5ec..3c371f5b15f 100644 --- a/modules/openapi-generator/src/main/resources/python/model_oneof.mustache +++ b/modules/openapi-generator/src/main/resources/python/model_oneof.mustache @@ -9,7 +9,7 @@ import re # noqa: F401 {{#vendorExtensions.x-py-model-imports}} {{{.}}} {{/vendorExtensions.x-py-model-imports}} -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field {{#lambda.uppercase}}{{{classname}}}{{/lambda.uppercase}}_ONE_OF_SCHEMAS = [{{#oneOf}}"{{.}}"{{^-last}}, {{/-last}}{{/oneOf}}] @@ -22,7 +22,10 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} # data type: {{{dataType}}} {{vendorExtensions.x-py-name}}: {{{vendorExtensions.x-py-typing}}} {{/composedSchemas.oneOf}} - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[{{#oneOf}}{{{.}}}{{^-last}}, {{/-last}}{{/oneOf}}] + else: + actual_instance: Any one_of_schemas: List[str] = Field({{#lambda.uppercase}}{{{classname}}}{{/lambda.uppercase}}_ONE_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/any_of_color.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/any_of_color.py index a48b11b5926..4b66a315d1d 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/any_of_color.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/any_of_color.py @@ -20,7 +20,7 @@ import re # noqa: F401 from typing import List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, conint, conlist, constr, validator -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field ANYOFCOLOR_ANY_OF_SCHEMAS = ["List[int]", "str"] @@ -36,7 +36,10 @@ class AnyOfColor(BaseModel): anyof_schema_2_validator: Optional[conlist(conint(strict=True, le=255, ge=0), max_items=4, min_items=4)] = Field(None, description="RGBA four element array with values 0-255.") # data type: str anyof_schema_3_validator: Optional[constr(strict=True, max_length=7, min_length=7)] = Field(None, description="Hex color string, such as #00FF00.") - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[List[int], str] + else: + actual_instance: Any any_of_schemas: List[str] = Field(ANYOFCOLOR_ANY_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/any_of_pig.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/any_of_pig.py index 909d95d4d43..3e98a0089e2 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/any_of_pig.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/any_of_pig.py @@ -22,7 +22,7 @@ from typing import Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, validator from petstore_api.models.basque_pig import BasquePig from petstore_api.models.danish_pig import DanishPig -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field ANYOFPIG_ANY_OF_SCHEMAS = ["BasquePig", "DanishPig"] @@ -36,7 +36,10 @@ class AnyOfPig(BaseModel): anyof_schema_1_validator: Optional[BasquePig] = None # data type: DanishPig anyof_schema_2_validator: Optional[DanishPig] = None - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[BasquePig, DanishPig] + else: + actual_instance: Any any_of_schemas: List[str] = Field(ANYOFPIG_ANY_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/color.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/color.py index 97049e5811c..06a756c16a8 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/color.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/color.py @@ -20,7 +20,7 @@ import re # noqa: F401 from typing import Any, List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, conint, conlist, constr, validator -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field COLOR_ONE_OF_SCHEMAS = ["List[int]", "str"] @@ -35,7 +35,10 @@ class Color(BaseModel): oneof_schema_2_validator: Optional[conlist(conint(strict=True, le=255, ge=0), max_items=4, min_items=4)] = Field(None, description="RGBA four element array with values 0-255.") # data type: str oneof_schema_3_validator: Optional[constr(strict=True, max_length=7, min_length=7)] = Field(None, description="Hex color string, such as #00FF00.") - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[List[int], str] + else: + actual_instance: Any one_of_schemas: List[str] = Field(COLOR_ONE_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/int_or_string.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/int_or_string.py index 63293ee016d..558f6b5b3f5 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/int_or_string.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/int_or_string.py @@ -20,7 +20,7 @@ import re # noqa: F401 from typing import Any, List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, conint, validator -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field INTORSTRING_ONE_OF_SCHEMAS = ["int", "str"] @@ -33,7 +33,10 @@ class IntOrString(BaseModel): oneof_schema_1_validator: Optional[conint(strict=True, ge=10)] = None # data type: str oneof_schema_2_validator: Optional[StrictStr] = None - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[int, str] + else: + actual_instance: Any one_of_schemas: List[str] = Field(INTORSTRING_ONE_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/one_of_enum_string.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/one_of_enum_string.py index ae674028175..43a35efbaa1 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/one_of_enum_string.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/one_of_enum_string.py @@ -22,7 +22,7 @@ from typing import Any, List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, validator from petstore_api.models.enum_string1 import EnumString1 from petstore_api.models.enum_string2 import EnumString2 -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field ONEOFENUMSTRING_ONE_OF_SCHEMAS = ["EnumString1", "EnumString2"] @@ -35,7 +35,10 @@ class OneOfEnumString(BaseModel): oneof_schema_1_validator: Optional[EnumString1] = None # data type: EnumString2 oneof_schema_2_validator: Optional[EnumString2] = None - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[EnumString1, EnumString2] + else: + actual_instance: Any one_of_schemas: List[str] = Field(ONEOFENUMSTRING_ONE_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/pig.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/pig.py index 859c2dc9475..c31f7144ec1 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/pig.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/pig.py @@ -22,7 +22,7 @@ from typing import Any, List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, validator from petstore_api.models.basque_pig import BasquePig from petstore_api.models.danish_pig import DanishPig -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field PIG_ONE_OF_SCHEMAS = ["BasquePig", "DanishPig"] @@ -35,7 +35,10 @@ class Pig(BaseModel): oneof_schema_1_validator: Optional[BasquePig] = None # data type: DanishPig oneof_schema_2_validator: Optional[DanishPig] = None - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[BasquePig, DanishPig] + else: + actual_instance: Any one_of_schemas: List[str] = Field(PIG_ONE_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/any_of_color.py b/samples/openapi3/client/petstore/python/petstore_api/models/any_of_color.py index a48b11b5926..4b66a315d1d 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/any_of_color.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/any_of_color.py @@ -20,7 +20,7 @@ import re # noqa: F401 from typing import List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, conint, conlist, constr, validator -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field ANYOFCOLOR_ANY_OF_SCHEMAS = ["List[int]", "str"] @@ -36,7 +36,10 @@ class AnyOfColor(BaseModel): anyof_schema_2_validator: Optional[conlist(conint(strict=True, le=255, ge=0), max_items=4, min_items=4)] = Field(None, description="RGBA four element array with values 0-255.") # data type: str anyof_schema_3_validator: Optional[constr(strict=True, max_length=7, min_length=7)] = Field(None, description="Hex color string, such as #00FF00.") - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[List[int], str] + else: + actual_instance: Any any_of_schemas: List[str] = Field(ANYOFCOLOR_ANY_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/any_of_pig.py b/samples/openapi3/client/petstore/python/petstore_api/models/any_of_pig.py index 909d95d4d43..3e98a0089e2 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/any_of_pig.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/any_of_pig.py @@ -22,7 +22,7 @@ from typing import Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, validator from petstore_api.models.basque_pig import BasquePig from petstore_api.models.danish_pig import DanishPig -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field ANYOFPIG_ANY_OF_SCHEMAS = ["BasquePig", "DanishPig"] @@ -36,7 +36,10 @@ class AnyOfPig(BaseModel): anyof_schema_1_validator: Optional[BasquePig] = None # data type: DanishPig anyof_schema_2_validator: Optional[DanishPig] = None - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[BasquePig, DanishPig] + else: + actual_instance: Any any_of_schemas: List[str] = Field(ANYOFPIG_ANY_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/color.py b/samples/openapi3/client/petstore/python/petstore_api/models/color.py index 97049e5811c..06a756c16a8 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/color.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/color.py @@ -20,7 +20,7 @@ import re # noqa: F401 from typing import Any, List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, conint, conlist, constr, validator -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field COLOR_ONE_OF_SCHEMAS = ["List[int]", "str"] @@ -35,7 +35,10 @@ class Color(BaseModel): oneof_schema_2_validator: Optional[conlist(conint(strict=True, le=255, ge=0), max_items=4, min_items=4)] = Field(None, description="RGBA four element array with values 0-255.") # data type: str oneof_schema_3_validator: Optional[constr(strict=True, max_length=7, min_length=7)] = Field(None, description="Hex color string, such as #00FF00.") - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[List[int], str] + else: + actual_instance: Any one_of_schemas: List[str] = Field(COLOR_ONE_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/int_or_string.py b/samples/openapi3/client/petstore/python/petstore_api/models/int_or_string.py index 63293ee016d..558f6b5b3f5 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/int_or_string.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/int_or_string.py @@ -20,7 +20,7 @@ import re # noqa: F401 from typing import Any, List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, conint, validator -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field INTORSTRING_ONE_OF_SCHEMAS = ["int", "str"] @@ -33,7 +33,10 @@ class IntOrString(BaseModel): oneof_schema_1_validator: Optional[conint(strict=True, ge=10)] = None # data type: str oneof_schema_2_validator: Optional[StrictStr] = None - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[int, str] + else: + actual_instance: Any one_of_schemas: List[str] = Field(INTORSTRING_ONE_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/one_of_enum_string.py b/samples/openapi3/client/petstore/python/petstore_api/models/one_of_enum_string.py index ae674028175..43a35efbaa1 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/one_of_enum_string.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/one_of_enum_string.py @@ -22,7 +22,7 @@ from typing import Any, List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, validator from petstore_api.models.enum_string1 import EnumString1 from petstore_api.models.enum_string2 import EnumString2 -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field ONEOFENUMSTRING_ONE_OF_SCHEMAS = ["EnumString1", "EnumString2"] @@ -35,7 +35,10 @@ class OneOfEnumString(BaseModel): oneof_schema_1_validator: Optional[EnumString1] = None # data type: EnumString2 oneof_schema_2_validator: Optional[EnumString2] = None - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[EnumString1, EnumString2] + else: + actual_instance: Any one_of_schemas: List[str] = Field(ONEOFENUMSTRING_ONE_OF_SCHEMAS, const=True) class Config: diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/pig.py b/samples/openapi3/client/petstore/python/petstore_api/models/pig.py index dd7887ed432..68bede1d619 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/pig.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/pig.py @@ -22,7 +22,7 @@ from typing import Any, List, Optional from pydantic import BaseModel, Field, StrictStr, ValidationError, validator from petstore_api.models.basque_pig import BasquePig from petstore_api.models.danish_pig import DanishPig -from typing import Any, List +from typing import Union, Any, List, TYPE_CHECKING from pydantic import StrictStr, Field PIG_ONE_OF_SCHEMAS = ["BasquePig", "DanishPig"] @@ -35,7 +35,10 @@ class Pig(BaseModel): oneof_schema_1_validator: Optional[BasquePig] = None # data type: DanishPig oneof_schema_2_validator: Optional[DanishPig] = None - actual_instance: Any + if TYPE_CHECKING: + actual_instance: Union[BasquePig, DanishPig] + else: + actual_instance: Any one_of_schemas: List[str] = Field(PIG_ONE_OF_SCHEMAS, const=True) class Config: