summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaura M?dioni <laura.medioni@logilab.fr>2015-11-23 11:11:13 +0100
committerLaura M?dioni <laura.medioni@logilab.fr>2015-11-23 11:11:13 +0100
commitff3ced404cd59f8146b450d9a5aba56a374236d4 (patch)
tree0e23607e73ecf526e13c370fb20d2a7bfb26e228
parent7be7e92031f85f2371b1e23e04b40f0629dd9fb1 (diff)
downloadpylint-ff3ced404cd59f8146b450d9a5aba56a374236d4.tar.gz
Factorize code in _record_import method
related to issue #692
-rw-r--r--pylint/checkers/imports.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/pylint/checkers/imports.py b/pylint/checkers/imports.py
index 8ff1962..6d68390 100644
--- a/pylint/checkers/imports.py
+++ b/pylint/checkers/imports.py
@@ -283,11 +283,8 @@ given file (report RP0402 must not be disabled)'}
self._check_deprecated_module(node, name)
importedmodnode = self.get_imported_module(node, name)
if isinstance(node.scope(), astroid.Module):
- importedname = importedmodnode.name if importedmodnode else None
- if not importedname:
- importedname = node.names[0][0].split('.')[0]
self._check_position(node)
- self._imports_stack.append((node, importedname))
+ self._record_import(node, importedmodnode)
if importedmodnode is None:
continue
self._check_relative_import(modnode, node, importedmodnode, name)
@@ -316,11 +313,8 @@ given file (report RP0402 must not be disabled)'}
modnode = node.root()
importedmodnode = self.get_imported_module(node, basename)
if isinstance(node.scope(), astroid.Module):
- importedname = importedmodnode.name if importedmodnode else None
- if not importedname:
- importedname = node.names[0][0].split('.')[0]
- self._imports_stack.append((node, importedname))
self._check_position(node)
+ self._record_import(node, importedmodnode)
if importedmodnode is None:
return
self._check_relative_import(modnode, node, importedmodnode, basename)
@@ -380,11 +374,21 @@ given file (report RP0402 must not be disabled)'}
visit_classdef = visit_for = visit_while = visit_functiondef
def _check_position(self, node):
- """Sends a message if import `node` comes after another piece of code"""
+ """Check `node` import or importfrom node position is correct
+
+ Send a message if `node` comes before another instruction
+ """
if self._first_non_import_node:
self.add_message('wrong-import-position', node=node,
args=node.as_string())
+ def _record_import(self, node, importedmodnode):
+ """Record the package `node` imports from"""
+ importedname = importedmodnode.name if importedmodnode else None
+ if not importedname:
+ importedname = node.names[0][0].split('.')[0]
+ self._imports_stack.append((node, importedname))
+
def _check_imports_order(self, node):
"""Checks imports of module `node` are grouped by category