File tree Expand file tree Collapse file tree 3 files changed +26
-6
lines changed Expand file tree Collapse file tree 3 files changed +26
-6
lines changed Original file line number Diff line number Diff line change 1
1
"""FastDepends - extracted and cleared from HTTP domain FastAPI Dependency Injection System"""
2
2
3
- __version__ = "2.4.5 "
3
+ __version__ = "2.4.6 "
Original file line number Diff line number Diff line change @@ -254,18 +254,21 @@ def _solve(
254
254
else :
255
255
break
256
256
257
+ keyword_args : Iterable [str ]
257
258
if has_args := "args" in self .alias_arguments :
258
259
kw ["args" ] = args
259
260
keyword_args = self .keyword_args
260
261
261
262
else :
262
- keyword_args = set (self .keyword_args + self .positional_args )
263
- for arg in keyword_args - set (self .dependencies .keys ()):
264
- if args :
265
- kw [arg ], args = args [0 ], args [1 :]
266
- else :
263
+ keyword_args = self .keyword_args + self .positional_args
264
+
265
+ for arg in keyword_args :
266
+ if not args :
267
267
break
268
268
269
+ if arg not in self .dependencies :
270
+ kw [arg ], args = args [0 ], args [1 :]
271
+
269
272
solved_kw : Dict [str , Any ]
270
273
solved_kw = yield args , kw , call
271
274
Original file line number Diff line number Diff line change @@ -183,3 +183,20 @@ def sync_catch2(key2: HeaderKey) -> float:
183
183
184
184
assert sync_catch (headers = {"key" : 1 }) == 1
185
185
assert sync_catch2 (headers = {"key2" : 1 }) == 1
186
+
187
+
188
+ def test_arguments_mapping ():
189
+ @inject
190
+ def func (
191
+ d : int = CustomField (cast = False ),
192
+ b : int = CustomField (cast = False ),
193
+ c : int = CustomField (cast = False ),
194
+ a : int = CustomField (cast = False ),
195
+ ):
196
+ assert d == 4
197
+ assert b == 2
198
+ assert c == 3
199
+ assert a == 1
200
+
201
+ for _ in range (50 ):
202
+ func (4 , 2 , 3 , 1 )
You can’t perform that action at this time.
0 commit comments