@@ -2817,7 +2817,8 @@ class TypedDictField(TypedDict, total=False):
2817
2817
validation_alias : Union [str , List [Union [str , int ]], List [List [Union [str , int ]]]]
2818
2818
serialization_alias : str
2819
2819
serialization_exclude : bool # default: False
2820
- metadata : Dict [str , Any ]
2820
+ exclude_if : Callable [[Any ], bool ] # default None
2821
+ metadata : Any
2821
2822
2822
2823
2823
2824
def typed_dict_field (
@@ -2827,7 +2828,8 @@ def typed_dict_field(
2827
2828
validation_alias : str | list [str | int ] | list [list [str | int ]] | None = None ,
2828
2829
serialization_alias : str | None = None ,
2829
2830
serialization_exclude : bool | None = None ,
2830
- metadata : Dict [str , Any ] | None = None ,
2831
+ exclude_if : Callable [[Any ], bool ] | None = None ,
2832
+ metadata : Any = None ,
2831
2833
) -> TypedDictField :
2832
2834
"""
2833
2835
Returns a schema that matches a typed dict field, e.g.:
@@ -2844,6 +2846,7 @@ def typed_dict_field(
2844
2846
validation_alias: The alias(es) to use to find the field in the validation data
2845
2847
serialization_alias: The alias to use as a key when serializing
2846
2848
serialization_exclude: Whether to exclude the field when serializing
2849
+ exclude_if: Callable that determines whether to exclude a field during serialization based on its value.
2847
2850
metadata: Any other information you want to include with the schema, not used by pydantic-core
2848
2851
"""
2849
2852
return _dict_not_none (
@@ -2853,6 +2856,7 @@ def typed_dict_field(
2853
2856
validation_alias = validation_alias ,
2854
2857
serialization_alias = serialization_alias ,
2855
2858
serialization_exclude = serialization_exclude ,
2859
+ exclude_if = exclude_if ,
2856
2860
metadata = metadata ,
2857
2861
)
2858
2862
@@ -2943,6 +2947,7 @@ class ModelField(TypedDict, total=False):
2943
2947
validation_alias : Union [str , List [Union [str , int ]], List [List [Union [str , int ]]]]
2944
2948
serialization_alias : str
2945
2949
serialization_exclude : bool # default: False
2950
+ exclude_if : Callable [[Any ], bool ] # default: None
2946
2951
frozen : bool
2947
2952
metadata : Dict [str , Any ]
2948
2953
@@ -2953,6 +2958,7 @@ def model_field(
2953
2958
validation_alias : str | list [str | int ] | list [list [str | int ]] | None = None ,
2954
2959
serialization_alias : str | None = None ,
2955
2960
serialization_exclude : bool | None = None ,
2961
+ exclude_if : Callable [[Any ], bool ] | None = None ,
2956
2962
frozen : bool | None = None ,
2957
2963
metadata : Dict [str , Any ] | None = None ,
2958
2964
) -> ModelField :
@@ -2970,6 +2976,7 @@ def model_field(
2970
2976
validation_alias: The alias(es) to use to find the field in the validation data
2971
2977
serialization_alias: The alias to use as a key when serializing
2972
2978
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.
2973
2980
frozen: Whether the field is frozen
2974
2981
metadata: Any other information you want to include with the schema, not used by pydantic-core
2975
2982
"""
@@ -2979,6 +2986,7 @@ def model_field(
2979
2986
validation_alias = validation_alias ,
2980
2987
serialization_alias = serialization_alias ,
2981
2988
serialization_exclude = serialization_exclude ,
2989
+ exclude_if = exclude_if ,
2982
2990
frozen = frozen ,
2983
2991
metadata = metadata ,
2984
2992
)
@@ -3171,7 +3179,8 @@ class DataclassField(TypedDict, total=False):
3171
3179
validation_alias : Union [str , List [Union [str , int ]], List [List [Union [str , int ]]]]
3172
3180
serialization_alias : str
3173
3181
serialization_exclude : bool # default: False
3174
- metadata : Dict [str , Any ]
3182
+ exclude_if : Callable [[Any ], bool ] # default: None
3183
+ metadata : Any
3175
3184
3176
3185
3177
3186
def dataclass_field (
@@ -3184,7 +3193,8 @@ def dataclass_field(
3184
3193
validation_alias : str | list [str | int ] | list [list [str | int ]] | None = None ,
3185
3194
serialization_alias : str | None = None ,
3186
3195
serialization_exclude : bool | None = None ,
3187
- metadata : Dict [str , Any ] | None = None ,
3196
+ exclude_if : Callable [[Any ], bool ] | None = None ,
3197
+ metadata : Any = None ,
3188
3198
frozen : bool | None = None ,
3189
3199
) -> DataclassField :
3190
3200
"""
@@ -3210,6 +3220,7 @@ def dataclass_field(
3210
3220
validation_alias: The alias(es) to use to find the field in the validation data
3211
3221
serialization_alias: The alias to use as a key when serializing
3212
3222
serialization_exclude: Whether to exclude the field when serializing
3223
+ exclude_if: Callable that determines whether to exclude a field during serialization based on its value.
3213
3224
metadata: Any other information you want to include with the schema, not used by pydantic-core
3214
3225
frozen: Whether the field is frozen
3215
3226
"""
@@ -3223,6 +3234,7 @@ def dataclass_field(
3223
3234
validation_alias = validation_alias ,
3224
3235
serialization_alias = serialization_alias ,
3225
3236
serialization_exclude = serialization_exclude ,
3237
+ exclude_if = exclude_if ,
3226
3238
metadata = metadata ,
3227
3239
frozen = frozen ,
3228
3240
)
0 commit comments