Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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)