checkmappings.py 1.08 KB
#!/usr/bin/env python
from pkgutil import walk_packages
from os import path

__all__ = []
__pkg_prefix = "%s." % __name__
__pkg_path = path.abspath('floraconcierge/mapping/')

for loader, modname, _ in walk_packages([__pkg_path]):
    #load the module / package
    print 'Trying to import floraconcierge.mapping.%s' % modname
    module = loader.find_module(modname).load_module(modname)
    modname = modname[len(__pkg_prefix):]  #strip package prefix from name
    #append all toplevel modules and packages to __all__
    if not "." in modname:
        __all__.append(modname)
        globals()[modname] = module
    #set everything else as an attribute of their parent package
    else:
        #get the toplevel package from globals()
        pkg_name, rest = modname.split(".", 1)
        pkg = globals()[pkg_name]
        #recursively get the modules parent package via getattr
        while "." in rest:
            subpkg, rest = rest.split(".", 1)
            pkg = getattr(pkg, subpkg)
        #set the module (or package) as an attribute of its parent package
        setattr(pkg, rest, module)