@@ -335,7 +335,7 @@ def validate_null_type(cls, value: Any) -> Any: # noqa: N805
335335 properties : Optional [dict [str , Union [JsonSchemaObject , bool ]]] = None # noqa: UP007, UP045
336336 required : list [str ] = [] # noqa: RUF012
337337 ref : Optional [str ] = Field (default = None , alias = "$ref" ) # noqa: UP045
338- nullable : Optional [bool ] = False # noqa: UP045
338+ nullable : Optional [bool ] = None # noqa: UP045
339339 x_enum_varnames : list [str ] = Field (default_factory = list , alias = "x-enum-varnames" )
340340 x_enum_names : list [str ] = Field (default_factory = list , alias = "x-enumNames" )
341341 description : Optional [str ] = None # noqa: UP045
@@ -1034,7 +1034,9 @@ def get_object_field( # noqa: PLR0913
10341034 required = required ,
10351035 alias = alias ,
10361036 constraints = constraints ,
1037- nullable = field .nullable if self .strict_nullable and (field .has_default or required ) else None ,
1037+ nullable = field .nullable
1038+ if self .strict_nullable and field .nullable is not None
1039+ else (False if self .strict_nullable and (field .has_default or required ) else None ),
10381040 strip_default_none = self .strip_default_none ,
10391041 extras = self .get_field_extras (field ),
10401042 use_annotated = self .use_annotated ,
@@ -1081,7 +1083,9 @@ def get_ref_data_type(self, ref: str) -> DataType:
10811083 reference = self .model_resolver .add_ref (ref )
10821084 ref_schema = self ._load_ref_schema_object (ref )
10831085 is_optional = (
1084- ref_schema .type_has_null or ref_schema .type == "null" or (self .strict_nullable and ref_schema .nullable )
1086+ ref_schema .type_has_null
1087+ or ref_schema .type == "null"
1088+ or (self .strict_nullable and ref_schema .nullable is True )
10851089 )
10861090 return self .data_type (reference = reference , is_optional = is_optional )
10871091
@@ -2582,7 +2586,9 @@ def parse_root_type( # noqa: PLR0912
25822586 default = obj .default ,
25832587 required = required ,
25842588 constraints = obj .dict () if self .field_constraints else {},
2585- nullable = obj .nullable if self .strict_nullable else None ,
2589+ nullable = obj .nullable
2590+ if self .strict_nullable and obj .nullable is not None
2591+ else (False if self .strict_nullable and obj .has_default else None ),
25862592 strip_default_none = self .strip_default_none ,
25872593 extras = self .get_field_extras (obj ),
25882594 use_annotated = self .use_annotated ,
0 commit comments