File tree Expand file tree Collapse file tree 2 files changed +0
-46
lines changed Expand file tree Collapse file tree 2 files changed +0
-46
lines changed Original file line number Diff line number Diff line change @@ -757,8 +757,6 @@ def _field_for_annotated_type(
757
757
)
758
758
# Support `partial(mf.List, mf.String)`
759
759
or (isinstance (arg , partial ) and _is_marshmallow_field (arg .func ))
760
- # Support `lambda *args, **kwargs: mf.List(mf.String, *args, **kwargs)`
761
- or (_is_callable_marshmallow_field (arg ))
762
760
]
763
761
if marshmallow_annotations :
764
762
if len (marshmallow_annotations ) > 1 :
@@ -1087,18 +1085,6 @@ def _is_marshmallow_field(obj) -> bool:
1087
1085
) or isinstance (obj , marshmallow .fields .Field )
1088
1086
1089
1087
1090
- def _is_callable_marshmallow_field (obj ) -> bool :
1091
- """Checks if the object is a callable and if the callable returns a marshmallow field"""
1092
- if callable (obj ):
1093
- try :
1094
- potential_field = obj ()
1095
- return _is_marshmallow_field (potential_field )
1096
- except Exception :
1097
- return False
1098
-
1099
- return False
1100
-
1101
-
1102
1088
def NewType (
1103
1089
name : str ,
1104
1090
typ : Type [_U ],
Original file line number Diff line number Diff line change @@ -66,35 +66,3 @@ class AnnotatedValue:
66
66
67
67
with self .assertRaises (marshmallow .exceptions .ValidationError ):
68
68
schema .load ({"emails" : "notavalidemail" })
69
-
70
- def test_annotated_callable_field (self ) -> None :
71
- """
72
- NewType allowed us to specify a lambda or partial because there was no type inspection.
73
- But with Annotated we do type inspection. While we can't reliably do type inspection on a callable,
74
- i.e.: lambda, we can call it and check if it returns a Field.
75
- """
76
-
77
- @dataclass
78
- class AnnotatedValue :
79
- emails : Annotated [
80
- List [str ],
81
- lambda * args , ** kwargs : marshmallow .fields .List (
82
- marshmallow .fields .Email , * args , ** kwargs
83
- ),
84
- ] = dataclasses .field (default_factory = lambda : ["default@email.com" ])
85
-
86
- schema = AnnotatedValue .Schema () # type: ignore[attr-defined]
87
-
88
- self .assertEqual (
89
- schema .load ({}),
90
- AnnotatedValue (emails = ["default@email.com" ]),
91
- )
92
- self .assertEqual (
93
- schema .load ({"emails" : ["test@test.com" ]}),
94
- AnnotatedValue (
95
- emails = ["test@test.com" ],
96
- ),
97
- )
98
-
99
- with self .assertRaises (marshmallow .exceptions .ValidationError ):
100
- schema .load ({"emails" : "notavalidemail" })
You can’t perform that action at this time.
0 commit comments