File tree Expand file tree Collapse file tree 1 file changed +11
-3
lines changed
Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change 99import weakref
1010from abc import ABC , abstractmethod
1111from collections import OrderedDict
12- from dataclasses import dataclass , field
12+ from dataclasses import dataclass , field , fields , is_dataclass
1313from typing import (
1414 Any ,
1515 Callable ,
@@ -648,16 +648,24 @@ def _convert_params(
648648 kw_args = {}
649649 args = []
650650 params_added = False
651- rest = set (converted_params .__dict__ .keys ())
651+
652+ field_names = (
653+ [f .name for f in fields (converted_params )]
654+ if is_dataclass (converted_params )
655+ else list (converted_params .__dict__ .keys ())
656+ )
657+
658+ rest = set (field_names )
652659 if isinstance (params , dict ):
653660 rest = set .union (rest , params .keys ())
654661
655662 for v in signature .parameters .values ():
656- if v .name in converted_params . __dict__ :
663+ if v .name in field_names :
657664 if v .kind == inspect .Parameter .POSITIONAL_ONLY :
658665 args .append (getattr (converted_params , v .name ))
659666 else :
660667 kw_args [v .name ] = getattr (converted_params , v .name )
668+
661669 rest .remove (v .name )
662670 elif v .name == "params" :
663671 if v .kind == inspect .Parameter .POSITIONAL_ONLY :
You can’t perform that action at this time.
0 commit comments