예제 #1
0
 def _imported_module(self, node, mod_path, relative):
     """notify an imported module, used to analyze dependencies
     """
     context_name = node.root().name
     if relative:
         context_parts = context_name.split('.')
         if mod_path.startswith('.'):
             while mod_path.startswith('.'):
                 mod_path = mod_path[1:]
                 del context_parts[-1] # one level upwards
             context_parts.append(mod_path)
         else:
             context_parts[-1] = mod_path
         mod_path = '.'.join(context_parts)
     if context_name == mod_path:
         # module importing itself !
         self.add_message('W0406', node=node)
     elif not is_standard_module(mod_path):
         # handle dependencies
         mod_paths = self.stats['dependencies'].setdefault(mod_path, [])
         if not context_name in mod_paths:
             mod_paths.append(context_name)
         if is_standard_module( mod_path, (self.package_dir(),) ):
             # update import graph
             mgraph = self.import_graph.setdefault(context_name, [])
             if not mod_path in mgraph:
                 mgraph.append(mod_path)
예제 #2
0
 def test_knownValues_is_standard_module_builtins(self):
     if sys.version_info < (3, 0):
         self.assertEqual(modutils.is_standard_module('__builtin__'), True)
         self.assertEqual(modutils.is_standard_module('builtins'), False)
     else:
         self.assertEqual(modutils.is_standard_module('__builtin__'), False)
         self.assertEqual(modutils.is_standard_module('builtins'), True)
예제 #3
0
 def test_knownValues_is_standard_module_builtins(self):
     if sys.version_info < (3, 0):
         self.assertEqual(modutils.is_standard_module('__builtin__'), True)
         self.assertEqual(modutils.is_standard_module('builtins'), False)
     else:
         self.assertEqual(modutils.is_standard_module('__builtin__'), False)
         self.assertEqual(modutils.is_standard_module('builtins'), True)
예제 #4
0
 def test_failing_border_cases(self):
     # using a subpackage/submodule path as std_path argument
     self.assertEqual(modutils.is_standard_module('logilab.common', common.__path__), False)
     # using a module + object name as modname argument
     self.assertEqual(modutils.is_standard_module('sys.path'), True)
     # this is because only the first package/module is considered
     self.assertEqual(modutils.is_standard_module('sys.whatever'), True)
     self.assertEqual(modutils.is_standard_module('logilab.whatever', common.__path__), False)
예제 #5
0
 def test_failing_border_cases(self):
     # using a subpackage/submodule path as std_path argument
     self.assertEqual(modutils.is_standard_module('logilab.common', common.__path__), False)
     # using a module + object name as modname argument
     self.assertEqual(modutils.is_standard_module('sys.path'), True)
     # this is because only the first package/module is considered
     self.assertEqual(modutils.is_standard_module('sys.whatever'), True)
     self.assertEqual(modutils.is_standard_module('logilab.whatever', common.__path__), False)
 def test_knownValues_is_standard_module_4(self):
     if sys.version_info < (3, 0):
         self.assertEqual(modutils.is_standard_module('StringIO'), True)
     else:
         self.assertEqual(modutils.is_standard_module('StringIO'), False)
     if sys.version_info < (2, 6):
         self.assertEqual(modutils.is_standard_module('io'), False)
     else:
         self.assertEqual(modutils.is_standard_module('io'), True)
예제 #7
0
 def test_knownValues_is_standard_module_4(self):
     if sys.version_info < (3, 0):
         self.assertEqual(modutils.is_standard_module("StringIO"), True)
     else:
         self.assertEqual(modutils.is_standard_module("StringIO"), False)
     if sys.version_info < (2, 6):
         self.assertEqual(modutils.is_standard_module("io"), False)
     else:
         self.assertEqual(modutils.is_standard_module("io"), True)
예제 #8
0
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
예제 #9
0
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.items():
        if filter_func(importee):
            result[importee] = importers
    return result
예제 #10
0
 def _add_imported_module(self, node, importedmodname):
     """notify an imported module, used to analyze dependencies"""
     context_name = node.root().name
     if context_name == importedmodname:
         # module importing itself !
         self.add_message("W0406", node=node)
     elif not is_standard_module(importedmodname):
         # handle dependencies
         importedmodnames = self.stats["dependencies"].setdefault(importedmodname, set())
         if not context_name in importedmodnames:
             importedmodnames.add(context_name)
         if is_standard_module(importedmodname, (self.package_dir(),)):
             # update import graph
             mgraph = self.import_graph.setdefault(context_name, set())
             if not importedmodname in mgraph:
                 mgraph.add(importedmodname)
예제 #11
0
파일: inspector.py 프로젝트: pp072/Creame4
 def compute_module(self, context_name, mod_path):
     """return true if the module should be added to dependencies"""
     package_dir = dirname(self.project.path)
     if context_name == mod_path:
         return 0
     elif is_standard_module(mod_path, (package_dir, )):
         return 1
     return 0
예제 #12
0
 def compute_module(self, context_name, mod_path):
     """return true if the module should be added to dependencies"""
     package_dir = dirname(self.project.path)
     if context_name == mod_path:
         return 0
     elif is_standard_module(mod_path, (package_dir,)):
         return 1
     return 0
