From b29b39b6fce8b5bff642fc2376c25d9896dbc482 Mon Sep 17 00:00:00 2001 From: Claudiu Popa Date: Wed, 25 Nov 2015 15:12:59 +0200 Subject: Fix new import related errors in pylint's codebase. --- pylint/checkers/classes.py | 5 +++-- pylint/checkers/exceptions.py | 4 ++-- pylint/checkers/imports.py | 7 ++++++- pylint/checkers/logging.py | 3 ++- pylint/checkers/misc.py | 3 ++- pylint/checkers/similar.py | 6 +++--- pylint/checkers/spelling.py | 18 +++++++++--------- pylint/checkers/stdlib.py | 4 ++-- pylint/checkers/strings.py | 7 +++---- pylint/checkers/typecheck.py | 3 ++- pylint/checkers/utils.py | 5 +++-- pylint/checkers/variables.py | 4 ++-- pylint/epylint.py | 2 +- pylint/lint.py | 4 ++-- pylint/test/functional/ungrouped_imports.py | 2 +- pylint/test/functional/wrong_import_order.py | 3 +-- pylint/test/functional/wrong_import_order.txt | 1 - pylint/test/functional/wrong_import_position.py | 2 +- pylint/testutils.py | 11 +++++------ pylint/utils.py | 2 +- 20 files changed, 51 insertions(+), 45 deletions(-) diff --git a/pylint/checkers/classes.py b/pylint/checkers/classes.py index e79cf97..3494d2b 100644 --- a/pylint/checkers/classes.py +++ b/pylint/checkers/classes.py @@ -20,12 +20,13 @@ from __future__ import generators import sys from collections import defaultdict +import six + import astroid from astroid.bases import Generator, BUILTINS from astroid.exceptions import InconsistentMroError, DuplicateBasesError from astroid import objects from astroid.scoped_nodes import function_to_method - from pylint.interfaces import IAstroidChecker from pylint.checkers import BaseChecker from pylint.checkers.utils import ( @@ -36,7 +37,7 @@ from pylint.checkers.utils import ( decorated_with, class_is_abstract, safe_infer, has_known_bases) from pylint.utils import deprecated_option, get_global_option -import six + if sys.version_info >= (3, 0): NEXT_METHOD = '__next__' diff --git a/pylint/checkers/exceptions.py b/pylint/checkers/exceptions.py index b66ff8d..4cf5629 100644 --- a/pylint/checkers/exceptions.py +++ b/pylint/checkers/exceptions.py @@ -17,10 +17,10 @@ import inspect import sys -import astroid -from six.moves import builtins import six +from six.moves import builtins +import astroid from pylint.checkers import BaseChecker from pylint.checkers.utils import ( is_raising, diff --git a/pylint/checkers/imports.py b/pylint/checkers/imports.py index dae9b80..bc8efa1 100644 --- a/pylint/checkers/imports.py +++ b/pylint/checkers/imports.py @@ -397,6 +397,11 @@ given file (report RP0402 must not be disabled)'} extern_imports = [] local_imports = [] std_imports = [] + stdlib_paths = [sys.prefix, self.ext_lib_dir] + real_prefix = getattr(sys, 'real_prefix', None) + if real_prefix is not None: + stdlib_paths.append(real_prefix) + for node, modname in self._imports_stack: package = modname.split('.')[0] if is_standard_module(modname): @@ -417,7 +422,7 @@ given file (report RP0402 must not be disabled)'} local_imports.append((node, package)) continue filename = os.path.normcase(os.path.abspath(filename)) - if not filename.startswith(self.ext_lib_dir): + if not any(filename.startswith(path) for path in stdlib_paths): local_imports.append((node, package)) continue extern_imports.append((node, package)) diff --git a/pylint/checkers/logging.py b/pylint/checkers/logging.py index a5b1edf..d20ff3e 100644 --- a/pylint/checkers/logging.py +++ b/pylint/checkers/logging.py @@ -14,6 +14,8 @@ """checker for use of Python logging """ +import six + import astroid from pylint import checkers @@ -21,7 +23,6 @@ from pylint import interfaces from pylint.checkers import utils from pylint.checkers.utils import check_messages -import six MSGS = { diff --git a/pylint/checkers/misc.py b/pylint/checkers/misc.py index 7fbe70b..e01dfcb 100644 --- a/pylint/checkers/misc.py +++ b/pylint/checkers/misc.py @@ -19,9 +19,10 @@ Check source code is ascii only or has an encoding declaration (PEP 263) import re +import six + from pylint.interfaces import IRawChecker from pylint.checkers import BaseChecker -import six MSGS = { diff --git a/pylint/checkers/similar.py b/pylint/checkers/similar.py index 859a04b..fe0d905 100644 --- a/pylint/checkers/similar.py +++ b/pylint/checkers/similar.py @@ -20,13 +20,13 @@ from __future__ import print_function import sys from collections import defaultdict +import six +from six.moves import zip + from pylint.interfaces import IRawChecker from pylint.checkers import BaseChecker, table_lines_from_stats from pylint.reporters.ureports.nodes import Table -import six -from six.moves import zip - class Similar(object): """finds copy-pasted lines of code in a project""" diff --git a/pylint/checkers/spelling.py b/pylint/checkers/spelling.py index 725f25a..9495f4d 100644 --- a/pylint/checkers/spelling.py +++ b/pylint/checkers/spelling.py @@ -21,21 +21,20 @@ import tokenize import string import re +try: + import enchant +except ImportError: + enchant = None import six -if sys.version_info[0] >= 3: - maketrans = str.maketrans -else: - maketrans = string.maketrans - from pylint.interfaces import ITokenChecker, IAstroidChecker from pylint.checkers import BaseTokenChecker from pylint.checkers.utils import check_messages -try: - import enchant -except ImportError: - enchant = None +if sys.version_info[0] >= 3: + maketrans = str.maketrans +else: + maketrans = string.maketrans if enchant is not None: br = enchant.Broker() @@ -51,6 +50,7 @@ else: table = maketrans("", "") + class SpellingChecker(BaseTokenChecker): """Check spelling in comments and docstrings""" __implements__ = (ITokenChecker, IAstroidChecker) diff --git a/pylint/checkers/stdlib.py b/pylint/checkers/stdlib.py index 61df660..afb4541 100644 --- a/pylint/checkers/stdlib.py +++ b/pylint/checkers/stdlib.py @@ -15,12 +15,12 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. """Checkers for various standard library functions.""" -import six import sys +import six + import astroid from astroid.bases import Instance - from pylint.interfaces import IAstroidChecker from pylint.checkers import BaseChecker from pylint.checkers import utils diff --git a/pylint/checkers/strings.py b/pylint/checkers/strings.py index 31f025d..8e54318 100644 --- a/pylint/checkers/strings.py +++ b/pylint/checkers/strings.py @@ -23,15 +23,14 @@ import tokenize import string import numbers -import astroid +import six +import astroid from pylint.interfaces import ITokenChecker, IAstroidChecker, IRawChecker from pylint.checkers import BaseChecker, BaseTokenChecker from pylint.checkers import utils from pylint.checkers.utils import check_messages -import six - _PY3K = sys.version_info[:2] >= (3, 0) _PY27 = sys.version_info[:2] == (2, 7) @@ -119,7 +118,7 @@ OTHER_NODES = (astroid.Const, astroid.List, astroid.Repr, astroid.ListComp, astroid.SetComp, astroid.GeneratorExp) if _PY3K: - import _string + import _string # pylint: disable=wrong-import-position, wrong-import-order def split_format_field_names(format_string): return _string.formatter_field_name_split(format_string) diff --git a/pylint/checkers/typecheck.py b/pylint/checkers/typecheck.py index e5f60d6..43b0bde 100644 --- a/pylint/checkers/typecheck.py +++ b/pylint/checkers/typecheck.py @@ -22,13 +22,14 @@ import re import shlex import sys +import six + import astroid import astroid.context import astroid.arguments from astroid import exceptions from astroid import objects from astroid import bases -import six from pylint.interfaces import IAstroidChecker, INFERENCE, INFERENCE_FAILURE from pylint.checkers import BaseChecker diff --git a/pylint/checkers/utils.py b/pylint/checkers/utils.py index cfb20d7..035e591 100644 --- a/pylint/checkers/utils.py +++ b/pylint/checkers/utils.py @@ -23,11 +23,12 @@ import sys import string import warnings -import astroid -from astroid import scoped_nodes import six from six.moves import map, builtins # pylint: disable=redefined-builtin +import astroid +from astroid import scoped_nodes + BUILTINS_NAME = builtins.__name__ COMP_NODE_TYPES = (astroid.ListComp, astroid.SetComp, astroid.DictComp, astroid.GeneratorExp) diff --git a/pylint/checkers/variables.py b/pylint/checkers/variables.py index cde66eb..7629a7b 100644 --- a/pylint/checkers/variables.py +++ b/pylint/checkers/variables.py @@ -20,9 +20,10 @@ import sys import re from copy import copy +import six + import astroid from astroid import modutils - from pylint.interfaces import IAstroidChecker, INFERENCE, INFERENCE_FAILURE, HIGH from pylint.utils import get_global_option from pylint.checkers import BaseChecker @@ -33,7 +34,6 @@ from pylint.checkers.utils import ( get_all_elements, has_known_bases, node_ignores_exception, is_inside_abstract_class, is_comprehension, is_iterable, safe_infer) -import six SPECIAL_OBJ = re.compile("^_{2}[a-z]+_{2}$") FUTURE = '__future__' diff --git a/pylint/epylint.py b/pylint/epylint.py index be2ec5f..12127e0 100755 --- a/pylint/epylint.py +++ b/pylint/epylint.py @@ -49,8 +49,8 @@ its output. from __future__ import print_function import os -import sys import os.path as osp +import sys from subprocess import Popen, PIPE def _get_env(): diff --git a/pylint/lint.py b/pylint/lint.py index d1e39b2..7d08a76 100644 --- a/pylint/lint.py +++ b/pylint/lint.py @@ -39,11 +39,11 @@ import sys import tokenize import warnings +import six + import astroid from astroid.__pkginfo__ import version as astroid_version from astroid import modutils -import six - from pylint import checkers from pylint import interfaces from pylint import reporters diff --git a/pylint/test/functional/ungrouped_imports.py b/pylint/test/functional/ungrouped_imports.py index 9626062..2204c80 100644 --- a/pylint/test/functional/ungrouped_imports.py +++ b/pylint/test/functional/ungrouped_imports.py @@ -1,6 +1,6 @@ """Checks import order rule""" # pylint: disable=unused-import,relative-import,wrong-import-order,using-constant-test - +# pylint: disable=import-error import six import logging.config import os.path diff --git a/pylint/test/functional/wrong_import_order.py b/pylint/test/functional/wrong_import_order.py index 9fc3996..3e4f6a0 100644 --- a/pylint/test/functional/wrong_import_order.py +++ b/pylint/test/functional/wrong_import_order.py @@ -1,5 +1,5 @@ """Checks import order rule""" -# pylint: disable=unused-import,relative-import,ungrouped-imports +# pylint: disable=unused-import,relative-import,ungrouped-imports,import-error import six import os.path # [wrong-import-order] @@ -7,5 +7,4 @@ from astroid import are_exclusive import sys # [wrong-import-order] import datetime # [wrong-import-order] import unused_import -import scipy # [wrong-import-order] import astroid diff --git a/pylint/test/functional/wrong_import_order.txt b/pylint/test/functional/wrong_import_order.txt index 537355c..7505c6e 100644 --- a/pylint/test/functional/wrong_import_order.txt +++ b/pylint/test/functional/wrong_import_order.txt @@ -1,4 +1,3 @@ wrong-import-order:5::standard import "import os.path" comes before "import six" wrong-import-order:7::standard import "import sys" comes before "import six" wrong-import-order:8::standard import "import datetime" comes before "import six" -wrong-import-order:10::external import "import scipy" comes before "from astroid import are_exclusive" diff --git a/pylint/test/functional/wrong_import_position.py b/pylint/test/functional/wrong_import_position.py index 32a8314..1547ff2 100644 --- a/pylint/test/functional/wrong_import_position.py +++ b/pylint/test/functional/wrong_import_position.py @@ -1,6 +1,6 @@ """Checks import order rule""" # pylint: disable=unused-import,relative-import,ungrouped-imports,wrong-import-order,using-constant-test - +# pylint: disable=import-error import os.path if True: from astroid import are_exclusive diff --git a/pylint/testutils.py b/pylint/testutils.py index ecb26ce..551d0c8 100644 --- a/pylint/testutils.py +++ b/pylint/testutils.py @@ -19,27 +19,26 @@ from __future__ import print_function import collections import contextlib import functools +from glob import glob import os +from os import linesep, getcwd, sep +from os.path import abspath, basename, dirname, isdir, join, splitext import sys import re import unittest import tempfile import tokenize -from glob import glob -from os import linesep, getcwd, sep -from os.path import abspath, basename, dirname, isdir, join, splitext +import six +from six.moves import StringIO import astroid - from pylint import checkers from pylint.utils import PyLintASTWalker from pylint.reporters import BaseReporter from pylint.interfaces import IReporter from pylint.lint import PyLinter -import six -from six.moves import StringIO # Utils diff --git a/pylint/utils.py b/pylint/utils.py index 74903de..090b0a5 100644 --- a/pylint/utils.py +++ b/pylint/utils.py @@ -20,12 +20,12 @@ from __future__ import print_function import collections import os +from os.path import dirname, basename, splitext, exists, isdir, join, normpath import re import sys import tokenize import warnings import textwrap -from os.path import dirname, basename, splitext, exists, isdir, join, normpath import six from six.moves import zip # pylint: disable=redefined-builtin -- cgit v1.2.1