@@ -2817,7 +2817,8 @@ class TypedDictField(TypedDict, total=False):
28172817 validation_alias : Union [str , List [Union [str , int ]], List [List [Union [str , int ]]]]
28182818 serialization_alias : str
28192819 serialization_exclude : bool # default: False
2820- metadata : Dict [str , Any ]
2820+ serialization_exclude_if : Callable [[Any ], bool ] # default None
2821+ metadata : Any
28212822
28222823
28232824def typed_dict_field (
@@ -2827,7 +2828,8 @@ def typed_dict_field(
28272828 validation_alias : str | list [str | int ] | list [list [str | int ]] | None = None ,
28282829 serialization_alias : str | None = None ,
28292830 serialization_exclude : bool | None = None ,
2830- metadata : Dict [str , Any ] | None = None ,
2831+ serialization_exclude_if : Callable [[Any ], bool ] | None = None ,
2832+ metadata : Any = None ,
28312833) -> TypedDictField :
28322834 """
28332835 Returns a schema that matches a typed dict field, e.g.:
@@ -2844,6 +2846,7 @@ def typed_dict_field(
28442846 validation_alias: The alias(es) to use to find the field in the validation data
28452847 serialization_alias: The alias to use as a key when serializing
28462848 serialization_exclude: Whether to exclude the field when serializing
2849+ serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value.
28472850 metadata: Any other information you want to include with the schema, not used by pydantic-core
28482851 """
28492852 return _dict_not_none (
@@ -2853,6 +2856,7 @@ def typed_dict_field(
28532856 validation_alias = validation_alias ,
28542857 serialization_alias = serialization_alias ,
28552858 serialization_exclude = serialization_exclude ,
2859+ serialization_exclude_if = serialization_exclude_if ,
28562860 metadata = metadata ,
28572861 )
28582862
@@ -2943,6 +2947,7 @@ class ModelField(TypedDict, total=False):
29432947 validation_alias : Union [str , List [Union [str , int ]], List [List [Union [str , int ]]]]
29442948 serialization_alias : str
29452949 serialization_exclude : bool # default: False
2950+ serialization_exclude_if : Callable [[Any ], bool ] # default: None
29462951 frozen : bool
29472952 metadata : Dict [str , Any ]
29482953
@@ -2953,6 +2958,7 @@ def model_field(
29532958 validation_alias : str | list [str | int ] | list [list [str | int ]] | None = None ,
29542959 serialization_alias : str | None = None ,
29552960 serialization_exclude : bool | None = None ,
2961+ exclude_if : Callable [[Any ], bool ] | None = None ,
29562962 frozen : bool | None = None ,
29572963 metadata : Dict [str , Any ] | None = None ,
29582964) -> ModelField :
@@ -2970,6 +2976,7 @@ def model_field(
29702976 validation_alias: The alias(es) to use to find the field in the validation data
29712977 serialization_alias: The alias to use as a key when serializing
29722978 serialization_exclude: Whether to exclude the field when serializing
2979+ exclude_if: Callable that determines whether to exclude a field during serialization based on its value.
29732980 frozen: Whether the field is frozen
29742981 metadata: Any other information you want to include with the schema, not used by pydantic-core
29752982 """
@@ -2979,6 +2986,7 @@ def model_field(
29792986 validation_alias = validation_alias ,
29802987 serialization_alias = serialization_alias ,
29812988 serialization_exclude = serialization_exclude ,
2989+ exclude_if = exclude_if ,
29822990 frozen = frozen ,
29832991 metadata = metadata ,
29842992 )
@@ -3171,7 +3179,8 @@ class DataclassField(TypedDict, total=False):
31713179 validation_alias : Union [str , List [Union [str , int ]], List [List [Union [str , int ]]]]
31723180 serialization_alias : str
31733181 serialization_exclude : bool # default: False
3174- metadata : Dict [str , Any ]
3182+ serialization_exclude_if : Callable [[Any ], bool ] # default: None
3183+ metadata : Any
31753184
31763185
31773186def dataclass_field (
@@ -3184,7 +3193,8 @@ def dataclass_field(
31843193 validation_alias : str | list [str | int ] | list [list [str | int ]] | None = None ,
31853194 serialization_alias : str | None = None ,
31863195 serialization_exclude : bool | None = None ,
3187- metadata : Dict [str , Any ] | None = None ,
3196+ serialization_exclude_if : Callable [[Any ], bool ] | None = None ,
3197+ metadata : Any = None ,
31883198 frozen : bool | None = None ,
31893199) -> DataclassField :
31903200 """
@@ -3210,6 +3220,7 @@ def dataclass_field(
32103220 validation_alias: The alias(es) to use to find the field in the validation data
32113221 serialization_alias: The alias to use as a key when serializing
32123222 serialization_exclude: Whether to exclude the field when serializing
3223+ serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value.
32133224 metadata: Any other information you want to include with the schema, not used by pydantic-core
32143225 frozen: Whether the field is frozen
32153226 """
@@ -3223,6 +3234,7 @@ def dataclass_field(
32233234 validation_alias = validation_alias ,
32243235 serialization_alias = serialization_alias ,
32253236 serialization_exclude = serialization_exclude ,
3237+ serialization_exclude_if = serialization_exclude_if ,
32263238 metadata = metadata ,
32273239 frozen = frozen ,
32283240 )
0 commit comments