310 |
310 |
311 def __checkFuture(self): |
311 def __checkFuture(self): |
312 """ |
312 """ |
313 Private method to check the __future__ imports. |
313 Private method to check the __future__ imports. |
314 """ |
314 """ |
315 expectedImports = set( |
315 expectedImports = { |
316 [i.strip() |
316 i.strip() |
317 for i in self.__args.get("FutureChecker", "").split(",") |
317 for i in self.__args.get("FutureChecker", "").split(",") |
318 if bool(i.strip())]) |
318 if bool(i.strip())} |
319 if len(expectedImports) == 0: |
319 if len(expectedImports) == 0: |
320 # nothing to check for; disabling the check |
320 # nothing to check for; disabling the check |
321 return |
321 return |
322 |
322 |
323 imports = set() |
323 imports = set() |
325 hasCode = False |
325 hasCode = False |
326 |
326 |
327 for node in ast.walk(self.__tree): |
327 for node in ast.walk(self.__tree): |
328 if (isinstance(node, ast.ImportFrom) and |
328 if (isinstance(node, ast.ImportFrom) and |
329 node.module == '__future__'): |
329 node.module == '__future__'): |
330 imports |= set(name.name for name in node.names) |
330 imports |= {name.name for name in node.names} |
331 elif isinstance(node, ast.Expr): |
331 elif isinstance(node, ast.Expr): |
332 if not isinstance(node.value, ast.Str): |
332 if not isinstance(node.value, ast.Str): |
333 hasCode = True |
333 hasCode = True |
334 break |
334 break |
335 elif not isinstance(node, (ast.Module, ast.Str)): |
335 elif not isinstance(node, (ast.Module, ast.Str)): |
414 if number >= 0: |
414 if number >= 0: |
415 numbers.add(number) |
415 numbers.add(number) |
416 else: |
416 else: |
417 names.add(fieldMatch.group(1)) |
417 names.add(fieldMatch.group(1)) |
418 |
418 |
419 keywords = set(keyword.arg for keyword in call.keywords) |
419 keywords = {keyword.arg for keyword in call.keywords} |
420 numArgs = len(call.args) |
420 numArgs = len(call.args) |
421 if strArgs: |
421 if strArgs: |
422 numArgs -= 1 |
422 numArgs -= 1 |
423 if sys.version_info < (3, 5): |
423 if sys.version_info < (3, 5): |
424 hasKwArgs = bool(call.kwargs) |
424 hasKwArgs = bool(call.kwargs) |