Example #1
0
 def _Import_All (self, mod_skip_pat = None) :
     """Import all modules of this package namespace"""
     from _TFL.import_module import import_module ### avoid circular imports
     from _TFL               import sos
     dir = sos.path.dirname  (self.__file__)
     pns = self.__module_name
     for f in sos.listdir (dir) :
         is_py = f.endswith (".py")
         want = \
             (   (  is_py
                 or sos.path.exists (sos.path.join (dir, f, "__init__.py"))
                 )
             and not
                 (  f.startswith (("__", "."))
                 or f == "setup.py"
                 or ( mod_skip_pat.search (f)
                    if mod_skip_pat is not None else False
                    )
                 )
             )
         if want :
             mn  = f [:-3] if is_py else f
             mod = ".".join ((pns, mn))
             try :
                 import_module (mod)
             except Exception as exc :
                 logging.exception \
                     ( "%s._Import_All: "
                       "exception during import of %s\n    %s"
                     % (self.__name__, mn, exc)
                     )
Example #2
0
def gen (pref, dols, pred) :
    for d in dols :
        dol = path.join (pref, d) if pref else d
        if path.islink (dol) :
            dol = path.realpath (dol)
        if path.isdir (dol) :
            if pred (dol) :
                yield d
            elif path.exists (path.join (dol, ".VX")):
                for r in gen (dol, sos.listdir (dol), pred) :
                    yield path.join (d, r)
Example #3
0
def gen (pref, dols, pred) :
    for d in dols :
        dol = path.join (pref, d) if pref else d
        if path.islink (dol) :
            dol = path.realpath (dol)
        if path.isdir (dol) :
            if pred (dol) :
                yield d
            elif path.exists (path.join (dol, ".VX")):
                for r in gen (dol, sos.listdir (dol), pred) :
                    yield path.join (d, r)
Example #4
0
 def _add_documents (self) :
     for filename in \
         (   f
         for f in sos.listdir (self.directory)
         if  f.endswith (".pdf")
         ) :
             fname = filename.rsplit (".", 2) [0]
             fname = fname.replace ("_", " ")
             fname = fname.replace (".", " ")
             cmd = self.application.ANS.UI.Command \
                 ( fname
                 , TFL.Functor
                     ( self.application._open_manual
                     , sos.path.join (self.directory, filename)
                     )
                 , batchable = False
                 )
             self.add_command \
                 ( "Help"
                 , cmd
                 , if_names = ("mb", )
                 )