Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2024,7 +2024,8 @@ private PythonType dateType(IJsonSchemaValidationProperties cp) {
}

private PythonType uuidType(IJsonSchemaValidationProperties cp) {
return new PythonType(cp.getDataType());
moduleImports.add("uuid", "UUID");
return new PythonType("UUID");
}

private PythonType modelType(IJsonSchemaValidationProperties cp) {
Expand All @@ -2051,6 +2052,8 @@ private PythonType fromCommon(IJsonSchemaValidationProperties cp) {
return arrayType(cp);
} else if (cp.getIsMap() || cp.getIsFreeFormObject()) {
return mapType(cp);
} else if (cp.getIsUuid()) {
return uuidType(cp);
} else if (cp.getIsString()) {
return stringType(cp);
} else if (cp.getIsNumber() || cp.getIsFloat() || cp.getIsDouble()) {
Expand All @@ -2067,8 +2070,6 @@ private PythonType fromCommon(IJsonSchemaValidationProperties cp) {
return anyType(cp);
} else if (cp.getIsDate() || cp.getIsDateTime()) {
return dateType(cp);
} else if (cp.getIsUuid()) {
return uuidType(cp);
}

return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import mimetypes
import os
import re
import tempfile
import uuid

from urllib.parse import quote
from typing import Tuple, Optional, List, Dict, Union
Expand Down Expand Up @@ -365,6 +366,8 @@ class ApiClient:
return obj.get_secret_value()
elif isinstance(obj, self.PRIMITIVE_TYPES):
return obj
elif isinstance(obj, uuid.UUID):
return str(obj)
elif isinstance(obj, list):
return [
self.sanitize_for_serialization(sub_obj) for sub_obj in obj
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import os
import re
import tempfile
import uuid

from urllib.parse import quote
from typing import Tuple, Optional, List, Dict, Union
Expand Down Expand Up @@ -357,6 +358,8 @@ def sanitize_for_serialization(self, obj):
return obj.get_secret_value()
elif isinstance(obj, self.PRIMITIVE_TYPES):
return obj
elif isinstance(obj, uuid.UUID):
return str(obj)
elif isinstance(obj, list):
return [
self.sanitize_for_serialization(sub_obj) for sub_obj in obj
Expand Down
3 changes: 3 additions & 0 deletions samples/client/echo_api/python/openapi_client/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import os
import re
import tempfile
import uuid

from urllib.parse import quote
from typing import Tuple, Optional, List, Dict, Union
Expand Down Expand Up @@ -357,6 +358,8 @@ def sanitize_for_serialization(self, obj):
return obj.get_secret_value()
elif isinstance(obj, self.PRIMITIVE_TYPES):
return obj
elif isinstance(obj, uuid.UUID):
return str(obj)
elif isinstance(obj, list):
return [
self.sanitize_for_serialization(sub_obj) for sub_obj in obj
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr, field_validator
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
from uuid import UUID
from petstore_api.models.client import Client
from petstore_api.models.enum_class import EnumClass
from petstore_api.models.file_schema_test_class import FileSchemaTestClass
Expand Down Expand Up @@ -4913,7 +4914,7 @@ def _fake_return_string_serialize(
@validate_call
async def fake_uuid_example(
self,
uuid_example: Annotated[StrictStr, Field(description="uuid example")],
uuid_example: Annotated[UUID, Field(description="uuid example")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Expand Down Expand Up @@ -4979,7 +4980,7 @@ async def fake_uuid_example(
@validate_call
async def fake_uuid_example_with_http_info(
self,
uuid_example: Annotated[StrictStr, Field(description="uuid example")],
uuid_example: Annotated[UUID, Field(description="uuid example")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Expand Down Expand Up @@ -5045,7 +5046,7 @@ async def fake_uuid_example_with_http_info(
@validate_call
async def fake_uuid_example_without_preload_content(
self,
uuid_example: Annotated[StrictStr, Field(description="uuid example")],
uuid_example: Annotated[UUID, Field(description="uuid example")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import os
import re
import tempfile
import uuid

from urllib.parse import quote
from typing import Tuple, Optional, List, Dict, Union
Expand Down Expand Up @@ -359,6 +360,8 @@ def sanitize_for_serialization(self, obj):
return obj.get_secret_value()
elif isinstance(obj, self.PRIMITIVE_TYPES):
return obj
elif isinstance(obj, uuid.UUID):
return str(obj)
elif isinstance(obj, list):
return [
self.sanitize_for_serialization(sub_obj) for sub_obj in obj
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBytes, StrictInt, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self

Expand All @@ -42,7 +43,7 @@ class FormatTest(BaseModel):
binary: Optional[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]]] = None
var_date: date = Field(alias="date")
date_time: Optional[datetime] = Field(default=None, alias="dateTime")
uuid: Optional[StrictStr] = None
uuid: Optional[UUID] = None
password: Annotated[str, Field(min_length=10, strict=True, max_length=64)]
pattern_with_digits: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="A string that is a 10 digit number. Can have leading zeros.")
pattern_with_digits_and_delimiter: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
import json

from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from petstore_api.models.animal import Animal
from typing import Optional, Set
from typing_extensions import Self
Expand All @@ -28,7 +29,7 @@ class MixedPropertiesAndAdditionalPropertiesClass(BaseModel):
"""
MixedPropertiesAndAdditionalPropertiesClass
""" # noqa: E501
uuid: Optional[StrictStr] = None
uuid: Optional[UUID] = None
date_time: Optional[datetime] = Field(default=None, alias="dateTime")
map: Optional[Dict[str, Animal]] = None
__properties: ClassVar[List[str]] = ["uuid", "dateTime", "map"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@
import re # noqa: F401
import json

from pydantic import BaseModel, ConfigDict, StrictStr
from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from petstore_api.models.task_activity import TaskActivity
from typing import Optional, Set
from typing_extensions import Self
Expand All @@ -27,7 +28,7 @@ class Task(BaseModel):
"""
Used to test oneOf enums with only one string value.
""" # noqa: E501
id: StrictStr
id: UUID
activity: TaskActivity
__properties: ClassVar[List[str]] = ["id", "activity"]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from pydantic import Field, StrictBool, StrictBytes, StrictFloat, StrictInt, StrictStr, field_validator
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
from uuid import UUID
from petstore_api.models.client import Client
from petstore_api.models.enum_class import EnumClass
from petstore_api.models.file_schema_test_class import FileSchemaTestClass
Expand Down Expand Up @@ -4913,7 +4914,7 @@ def _fake_return_string_serialize(
@validate_call
def fake_uuid_example(
self,
uuid_example: Annotated[StrictStr, Field(description="uuid example")],
uuid_example: Annotated[UUID, Field(description="uuid example")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Expand Down Expand Up @@ -4979,7 +4980,7 @@ def fake_uuid_example(
@validate_call
def fake_uuid_example_with_http_info(
self,
uuid_example: Annotated[StrictStr, Field(description="uuid example")],
uuid_example: Annotated[UUID, Field(description="uuid example")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Expand Down Expand Up @@ -5045,7 +5046,7 @@ def fake_uuid_example_with_http_info(
@validate_call
def fake_uuid_example_without_preload_content(
self,
uuid_example: Annotated[StrictStr, Field(description="uuid example")],
uuid_example: Annotated[UUID, Field(description="uuid example")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import os
import re
import tempfile
import uuid

from urllib.parse import quote
from typing import Tuple, Optional, List, Dict, Union
Expand Down Expand Up @@ -356,6 +357,8 @@ def sanitize_for_serialization(self, obj):
return obj.get_secret_value()
elif isinstance(obj, self.PRIMITIVE_TYPES):
return obj
elif isinstance(obj, uuid.UUID):
return str(obj)
elif isinstance(obj, list):
return [
self.sanitize_for_serialization(sub_obj) for sub_obj in obj
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBytes, StrictInt, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self

Expand All @@ -42,7 +43,7 @@ class FormatTest(BaseModel):
binary: Optional[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]]] = None
var_date: date = Field(alias="date")
date_time: Optional[datetime] = Field(default=None, alias="dateTime")
uuid: Optional[StrictStr] = None
uuid: Optional[UUID] = None
password: Annotated[str, Field(min_length=10, strict=True, max_length=64)]
pattern_with_digits: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="A string that is a 10 digit number. Can have leading zeros.")
pattern_with_digits_and_delimiter: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
import json

from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from petstore_api.models.animal import Animal
from typing import Optional, Set
from typing_extensions import Self
Expand All @@ -28,7 +29,7 @@ class MixedPropertiesAndAdditionalPropertiesClass(BaseModel):
"""
MixedPropertiesAndAdditionalPropertiesClass
""" # noqa: E501
uuid: Optional[StrictStr] = None
uuid: Optional[UUID] = None
date_time: Optional[datetime] = Field(default=None, alias="dateTime")
map: Optional[Dict[str, Animal]] = None
additional_properties: Dict[str, Any] = {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@
import re # noqa: F401
import json

from pydantic import BaseModel, ConfigDict, StrictStr
from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from petstore_api.models.task_activity import TaskActivity
from typing import Optional, Set
from typing_extensions import Self
Expand All @@ -27,7 +28,7 @@ class Task(BaseModel):
"""
Used to test oneOf enums with only one string value.
""" # noqa: E501
id: StrictStr
id: UUID
activity: TaskActivity
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["id", "activity"]
Expand Down
Loading