from imp import find_module
from pkgutil import ImpImporter
from os.path import *

for a in (imp.PY_SOURCE,
          imp.PY_COMPILED,
          imp.C_EXTENSION,
          imp.PY_RESOURCE,
          imp.PKG_DIRECTORY,
          imp.C_BUILTIN,
          imp.PY_FROZEN):
    print a


modname = 'signal'
mod = ImpImporter().find_module(modname)
print 'mod', mod
print 'filename', mod.get_filename()
print 'source', mod.get_source()
print 'code', mod.get_code()
print 'file', mod.file
print 'etc', mod.etc
## print 'ispackage', mod.is_package('util')
## print 'data', mod.get_data()

for a in dir(mod):
    v = getattr(mod, a)
    print a, v


Beispiel #2
0
 def __init__(self, path):
     super(PyModulePath, self).__init__()
     self.is_pymodule = self.is_file() and \
                        lexer.analyse_text(self.open().read()) == 1.0
     if self.is_pymodule:
         self.module = ImpImporter(str(self.resolve().parent)) \
                       .find_module(self.stem).load_module(self.stem)
Beispiel #3
0
    def get_importer(path_item):
        """Retrieve a PEP 302 importer for the given path item
        """
        if sys.version < '2.3':
            importer = None
        else:
            try:
                importer = sys.path_importer_cache[path_item]
            except KeyError:
                for path_hook in sys.path_hooks:
                    try:
                        importer = path_hook(path_item)
                        break
                    except ImportError:
                        pass
                else:
                    importer = None
                sys.path_importer_cache.setdefault(path_item, importer)

        # The boolean values are used for caching valid and invalid
        # file paths for the built-in import machinery
        if importer in (None, True, False):
            try:
                importer = ImpImporter(path_item)
            except ImportError:
                importer = None
        return importer
Beispiel #4
0
def find_mod(modname, fn):

    print '\n\n\n-----', modname, fn

    mod = ImpImporter().find_module(modname)
    print 'global', mod, mod and mod.get_filename()

    mod = ImpImporter(dirname(fn)).find_module(modname)
    print 'local', mod, mod and mod.get_filename()

    try:
        mod = find_module(modname)
    except ImportError:
        mod = 'ERROR'
    print 'imp global', mod

    try:
        mod = find_module(modname, dirname(fn))
    except ImportError:
        mod = 'ERROR'
    print 'imp local', mod
Beispiel #5
0
 def iter_importers(fullname=''):
     if '.' in fullname:
         # Get the containing package's __path__
         pkg = '.'.join(fullname.split('.')[:-1])
         if pkg not in sys.modules:
             __import__(pkg)
         path = sys.modules[pkg].__path__
     else:
         # sys.meta_path is available in Python 2.3+
         for importer in getattr(sys, 'meta_path', []):
             yield importer
         path = sys.path
     for item in path:
         yield get_importer(item)
     if '.' not in fullname:
         yield ImpImporter()
Beispiel #6
0
def find_mod(modname, fn):

    print('\n\n\n-----', modname, fn)

    mod = ImpImporter().find_module(modname)
    print('global', mod, mod and mod.get_filename())

    mod = ImpImporter(dirname(fn)).find_module(modname)
    print('local', mod, mod and mod.get_filename())

    try:
        mod = find_module(modname)
    except ImportError:
        mod = 'ERROR'
    print('imp global', mod)

    try:
        mod = find_module(modname, dirname(fn))
    except ImportError:
        mod = 'ERROR'
    print('imp local', mod)
Beispiel #7
0
 def __init__(self, path=None):
     object.__init__(self)
     ImpImporter.__init__(self, path)
#!/usr/bin/env python
import types, imp
from imp import find_module
from pkgutil import ImpImporter
from os.path import *

for a in (imp.PY_SOURCE, imp.PY_COMPILED, imp.C_EXTENSION, imp.PY_RESOURCE,
          imp.PKG_DIRECTORY, imp.C_BUILTIN, imp.PY_FROZEN):
    print a

modname = 'signal'
mod = ImpImporter().find_module(modname)
print 'mod', mod
print 'filename', mod.get_filename()
print 'source', mod.get_source()
print 'code', mod.get_code()
print 'file', mod.file
print 'etc', mod.etc
## print 'ispackage', mod.is_package('util')
## print 'data', mod.get_data()

for a in dir(mod):
    v = getattr(mod, a)
    print a, v
#!/usr/bin/env python
import sys, types, imp
from imp import find_module
from pkgutil import ImpImporter
from os.path import *

root = '/home/blais/p/snakefood/test/snakefood'
sys.path.insert(0, root)

## i = ImpImporter(join(root, 'project'))
## mod = i.find_module('bar')
## print mod, mod.get_filename()

## import project.bar

i = ImpImporter()
mod = i.find_module('project')
print mod, mod.get_filename()

i = ImpImporter(dirname(mod.get_filename()))
mod = i.find_module('bar')
print mod, mod.get_filename()
Beispiel #10
0
#!/usr/bin/env python
import sys, types, imp
from imp import find_module
from pkgutil import ImpImporter
from os.path import *


root = '/home/blais/p/snakefood/test/snakefood'
sys.path.insert(0, root)

## i = ImpImporter(join(root, 'project'))
## mod = i.find_module('bar')
## print mod, mod.get_filename()

## import project.bar

i = ImpImporter()
mod = i.find_module('project')
print mod, mod.get_filename()

i = ImpImporter(dirname(mod.get_filename()))
mod = i.find_module('bar')
print mod, mod.get_filename()




Beispiel #11
0
 def _get_package_loader(self):
     return ImpImporter(self.filename).find_module('__init__')