@@ -2897,6 +2897,7 @@ class TypedDictField(TypedDict, total=False):
2897
2897
serialization_alias : str
2898
2898
serialization_exclude : bool # default: False
2899
2899
metadata : dict [str , Any ]
2900
+ serialization_exclude_if : Callable [[Any ], bool ] # default None
2900
2901
2901
2902
2902
2903
def typed_dict_field (
@@ -2907,6 +2908,7 @@ def typed_dict_field(
2907
2908
serialization_alias : str | None = None ,
2908
2909
serialization_exclude : bool | None = None ,
2909
2910
metadata : dict [str , Any ] | None = None ,
2911
+ serialization_exclude_if : Callable [[Any ], bool ] | None = None ,
2910
2912
) -> TypedDictField :
2911
2913
"""
2912
2914
Returns a schema that matches a typed dict field, e.g.:
@@ -2923,6 +2925,7 @@ def typed_dict_field(
2923
2925
validation_alias: The alias(es) to use to find the field in the validation data
2924
2926
serialization_alias: The alias to use as a key when serializing
2925
2927
serialization_exclude: Whether to exclude the field when serializing
2928
+ serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value.
2926
2929
metadata: Any other information you want to include with the schema, not used by pydantic-core
2927
2930
"""
2928
2931
return _dict_not_none (
@@ -2932,6 +2935,7 @@ def typed_dict_field(
2932
2935
validation_alias = validation_alias ,
2933
2936
serialization_alias = serialization_alias ,
2934
2937
serialization_exclude = serialization_exclude ,
2938
+ serialization_exclude_if = serialization_exclude_if ,
2935
2939
metadata = metadata ,
2936
2940
)
2937
2941
@@ -3023,6 +3027,7 @@ class ModelField(TypedDict, total=False):
3023
3027
validation_alias : Union [str , list [Union [str , int ]], list [list [Union [str , int ]]]]
3024
3028
serialization_alias : str
3025
3029
serialization_exclude : bool # default: False
3030
+ serialization_exclude_if : Callable [[Any ], bool ] # default: None
3026
3031
frozen : bool
3027
3032
metadata : dict [str , Any ]
3028
3033
@@ -3033,6 +3038,7 @@ def model_field(
3033
3038
validation_alias : str | list [str | int ] | list [list [str | int ]] | None = None ,
3034
3039
serialization_alias : str | None = None ,
3035
3040
serialization_exclude : bool | None = None ,
3041
+ serialization_exclude_if : Callable [[Any ], bool ] | None = None ,
3036
3042
frozen : bool | None = None ,
3037
3043
metadata : dict [str , Any ] | None = None ,
3038
3044
) -> ModelField :
@@ -3050,6 +3056,7 @@ def model_field(
3050
3056
validation_alias: The alias(es) to use to find the field in the validation data
3051
3057
serialization_alias: The alias to use as a key when serializing
3052
3058
serialization_exclude: Whether to exclude the field when serializing
3059
+ serialization_exclude_if: A Callable that determines whether to exclude a field during serialization based on its value.
3053
3060
frozen: Whether the field is frozen
3054
3061
metadata: Any other information you want to include with the schema, not used by pydantic-core
3055
3062
"""
@@ -3059,6 +3066,7 @@ def model_field(
3059
3066
validation_alias = validation_alias ,
3060
3067
serialization_alias = serialization_alias ,
3061
3068
serialization_exclude = serialization_exclude ,
3069
+ serialization_exclude_if = serialization_exclude_if ,
3062
3070
frozen = frozen ,
3063
3071
metadata = metadata ,
3064
3072
)
@@ -3251,6 +3259,7 @@ class DataclassField(TypedDict, total=False):
3251
3259
serialization_alias : str
3252
3260
serialization_exclude : bool # default: False
3253
3261
metadata : dict [str , Any ]
3262
+ serialization_exclude_if : Callable [[Any ], bool ] # default: None
3254
3263
3255
3264
3256
3265
def dataclass_field (
@@ -3264,6 +3273,7 @@ def dataclass_field(
3264
3273
serialization_alias : str | None = None ,
3265
3274
serialization_exclude : bool | None = None ,
3266
3275
metadata : dict [str , Any ] | None = None ,
3276
+ serialization_exclude_if : Callable [[Any ], bool ] | None = None ,
3267
3277
frozen : bool | None = None ,
3268
3278
) -> DataclassField :
3269
3279
"""
@@ -3289,6 +3299,7 @@ def dataclass_field(
3289
3299
validation_alias: The alias(es) to use to find the field in the validation data
3290
3300
serialization_alias: The alias to use as a key when serializing
3291
3301
serialization_exclude: Whether to exclude the field when serializing
3302
+ serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value.
3292
3303
metadata: Any other information you want to include with the schema, not used by pydantic-core
3293
3304
frozen: Whether the field is frozen
3294
3305
"""
@@ -3302,6 +3313,7 @@ def dataclass_field(
3302
3313
validation_alias = validation_alias ,
3303
3314
serialization_alias = serialization_alias ,
3304
3315
serialization_exclude = serialization_exclude ,
3316
+ serialization_exclude_if = serialization_exclude_if ,
3305
3317
metadata = metadata ,
3306
3318
frozen = frozen ,
3307
3319
)
0 commit comments