Skip to content

Commit 878fc2e

Browse files
committed
Do not filter arguments if the signature contains **kwargs
1 parent 40bdf22 commit 878fc2e

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

utils/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,14 @@ def filter_kwargs(dict_to_filter, kwarg_obj):
129129
import inspect
130130

131131
sig = inspect.signature(kwarg_obj)
132-
filter_keys = [param.name for param in sig.parameters.values() if param.kind == param.POSITIONAL_OR_KEYWORD]
132+
if any(param.kind == param.VAR_KEYWORD for param in sig.parameters.values()):
133+
# the signature contains definitions like **kwargs, so there is no need to filter
134+
return dict_to_filter.copy()
135+
filter_keys = [
136+
param.name
137+
for param in sig.parameters.values()
138+
if param.kind == param.POSITIONAL_OR_KEYWORD or param.kind == param.KEYWORD_ONLY
139+
]
133140
filtered_dict = {filter_key: dict_to_filter[filter_key] for filter_key in filter_keys if
134141
filter_key in dict_to_filter}
135142
return filtered_dict

0 commit comments

Comments
 (0)