From ff3ced404cd59f8146b450d9a5aba56a374236d4 Mon Sep 17 00:00:00 2001 From: Laura M?dioni Date: Mon, 23 Nov 2015 11:11:13 +0100 Subject: Factorize code in _record_import method related to issue #692 --- pylint/checkers/imports.py | 22 +++++++++++++--------- 1 file 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 -- cgit v1.2.1