@@ -2839,6 +2839,7 @@ class TypedDictField(TypedDict, total=False):
28392839 serialization_alias : str
28402840 serialization_exclude : bool # default: False
28412841 metadata : dict [str , Any ]
2842+ serialization_exclude_if : Callable [[Any ], bool ] # default None
28422843
28432844
28442845def typed_dict_field (
@@ -2849,6 +2850,7 @@ def typed_dict_field(
28492850 serialization_alias : str | None = None ,
28502851 serialization_exclude : bool | None = None ,
28512852 metadata : dict [str , Any ] | None = None ,
2853+ serialization_exclude_if : Callable [[Any ], bool ] | None = None ,
28522854) -> TypedDictField :
28532855 """
28542856 Returns a schema that matches a typed dict field, e.g.:
@@ -2865,6 +2867,7 @@ def typed_dict_field(
28652867 validation_alias: The alias(es) to use to find the field in the validation data
28662868 serialization_alias: The alias to use as a key when serializing
28672869 serialization_exclude: Whether to exclude the field when serializing
2870+ serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value.
28682871 metadata: Any other information you want to include with the schema, not used by pydantic-core
28692872 """
28702873 return _dict_not_none (
@@ -2874,6 +2877,7 @@ def typed_dict_field(
28742877 validation_alias = validation_alias ,
28752878 serialization_alias = serialization_alias ,
28762879 serialization_exclude = serialization_exclude ,
2880+ serialization_exclude_if = serialization_exclude_if ,
28772881 metadata = metadata ,
28782882 )
28792883
@@ -2965,6 +2969,7 @@ class ModelField(TypedDict, total=False):
29652969 validation_alias : Union [str , list [Union [str , int ]], list [list [Union [str , int ]]]]
29662970 serialization_alias : str
29672971 serialization_exclude : bool # default: False
2972+ serialization_exclude_if : Callable [[Any ], bool ] # default: None
29682973 frozen : bool
29692974 metadata : dict [str , Any ]
29702975
@@ -2975,6 +2980,7 @@ def model_field(
29752980 validation_alias : str | list [str | int ] | list [list [str | int ]] | None = None ,
29762981 serialization_alias : str | None = None ,
29772982 serialization_exclude : bool | None = None ,
2983+ exclude_if : Callable [[Any ], bool ] | None = None ,
29782984 frozen : bool | None = None ,
29792985 metadata : dict [str , Any ] | None = None ,
29802986) -> ModelField :
@@ -2992,6 +2998,7 @@ def model_field(
29922998 validation_alias: The alias(es) to use to find the field in the validation data
29932999 serialization_alias: The alias to use as a key when serializing
29943000 serialization_exclude: Whether to exclude the field when serializing
3001+ exclude_if: Callable that determines whether to exclude a field during serialization based on its value.
29953002 frozen: Whether the field is frozen
29963003 metadata: Any other information you want to include with the schema, not used by pydantic-core
29973004 """
@@ -3001,6 +3008,7 @@ def model_field(
30013008 validation_alias = validation_alias ,
30023009 serialization_alias = serialization_alias ,
30033010 serialization_exclude = serialization_exclude ,
3011+ exclude_if = exclude_if ,
30043012 frozen = frozen ,
30053013 metadata = metadata ,
30063014 )
@@ -3193,6 +3201,7 @@ class DataclassField(TypedDict, total=False):
31933201 serialization_alias : str
31943202 serialization_exclude : bool # default: False
31953203 metadata : dict [str , Any ]
3204+ serialization_exclude_if : Callable [[Any ], bool ] # default: None
31963205
31973206
31983207def dataclass_field (
@@ -3206,6 +3215,7 @@ def dataclass_field(
32063215 serialization_alias : str | None = None ,
32073216 serialization_exclude : bool | None = None ,
32083217 metadata : dict [str , Any ] | None = None ,
3218+ serialization_exclude_if : Callable [[Any ], bool ] | None = None ,
32093219 frozen : bool | None = None ,
32103220) -> DataclassField :
32113221 """
@@ -3231,6 +3241,7 @@ def dataclass_field(
32313241 validation_alias: The alias(es) to use to find the field in the validation data
32323242 serialization_alias: The alias to use as a key when serializing
32333243 serialization_exclude: Whether to exclude the field when serializing
3244+ serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value.
32343245 metadata: Any other information you want to include with the schema, not used by pydantic-core
32353246 frozen: Whether the field is frozen
32363247 """
@@ -3244,6 +3255,7 @@ def dataclass_field(
32443255 validation_alias = validation_alias ,
32453256 serialization_alias = serialization_alias ,
32463257 serialization_exclude = serialization_exclude ,
3258+ serialization_exclude_if = serialization_exclude_if ,
32473259 metadata = metadata ,
32483260 frozen = frozen ,
32493261 )
0 commit comments