src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsChecker.py

branch
eric7
changeset 10184
af82cb6e0298
parent 10046
35b27af462ef
child 10186
91c3ba0767ad
equal deleted inserted replaced
10183:f47edf2b8954 10184:af82cb6e0298
160 self.__error(node.lineno - 1, node.col_offset, reason) 160 self.__error(node.lineno - 1, node.col_offset, reason)
161 161
162 ####################################################################### 162 #######################################################################
163 ## Tidy imports 163 ## Tidy imports
164 ## 164 ##
165 ## adapted from: flake8-tidy-imports v4.8.0 165 ## adapted from: flake8-tidy-imports v4.10.0
166 ####################################################################### 166 #######################################################################
167 167
168 def __tidyImports(self): 168 def __tidyImports(self):
169 """ 169 """
170 Private method to check various other import related topics. 170 Private method to check various other import related topics.
243 else: 243 else:
244 fromName, importedName = alias.name.rsplit(".", 1) 244 fromName, importedName = alias.name.rsplit(".", 1)
245 245
246 if importedName == alias.asname: 246 if importedName == alias.asname:
247 if fromName: 247 if fromName:
248 rewritten = "from {0} import {1}".format(fromName, importedName) 248 rewritten = f"from {fromName} import {importedName}"
249 else: 249 else:
250 rewritten = "import {0}".format(importedName) 250 rewritten = f"import {importedName}"
251 251
252 self.__error(node.lineno - 1, node.col_offset, "I901", rewritten) 252 self.__error(node.lineno - 1, node.col_offset, "I901", rewritten)
253 253
254 elif isinstance(node, ast.ImportFrom): 254 elif isinstance(node, ast.ImportFrom):
255 for alias in node.names: 255 for alias in node.names:
256 if alias.name == alias.asname: 256 if alias.name == alias.asname:
257 rewritten = "from {0} import {1}".format(node.module, alias.name) 257 rewritten = f"from {node.module} import {alias.name}"
258 258
259 self.__error(node.lineno - 1, node.col_offset, "I901", rewritten) 259 self.__error(node.lineno - 1, node.col_offset, "I901", rewritten)
260 260
261 def __isModuleBanned(self, moduleName): 261 def __isModuleBanned(self, moduleName):
262 """ 262 """
291 Private method to check import of banned modules. 291 Private method to check import of banned modules.
292 292
293 @param node reference to the node to be checked 293 @param node reference to the node to be checked
294 @type ast.AST 294 @type ast.AST
295 """ 295 """
296 if not bool(self.__bannedModules): 296 if (
297 not bool(self.__bannedModules)
298 and not bool(self.__bannedUnstructuredPatterns)
299 and not bool(self.__bannedStructuredPatterns)
300 ):
301 # nothing to check
297 return 302 return
298 303
299 if isinstance(node, ast.Import): 304 if isinstance(node, ast.Import):
300 moduleNames = [alias.name for alias in node.names] 305 moduleNames = [alias.name for alias in node.names]
301 elif isinstance(node, ast.ImportFrom): 306 elif isinstance(node, ast.ImportFrom):
327 332
328 @param node reference to the node to be checked 333 @param node reference to the node to be checked
329 @type ast.AST 334 @type ast.AST
330 """ 335 """
331 if not self.__banRelativeImports: 336 if not self.__banRelativeImports:
337 # nothing to check
332 return 338 return
333 339
334 elif self.__banRelativeImports == "parents": 340 elif self.__banRelativeImports == "parents":
335 minNodeLevel = 1 341 minNodeLevel = 1
336 msgCode = "I903" 342 msgCode = "I903"
337 else: 343 else:
338 minNodeLevel = 0 344 minNodeLevel = 0
339 msgCode = "I904" 345 msgCode = "I904"
340 346
341 if ( 347 if (
342 self.__banRelativeImports 348 isinstance(node, ast.ImportFrom)
343 and isinstance(node, ast.ImportFrom)
344 and node.level > minNodeLevel 349 and node.level > minNodeLevel
345 ): 350 ):
346 self.__error(node.lineno - 1, node.col_offset, msgCode) 351 self.__error(node.lineno - 1, node.col_offset, msgCode)

eric ide

mercurial