eric6/Plugins/CheckerPlugins/CodeStyleChecker/Security/SecurityUtils.py

changeset 8243
cc717c2ae956
parent 8205
4a0f1f896341
equal deleted inserted replaced
8242:aa713ac50c0d 8243:cc717c2ae956
7 Module implementing utility functions used by the security checks. 7 Module implementing utility functions used by the security checks.
8 """ 8 """
9 9
10 import ast 10 import ast
11 import os 11 import os
12 import contextlib
12 13
13 import AstUtilities 14 import AstUtilities
14 15
15 16
16 class InvalidModulePath(Exception): 17 class InvalidModulePath(Exception):
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

eric ide

mercurial