File tree Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -206,7 +206,7 @@ impl GeneralFieldsSerializer {
206
206
207
207
if extra. check . enabled ( )
208
208
// If any of these are true we can't count fields
209
- && !( extra. exclude_defaults || extra. exclude_unset || extra. exclude_none )
209
+ && !( extra. exclude_defaults || extra. exclude_unset || extra. exclude_none || exclude . is_some ( ) )
210
210
// Check for missing fields, we can't have extra fields here
211
211
&& self . required_fields > used_req_fields
212
212
{
Original file line number Diff line number Diff line change 1
1
import dataclasses
2
2
import json
3
3
import platform
4
+ import warnings
4
5
from random import randint
5
6
from typing import Any , ClassVar , Dict
6
7
@@ -1080,3 +1081,23 @@ class Model:
1080
1081
m .__pydantic_extra__ = {'extra' : 'extra' }
1081
1082
1082
1083
assert s .to_python (m ) == {'extra' : 'extra bam!' }
1084
+
1085
+
1086
+ def test_no_warn_on_exclude () -> None :
1087
+ warnings .simplefilter ('error' )
1088
+
1089
+ s = SchemaSerializer (
1090
+ core_schema .model_schema (
1091
+ BasicModel ,
1092
+ core_schema .model_fields_schema (
1093
+ {
1094
+ 'a' : core_schema .model_field (core_schema .int_schema ()),
1095
+ 'b' : core_schema .model_field (core_schema .int_schema ()),
1096
+ }
1097
+ ),
1098
+ )
1099
+ )
1100
+
1101
+ value = BasicModel (a = 0 , b = 1 )
1102
+ assert s .to_python (value , exclude = {'b' }) == {'a' : 0 }
1103
+ assert s .to_python (value , mode = 'json' , exclude = {'b' }) == {'a' : 0 }
You can’t perform that action at this time.
0 commit comments