21
21
from marshmallow .fields import Field
22
22
23
23
T = typing .TypeVar ("T" )
24
+ SubcastT = typing .TypeVar ("SubcastT" )
24
25
EnumT = typing .TypeVar ("EnumT" , bound = enum .Enum )
25
26
26
27
ErrorMapping : typing .TypeAlias = typing .Mapping [str , list [str ]]
@@ -70,7 +71,6 @@ def __call__(
70
71
self ,
71
72
name : str ,
72
73
default : typing .Any = ...,
73
- subcast : Subcast [T ] | None = ...,
74
74
** kwargs : Unpack [BaseMethodKwargs ],
75
75
) -> T | None : ...
76
76
@@ -80,40 +80,75 @@ class ListFieldMethod:
80
80
def __call__ (
81
81
self ,
82
82
name : str ,
83
- default : typing .Any = ...,
83
+ default : list [T ] = ...,
84
+ subcast : Subcast [T ] = ...,
85
+ * ,
86
+ delimiter : str | None = ...,
87
+ ** kwargs : Unpack [BaseMethodKwargs ],
88
+ ) -> list [T ]: ...
89
+
90
+ @typing .overload
91
+ def __call__ (
92
+ self ,
93
+ name : str ,
94
+ default : T = ...,
84
95
subcast : None = ...,
85
96
* ,
86
97
delimiter : str | None = ...,
87
98
** kwargs : Unpack [BaseMethodKwargs ],
88
- ) -> list [typing .Any ] | None : ...
99
+ ) -> list [typing .Any ] | T : ...
89
100
90
101
@typing .overload
91
102
def __call__ (
92
103
self ,
93
104
name : str ,
94
- default : typing . Any = ...,
95
- subcast : Subcast [T ] = ...,
105
+ default : T = ...,
106
+ subcast : Subcast [SubcastT ] = ...,
96
107
* ,
97
108
delimiter : str | None = ...,
98
109
** kwargs : Unpack [BaseMethodKwargs ],
99
- ) -> list [T ] | None : ...
110
+ ) -> list [SubcastT ] | T : ...
100
111
101
112
def __call__ (
102
113
self ,
103
114
name : str ,
104
- default : typing . Any = ...,
105
- subcast : Subcast [T ] | None = ...,
115
+ default : T = ...,
116
+ subcast : Subcast [SubcastT ] | None = ...,
106
117
* ,
107
118
delimiter : str | None = ...,
108
119
** kwargs : Unpack [BaseMethodKwargs ],
109
- ) -> list [T ] | None : ...
120
+ ) -> list [SubcastT ] | list [ typing . Any ] | T | None : ...
110
121
111
122
112
123
KeysT = typing .TypeVar ("KeysT" )
113
124
ValuesT = typing .TypeVar ("ValuesT" )
114
125
115
126
116
127
class DictFieldMethod :
128
+ @typing .overload
129
+ def __call__ (
130
+ self ,
131
+ name : str ,
132
+ default : dict [KeysT , ValuesT ] = ...,
133
+ * ,
134
+ subcast_keys : Subcast [KeysT ] | None = None ,
135
+ subcast_values : Subcast [ValuesT ] | None = None ,
136
+ delimiter : str | None = None ,
137
+ ** kwargs : Unpack [BaseMethodKwargs ],
138
+ ) -> dict [KeysT , ValuesT ]: ...
139
+
140
+ @typing .overload
141
+ def __call__ (
142
+ self ,
143
+ name : str ,
144
+ default : None = ...,
145
+ * ,
146
+ subcast_keys : Subcast [KeysT ] | None = None ,
147
+ subcast_values : Subcast [ValuesT ] | None = None ,
148
+ delimiter : str | None = None ,
149
+ ** kwargs : Unpack [BaseMethodKwargs ],
150
+ ) -> dict [KeysT , ValuesT ] | None : ...
151
+
117
152
def __call__ (
118
153
self ,
119
154
name : str ,
0 commit comments