예제 #13
0
 def _add_imported_module(self, node, importedmodname):
     """notify an imported module, used to analyze dependencies"""
     context_name = node.root().name
     if context_name == importedmodname:
         # module importing itself !
         self.add_message('W0406', node=node)
     elif not is_standard_module(importedmodname):
         # handle dependencies
         importedmodnames = self.stats['dependencies'].setdefault(
             importedmodname, set())
         if not context_name in importedmodnames:
             importedmodnames.add(context_name)
         if is_standard_module(importedmodname, (self.package_dir(), )):
             # update import graph
             mgraph = self.import_graph.setdefault(context_name, set())
             if not importedmodname in mgraph:
                 mgraph.add(importedmodname)
 def test_knownValues_is_standard_module_4(self):
     self.assertEqual(modutils.is_standard_module('marshal'), True)
     self.assertEqual(modutils.is_standard_module('hashlib'), True)
     self.assertEqual(modutils.is_standard_module('pickle'), True)
     self.assertEqual(modutils.is_standard_module('email'), True)
     self.assertEqual(modutils.is_standard_module('io'), sys.version_info >= (2, 6))
     self.assertEqual(modutils.is_standard_module('StringIO'), sys.version_info < (3, 0))
예제 #15
0
 def test_knownValues_is_standard_module_4(self):
     self.assertEqual(modutils.is_standard_module('marshal'), True)
     self.assertEqual(modutils.is_standard_module('hashlib'), True)
     self.assertEqual(modutils.is_standard_module('pickle'), True)
     self.assertEqual(modutils.is_standard_module('email'), True)
     self.assertEqual(modutils.is_standard_module('io'), sys.version_info >= (2, 6))
     self.assertEqual(modutils.is_standard_module('StringIO'), sys.version_info < (3, 0))
예제 #16
0
 def test_4(self):
     self.assertEqual(modutils.is_standard_module('marshal'), True)
     self.assertEqual(modutils.is_standard_module('pickle'), True)
     self.assertEqual(modutils.is_standard_module('email'), True)
     self.assertEqual(modutils.is_standard_module('StringIO'), sys.version_info < (3, 0))
     venv_py3 = sys.version_info[0] >= 3 and hasattr(sys, 'real_prefix')
     if not venv_py3:
         # those modules are symlinked by virtualenv (but not by python's venv)
         self.assertEqual(modutils.is_standard_module('hashlib'), True)
         self.assertEqual(modutils.is_standard_module('io'), True)
예제 #17
0
 def _add_imported_module(self, node, importedmodname):
     """notify an imported module, used to analyze dependencies"""
     importedmodname = get_module_part(importedmodname)
     context_name = node.root().name
     if context_name == importedmodname:
         # module importing itself !
         self.add_message('import-self', node=node)
     elif not is_standard_module(importedmodname):
         # handle dependencies
         importedmodnames = self.stats['dependencies'].setdefault(
             importedmodname, set())
         if not context_name in importedmodnames:
             importedmodnames.add(context_name)
         # update import graph
         mgraph = self.import_graph.setdefault(context_name, set())
         if not importedmodname in mgraph:
             mgraph.add(importedmodname)
예제 #18
0
 def test_knownValues_is_standard_module_unknown(self):
     self.assertEqual(modutils.is_standard_module('unknown'), False)
예제 #19
0
 def test_knownValues_is_standard_module_nonstandard(self):
     self.assertEqual(modutils.is_standard_module('logilab'), False)
예제 #20
0
 def test_knownValues_is_standard_module_builtin(self):
     self.assertEqual(modutils.is_standard_module('sys'), True)
 def test_unknown(self):
     self.assertEqual(modutils.is_standard_module('unknown'), False)
 def test_custom_path(self):
     self.assertEqual(
         modutils.is_standard_module('data.module', (DATADIR, )), True)
     self.assertEqual(
         modutils.is_standard_module('data.module',
                                     (path.abspath(DATADIR), )), True)
예제 #23
0
 def test_knownValues_is_standard_module_0(self):
     self.assertEqual(modutils.is_standard_module('__builtin__'), True)
 def test_builtin(self):
     self.assertEqual(modutils.is_standard_module('sys'), True)
예제 #25
0
 def test_knownValues_is_standard_module_1(self):
     self.assertEqual(modutils.is_standard_module("sys"), True)
예제 #26
0
 def test_knownValues_is_standard_module_4(self):
     self.assertEqual(modutils.is_standard_module('StringIO'), True)
예제 #27
0
 def test_knownValues_is_standard_module_5(self):
     self.assertEqual(
         modutils.is_standard_module('data.module', (DATADIR, )), True)
     self.assertEqual(
         modutils.is_standard_module('data.module',
                                     (path.abspath(DATADIR), )), True)
예제 #28
0
 def test_knownValues_is_standard_module_4(self):
     self.assertEqual(modutils.is_standard_module('StringIO'), True)
예제 #29
0
 def test_knownValues_is_standard_module_3(self):
     self.assertEqual(modutils.is_standard_module('unknown'), False)
 def test_nonstandard(self):
     self.assertEqual(modutils.is_standard_module('logilab'), False)
예제 #31
0
 def test_knownValues_is_standard_module_2(self):
     self.assertEqual(modutils.is_standard_module("logilab"), False)
예제 #32
0
 def test_knownValues_is_standard_module_custom_path(self):
     self.assertEqual(modutils.is_standard_module('data.module', (DATADIR,)), True)
     self.assertEqual(modutils.is_standard_module('data.module', (path.abspath(DATADIR),)), True)
예제 #33
0
 def test_knownValues_is_standard_module_3(self):
     self.assertEqual(modutils.is_standard_module("unknown"), False)
예제 #34
0
 def test_knownValues_is_standard_module_2(self):
     self.assertEqual(modutils.is_standard_module('logilab'), False)
예제 #35
0
 def test_knownValues_is_standard_module_1(self):
     self.assertEqual(modutils.is_standard_module('sys'), True)