File tree Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -89,12 +89,25 @@ def apply_type_shim(cls, _context=None): # noqa
89
89
# is an ImportFrom which has no qname() method, causing the checker
90
90
# to die...
91
91
if utils .PY3 :
92
- base_nodes = [n for n in base_nodes [1 ] if not isinstance (n , nodes .ImportFrom )]
92
+ base_nodes = [_valid_base_node (n , _context ) for n in base_nodes [1 ]]
93
+ base_nodes = [n for n in base_nodes if n ]
93
94
else :
94
95
base_nodes = list (base_nodes [1 ])
95
96
96
97
return iter ([cls ] + base_nodes )
97
98
98
99
100
+ def _valid_base_node (node , context ):
101
+ """Attempts to convert `node` to a valid base node, returns None if it cannot."""
102
+ if isinstance (node , nodes .AssignAttr ):
103
+ inferred = next (node .parent .value .infer (context ), None )
104
+ if inferred and isinstance (node , nodes .ClassDef ):
105
+ return inferred
106
+ return None
107
+ if isinstance (node , nodes .ImportFrom ):
108
+ return None
109
+ return node
110
+
111
+
99
112
def add_transforms (manager ):
100
113
manager .register_transform (nodes .ClassDef , inference_tip (apply_type_shim ), is_model_or_form_field )
You can’t perform that action at this time.
0 commit comments