Skip to content

Commit f88a0d6

Browse files
python: Fix deserialization of UUID JSON type (#23295)
1 parent 054c65c commit f88a0d6

7 files changed

Lines changed: 21 additions & 0 deletions

File tree

modules/openapi-generator/src/main/resources/python/api_client.mustache

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class ApiClient:
6161
'date': datetime.date,
6262
'datetime': datetime.datetime,
6363
'decimal': decimal.Decimal,
64+
'UUID': uuid.UUID,
6465
'object': object,
6566
}
6667
_pool = None
@@ -475,6 +476,8 @@ class ApiClient:
475476
return self.__deserialize_datetime(data)
476477
elif klass is decimal.Decimal:
477478
return decimal.Decimal(data)
479+
elif klass is uuid.UUID:
480+
return uuid.UUID(data)
478481
elif issubclass(klass, Enum):
479482
return self.__deserialize_enum(data, klass)
480483
else:

samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class ApiClient:
6969
'date': datetime.date,
7070
'datetime': datetime.datetime,
7171
'decimal': decimal.Decimal,
72+
'UUID': uuid.UUID,
7273
'object': object,
7374
}
7475
_pool = None
@@ -468,6 +469,8 @@ def __deserialize(self, data, klass):
468469
return self.__deserialize_datetime(data)
469470
elif klass is decimal.Decimal:
470471
return decimal.Decimal(data)
472+
elif klass is uuid.UUID:
473+
return uuid.UUID(data)
471474
elif issubclass(klass, Enum):
472475
return self.__deserialize_enum(data, klass)
473476
else:

samples/client/echo_api/python/openapi_client/api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class ApiClient:
6969
'date': datetime.date,
7070
'datetime': datetime.datetime,
7171
'decimal': decimal.Decimal,
72+
'UUID': uuid.UUID,
7273
'object': object,
7374
}
7475
_pool = None
@@ -468,6 +469,8 @@ def __deserialize(self, data, klass):
468469
return self.__deserialize_datetime(data)
469470
elif klass is decimal.Decimal:
470471
return decimal.Decimal(data)
472+
elif klass is uuid.UUID:
473+
return uuid.UUID(data)
471474
elif issubclass(klass, Enum):
472475
return self.__deserialize_enum(data, klass)
473476
else:

samples/openapi3/client/petstore/python-aiohttp/petstore_api/api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class ApiClient:
6868
'date': datetime.date,
6969
'datetime': datetime.datetime,
7070
'decimal': decimal.Decimal,
71+
'UUID': uuid.UUID,
7172
'object': object,
7273
}
7374
_pool = None
@@ -470,6 +471,8 @@ def __deserialize(self, data, klass):
470471
return self.__deserialize_datetime(data)
471472
elif klass is decimal.Decimal:
472473
return decimal.Decimal(data)
474+
elif klass is uuid.UUID:
475+
return uuid.UUID(data)
473476
elif issubclass(klass, Enum):
474477
return self.__deserialize_enum(data, klass)
475478
else:

samples/openapi3/client/petstore/python-httpx/petstore_api/api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class ApiClient:
6868
'date': datetime.date,
6969
'datetime': datetime.datetime,
7070
'decimal': decimal.Decimal,
71+
'UUID': uuid.UUID,
7172
'object': object,
7273
}
7374
_pool = None
@@ -470,6 +471,8 @@ def __deserialize(self, data, klass):
470471
return self.__deserialize_datetime(data)
471472
elif klass is decimal.Decimal:
472473
return decimal.Decimal(data)
474+
elif klass is uuid.UUID:
475+
return uuid.UUID(data)
473476
elif issubclass(klass, Enum):
474477
return self.__deserialize_enum(data, klass)
475478
else:

samples/openapi3/client/petstore/python-lazyImports/petstore_api/api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class ApiClient:
6868
'date': datetime.date,
6969
'datetime': datetime.datetime,
7070
'decimal': decimal.Decimal,
71+
'UUID': uuid.UUID,
7172
'object': object,
7273
}
7374
_pool = None
@@ -467,6 +468,8 @@ def __deserialize(self, data, klass):
467468
return self.__deserialize_datetime(data)
468469
elif klass is decimal.Decimal:
469470
return decimal.Decimal(data)
471+
elif klass is uuid.UUID:
472+
return uuid.UUID(data)
470473
elif issubclass(klass, Enum):
471474
return self.__deserialize_enum(data, klass)
472475
else:

samples/openapi3/client/petstore/python/petstore_api/api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class ApiClient:
6868
'date': datetime.date,
6969
'datetime': datetime.datetime,
7070
'decimal': decimal.Decimal,
71+
'UUID': uuid.UUID,
7172
'object': object,
7273
}
7374
_pool = None
@@ -467,6 +468,8 @@ def __deserialize(self, data, klass):
467468
return self.__deserialize_datetime(data)
468469
elif klass is decimal.Decimal:
469470
return decimal.Decimal(data)
471+
elif klass is uuid.UUID:
472+
return uuid.UUID(data)
470473
elif issubclass(klass, Enum):
471474
return self.__deserialize_enum(data, klass)
472475
else:

0 commit comments

Comments
 (0)