Skip to content

Commit 5dd3864

Browse files
committed
refactor: argument nillable is made optional.
1 parent 485cf62 commit 5dd3864

File tree

4 files changed

+10
-10
lines changed

4 files changed

+10
-10
lines changed

pydantic_xml/fields.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class XmlEntityInfoP(typing.Protocol):
3636
path: Optional[str]
3737
ns: Optional[str]
3838
nsmap: Optional[NsMap]
39-
nillable: bool
39+
nillable: Optional[bool]
4040
wrapped: Optional['XmlEntityInfoP']
4141

4242

@@ -54,7 +54,7 @@ def __init__(
5454
path: Optional[str] = None,
5555
ns: Optional[str] = None,
5656
nsmap: Optional[NsMap] = None,
57-
nillable: bool = False,
57+
nillable: Optional[bool] = None,
5858
wrapped: Optional[pd.fields.FieldInfo] = None,
5959
**kwargs: Any,
6060
):
@@ -113,7 +113,7 @@ def element(
113113
tag: Optional[str] = None,
114114
ns: Optional[str] = None,
115115
nsmap: Optional[NsMap] = None,
116-
nillable: bool = False,
116+
nillable: Optional[bool] = None,
117117
*,
118118
default: Any = pdc.PydanticUndefined,
119119
default_factory: Optional[Callable[[], Any]] = _Unset,
@@ -179,7 +179,7 @@ class ComputedXmlEntityInfo(pd.fields.ComputedFieldInfo):
179179
path: Optional[str]
180180
ns: Optional[str]
181181
nsmap: Optional[NsMap]
182-
nillable: bool
182+
nillable: Optional[bool]
183183
wrapped: Optional[XmlEntityInfoP] # to be compliant with XmlEntityInfoP protocol
184184

185185
def __post_init__(self) -> None:
@@ -199,7 +199,7 @@ def decorator(prop: Any) -> Any:
199199
path = kwargs.pop('path', None)
200200
ns = kwargs.pop('ns', None)
201201
nsmap = kwargs.pop('nsmap', None)
202-
nillable = kwargs.pop('nillable', False)
202+
nillable = kwargs.pop('nillable', None)
203203

204204
descriptor_proxy = pd.computed_field(**kwargs)(prop)
205205
descriptor_proxy.decorator_info = ComputedXmlEntityInfo(
@@ -245,7 +245,7 @@ def computed_element(
245245
tag: Optional[str] = None,
246246
ns: Optional[str] = None,
247247
nsmap: Optional[NsMap] = None,
248-
nillable: bool = False,
248+
nillable: Optional[bool] = None,
249249
**kwargs: Any,
250250
) -> Union[PropertyT, Callable[[PropertyT], PropertyT]]:
251251
"""

pydantic_xml/serializers/factories/model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ def __init__(
357357
nsmap: Optional[NsMap],
358358
search_mode: SearchMode,
359359
computed: bool,
360-
nillable: bool,
360+
nillable: Optional[bool],
361361
):
362362
self._model = model
363363
self._element_name = QName.from_alias(tag=name, ns=ns, nsmap=nsmap).uri

pydantic_xml/serializers/factories/primitive.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def from_core_schema(cls, schema: PrimitiveTypeSchema, ctx: Serializer.Context)
3636

3737
return cls(computed, nillable)
3838

39-
def __init__(self, computed: bool, nillable: bool):
39+
def __init__(self, computed: bool, nillable: Optional[bool]):
4040
self._computed = computed
4141
self._nillable = nillable
4242

@@ -163,7 +163,7 @@ def __init__(
163163
nsmap: Optional[NsMap],
164164
search_mode: SearchMode,
165165
computed: bool,
166-
nillable: bool,
166+
nillable: Optional[bool],
167167
):
168168
super().__init__(computed, nillable)
169169

pydantic_xml/serializers/serializer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ def entity_nsmap(self) -> Optional[NsMap]:
133133
return self.entity_info.nsmap if self.entity_info is not None else None
134134

135135
@property
136-
def nillable(self) -> bool:
136+
def nillable(self) -> Optional[bool]:
137137
return self.entity_info.nillable if self.entity_info is not None else False
138138

139139
@property

0 commit comments

Comments
 (0)