[Python] Handle nullable list items (#17594)

* fix nullable elements

* update type info in docs

* update examples
This commit is contained in:
Huan-Cheng Chang
2024-01-13 04:29:22 +01:00
committed by GitHub
parent c6efe8810d
commit 968c6dc418
14 changed files with 49 additions and 16 deletions

View File

@@ -6,6 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**array_of_string** | **List[str]** | | [optional]
**array_of_nullable_float** | **List[Optional[float]]** | | [optional]
**array_array_of_integer** | **List[List[int]]** | | [optional]
**array_array_of_model** | **List[List[ReadOnlyFirst]]** | | [optional]

View File

@@ -13,8 +13,8 @@ Name | Type | Description | Notes
**date_prop** | **date** | | [optional]
**datetime_prop** | **datetime** | | [optional]
**array_nullable_prop** | **List[object]** | | [optional]
**array_and_items_nullable_prop** | **List[object]** | | [optional]
**array_items_nullable** | **List[object]** | | [optional]
**array_and_items_nullable_prop** | **List[Optional[object]]** | | [optional]
**array_items_nullable** | **List[Optional[object]]** | | [optional]
**object_nullable_prop** | **Dict[str, object]** | | [optional]
**object_and_items_nullable_prop** | **Dict[str, object]** | | [optional]
**object_items_nullable** | **Dict[str, object]** | | [optional]

View File

@@ -17,7 +17,7 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, Field, StrictInt, StrictStr
from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from petstore_api.models.read_only_first import ReadOnlyFirst
@@ -29,10 +29,11 @@ class ArrayTest(BaseModel):
ArrayTest
""" # noqa: E501
array_of_string: Optional[Annotated[List[StrictStr], Field(min_length=0, max_length=3)]] = None
array_of_nullable_float: Optional[List[Optional[StrictFloat]]] = None
array_array_of_integer: Optional[List[List[StrictInt]]] = None
array_array_of_model: Optional[List[List[ReadOnlyFirst]]] = None
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["array_of_string", "array_array_of_integer", "array_array_of_model"]
__properties: ClassVar[List[str]] = ["array_of_string", "array_of_nullable_float", "array_array_of_integer", "array_array_of_model"]
model_config = {
"populate_by_name": True,
@@ -102,6 +103,7 @@ class ArrayTest(BaseModel):
_obj = cls.model_validate({
"array_of_string": obj.get("array_of_string"),
"array_of_nullable_float": obj.get("array_of_nullable_float"),
"array_array_of_integer": obj.get("array_array_of_integer"),
"array_array_of_model": [
[ReadOnlyFirst.from_dict(_inner_item) for _inner_item in _item]

View File

@@ -35,8 +35,8 @@ class NullableClass(BaseModel):
date_prop: Optional[date] = None
datetime_prop: Optional[datetime] = None
array_nullable_prop: Optional[List[Dict[str, Any]]] = None
array_and_items_nullable_prop: Optional[List[Dict[str, Any]]] = None
array_items_nullable: Optional[List[Dict[str, Any]]] = None
array_and_items_nullable_prop: Optional[List[Optional[Dict[str, Any]]]] = None
array_items_nullable: Optional[List[Optional[Dict[str, Any]]]] = None
object_nullable_prop: Optional[Dict[str, Dict[str, Any]]] = None
object_and_items_nullable_prop: Optional[Dict[str, Dict[str, Any]]] = None
object_items_nullable: Optional[Dict[str, Dict[str, Any]]] = None