152 @return qualified attribute name |
153 @return qualified attribute name |
153 @rtype str |
154 @rtype str |
154 """ |
155 """ |
155 prefix = "" |
156 prefix = "" |
156 if isinstance(node, ast.Attribute): |
157 if isinstance(node, ast.Attribute): |
157 try: |
158 with contextlib.suppress(Exception): |
158 val = deepgetattr(node, 'value.id') |
159 val = deepgetattr(node, 'value.id') |
159 prefix = ( |
160 prefix = ( |
160 aliases[val] if val in aliases |
161 aliases[val] if val in aliases |
161 else deepgetattr(node, 'value.id') |
162 else deepgetattr(node, 'value.id') |
162 ) |
163 ) |
163 except Exception: # secok |
164 # Id we can't get the fully qualified name for an attr, just return |
164 # We can't get the fully qualified name for an attr, just return |
|
165 # its base name. |
165 # its base name. |
166 pass |
|
167 |
166 |
168 return "{0}.{1}".format(prefix, node.attr) |
167 return "{0}.{1}".format(prefix, node.attr) |
169 else: |
168 else: |
170 return "" |
169 return "" |
171 |
170 |