summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Th?nault <sylvain.thenault@logilab.fr>2013-03-29 16:57:52 +0100
committerSylvain Th?nault <sylvain.thenault@logilab.fr>2013-03-29 16:57:52 +0100
commitb09c38db939b910150ea6c24552596100fb7c7bf (patch)
tree9493e10c1df665d0d40501fd88851b676ae17f02
parent44e4782439550b9a74a10e63fc7837229f70b300 (diff)
downloadpylint-b09c38db939b910150ea6c24552596100fb7c7bf.tar.gz
stop relying on is_standard_module to avoid having internal dependencies in external deps report. Closes #124660
-rw-r--r--ChangeLog5
-rw-r--r--checkers/imports.py31
2 files changed, 16 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog
index f270bae..2fc80ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,11 @@ ChangeLog for PyLint
====================
--
+ * #124660: internal dependencies should not appear in external dependencies
+ report
+
+
+2013-02-26 -- 0.27.0
* #20693: replace pylint.el by Ian Eure version (patch by J.Kotta)
diff --git a/checkers/imports.py b/checkers/imports.py
index 9944a58..fe204b1 100644
--- a/checkers/imports.py
+++ b/checkers/imports.py
@@ -52,21 +52,6 @@ def get_first_import(node, context, name, base, level):
# utilities to represents import dependencies as tree and dot graph ###########
-def filter_dependencies_info(dep_info, package_dir, mode='external'):
- """filter external or internal dependencies from dep_info (return a
- new dictionary containing the filtered modules only)
- """
- if mode == 'external':
- filter_func = lambda x: not is_standard_module(x, (package_dir,))
- else:
- assert mode == 'internal'
- filter_func = lambda x: is_standard_module(x, (package_dir,))
- result = {}
- for importee, importers in dep_info.iteritems():
- if filter_func(importee):
- result[importee] = importers
- return result
-
def make_tree_defs(mod_files_list):
"""get a list of 2-uple (module, list_of_files_which_import_this_module),
it will return a dictionary to represent this as a tree
@@ -313,7 +298,7 @@ given file (report RP0402 must not be disabled)'}
importedmodname, set())
if not context_name in importedmodnames:
importedmodnames.add(context_name)
- if is_standard_module( importedmodname, (self.package_dir(),) ):
+ if is_standard_module(importedmodname, (self.package_dir(),)):
# update import graph
mgraph = self.import_graph.setdefault(context_name, set())
if not importedmodname in mgraph:
@@ -373,8 +358,11 @@ given file (report RP0402 must not be disabled)'}
cache them
"""
if self.__ext_dep_info is None:
- self.__ext_dep_info = filter_dependencies_info(
- self.stats['dependencies'], self.package_dir(), 'external')
+ package = self.linter.base_name
+ self.__ext_dep_info = result = {}
+ for importee, importers in self.stats['dependencies'].iteritems():
+ if not importee.startswith(package):
+ result[importee] = importers
return self.__ext_dep_info
def _internal_dependencies_info(self):
@@ -382,8 +370,11 @@ given file (report RP0402 must not be disabled)'}
cache them
"""
if self.__int_dep_info is None:
- self.__int_dep_info = filter_dependencies_info(
- self.stats['dependencies'], self.package_dir(), 'internal')
+ package = self.linter.base_name
+ self.__int_dep_info = result = {}
+ for importee, importers in self.stats['dependencies'].iteritems():
+ if importee.startswith(package):
+ result[importee] = importers
return self.__int_dep_info