2020def _patched_find_arguments_from_base_classes (node ):
2121 """Patched version that handles AssignAttr nodes in __init__."""
2222 import astroid .brain .brain_dataclasses as brain_dataclasses_module
23-
23+
2424 # Get the original function implementation
25- orig_func = brain_dataclasses_module ._find_arguments_from_base_classes .__wrapped__ if hasattr (brain_dataclasses_module ._find_arguments_from_base_classes , '__wrapped__' ) else brain_dataclasses_module ._find_arguments_from_base_classes
26-
25+ orig_func = (
26+ brain_dataclasses_module ._find_arguments_from_base_classes .__wrapped__
27+ if hasattr (
28+ brain_dataclasses_module ._find_arguments_from_base_classes , "__wrapped__"
29+ )
30+ else brain_dataclasses_module ._find_arguments_from_base_classes
31+ )
32+
2733 pos_only_store = {}
2834 kw_only_store = {}
29-
35+
3036 for base in reversed (node .mro ()):
3137 if not base .is_dataclass :
3238 continue
@@ -46,16 +52,23 @@ def _patched_find_arguments_from_base_classes(node):
4652
4753 for kwarg , data in kw_only .items ():
4854 kw_only_store [kwarg ] = data
49-
55+
5056 return pos_only_store , kw_only_store
5157
5258
5359# Apply the monkey patch
5460try :
5561 import astroid .brain .brain_dataclasses as brain_dataclasses_module
56- if not hasattr (brain_dataclasses_module ._find_arguments_from_base_classes , '__wrapped__' ):
57- brain_dataclasses_module ._find_arguments_from_base_classes .__wrapped__ = brain_dataclasses_module ._find_arguments_from_base_classes
58- brain_dataclasses_module ._find_arguments_from_base_classes = _patched_find_arguments_from_base_classes
62+
63+ if not hasattr (
64+ brain_dataclasses_module ._find_arguments_from_base_classes , "__wrapped__"
65+ ):
66+ brain_dataclasses_module ._find_arguments_from_base_classes .__wrapped__ = (
67+ brain_dataclasses_module ._find_arguments_from_base_classes
68+ )
69+ brain_dataclasses_module ._find_arguments_from_base_classes = (
70+ _patched_find_arguments_from_base_classes
71+ )
5972except ImportError :
6073 # astroid.brain.brain_dataclasses might not be available in all versions
6174 pass
0 commit comments