def _path_of (self, dir, py_name) : b_name = TFL.sos.path.join (dir, py_name) m_name = b_name + ".py" p_name = TFL.sos.path.join (b_name, "__init__.py") m_prefix = ".".join (py_name.split (TFL.sos.sep) [:-1]) if TFL.sos.path.isfile (m_name) : return P_M (py_name, m_name, m_prefix) if TFL.sos.path.isfile (p_name) : prefix = ".".join (py_name.split (TFL.sos.sep)) return P_P (py_name, p_name, prefix) if m_prefix in self.d_pns_chains : fullmodule = py_name.replace (TFL.sos.path.sep, ".") try : i = DPN_Importer (self.d_pns_chains [m_prefix]) i.find_module (fullmodule) except ImportError : pass else : mod, fname = i.get_filename (fullmodule) if TFL.sos.path.isdir (fname) : return ml = mod.split (".") pkg = ".".join (ml [:-1]) result = P_M (TFL.sos.sep.join (ml), fname, pkg) assert self.derived_modules.get (fullmodule, mod) == mod self.derived_modules [fullmodule] = mod return result
def __init__ (self, parent, * lazy_resolvers, ** kw) : c_scope, module_name, name = self._args_from_kw (kw) Package_Namespace.__init__ \ ( self, * lazy_resolvers , module_name = module_name , name = name , c_scope = c_scope ) self._parent = parent self.__cached = {} mod = sys.modules [module_name] from _TFL.Importers import DPN_Importer DPN_Importer.register (mod, module_name, parent)