Commit d348a826 authored by David Wilson's avatar David Wilson

master: tidy up trixxy importer syntax slightly

parent 7080751f
......@@ -310,11 +310,13 @@ class ModuleFinder(object):
try:
path = self._py_filename(loader.get_filename(fullname))
source = loader.get_source(fullname)
if path is not None and source is not None:
return path, source, loader.is_package(fullname)
is_pkg = loader.is_package(fullname)
except AttributeError:
return
if path is not None and source is not None:
return path, source, is_pkg
def _get_module_via_sys_modules(self, fullname):
"""Attempt to fetch source code via sys.modules. This is specifically
to support __main__, but it may catch a few more cases."""
......@@ -324,22 +326,21 @@ class ModuleFinder(object):
fullname)
return
modpath = self._py_filename(getattr(module, '__file__', ''))
if not modpath:
path = self._py_filename(getattr(module, '__file__', ''))
if not path:
return
is_pkg = hasattr(module, '__path__')
try:
source = inspect.getsource(module)
except IOError:
# Work around inspect.getsourcelines() bug.
# Work around inspect.getsourcelines() bug for 0-byte __init__.py
# files.
if not is_pkg:
raise
source = '\n'
return (module.__file__.rstrip('co'),
source,
hasattr(module, '__path__'))
return path, source, is_pkg
get_module_methods = [_get_module_via_pkgutil,
_get_module_via_sys_modules]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment