Exemplo n.º 1
0
 def __init__(self, ns_path, ident=None, inherited=None, force=False, **kargs):
     M.__init__(self, **kargs)
     self._namespace_desc_ = M()
     self._namespace_desc_['name'] = os.path.split(ns_path)[-1]
     self._namespace_desc_['path'] = ns_path
     self._namespace_desc_['ident'] = ident
     self._namespace_desc_['inherited'] = inherited
     if os.path.exists(ns_path):
         flist = Dir.show(ns_path, '*.py')
         for fname in flist:
             module = Module(fname, ident, inherited, force)
             if len(module) > 0: self[module._module_desc_.name] = module
Exemplo n.º 2
0
 def __init__(self, work_path, ident=None, inherited=None, force=False, **kargs):
     M.__init__(self, **kargs)
     self._workspace_desc_ = M()
     self._workspace_desc_['path'] = work_path
     self._workspace_desc_['ident'] = ident
     self._workspace_desc_['inherited'] = inherited
     if os.path.exists(work_path):
         dlist = Dir.showall(work_path)
         for dname in dlist:
             ns_path = work_path + '/' + dname
             if Dir.isDir(ns_path):
                 ns = NameSpace(ns_path, ident, inherited, force, **kargs)
                 if len(ns) > 0: self[ns._namespace_desc_.name] = ns
Exemplo n.º 3
0
 def __init__(self, file_path, ident=None, inherited=None, force=False, **kargs):
     M.__init__(self, **kargs)
     self._module_desc_ = M()
     self._module_desc_['path'] = file_path
     self._module_desc_['ident'] = ident
     self._module_desc_['inherited'] = inherited
     
     if os.path.exists(file_path):
         self._module_desc_['name'], self._module_desc_['ext'] = os.path.splitext(os.path.split(file_path)[-1])
         if force == False and file_path in Module._PYGICS_MODULE_GLOVAL_MAP_: data = Module._PYGICS_MODULE_GLOVAL_MAP_[file_path]
         else:
             if self._module_desc_['ext'].lower() == '.py':
                 Module._PYGICS_MODULE_GLOVAL_MAP_[file_path] = imp.load_source(self._module_desc_['name'], file_path)
                 data =  Module._PYGICS_MODULE_GLOVAL_MAP_[file_path]
             elif self._module_desc_['ext'].lower() == '.pyc':
                 Module._PYGICS_MODULE_GLOVAL_MAP_[file_path] = imp.load_compiled(self._module_desc_['name'], file_path)
                 data =  Module._PYGICS_MODULE_GLOVAL_MAP_[file_path]
             else: data = None
         if data:
             if self._module_desc_.ident:
                 if not instof(self._module_desc_.ident, list): self._module_desc_['ident'] = L(self._module_desc_.ident)
             if self._module_desc_.inherited:
                 if not instof(self._module_desc_.inherited, list): self._module_desc_['inherited'] = L(self._module_desc_.inherited)
             if self._module_desc_.ident != None or self._module_desc_.inherited != None:
                 for name in data.__dict__:
                     element = data.__dict__[name]
                     elem_name = nameof(element)
                     if hasattr(element, '__bases__'):
                         elem_match = True
                         if self._module_desc_.ident != None:
                             if elem_name not in self._module_desc_.ident: elem_match = False
                         if self._module_desc_.inherited != None:
                             mro = inspect.getmro(element)
                             for obj in mro:
                                 if nameof(obj) in self._module_desc_.inherited and elem_name not in self._module_desc_.inherited: break
                             else: elem_match = False
                         if elem_match:
                             if name not in self: self[name] = element
                     elif self._module_desc_.inherited == None:
                         if elem_name in self._module_desc_.ident:
                             if name not in self: self[name] = element
             else:
                 for name in data.__dict__:
                     element = data.__dict__[name]
                     if hasattr(element, '__bases__'):
                         if re.search('^%s[\.w+]+' % self._module_desc_.name, nameof(element)):
                             if name not in self: self[name] = element
                     elif typeof(element) != 'module' and name not in Module._PYGICS_RESERVED_KEY_:
                         if name not in self: self[name] = element
Exemplo n.º 4
0
 def __init__(self,
              ns_path,
              ident=None,
              inherited=None,
              force=False,
              **kargs):
     M.__init__(self, **kargs)
     self._namespace_desc_ = M()
     self._namespace_desc_['name'] = os.path.split(ns_path)[-1]
     self._namespace_desc_['path'] = ns_path
     self._namespace_desc_['ident'] = ident
     self._namespace_desc_['inherited'] = inherited
     if os.path.exists(ns_path):
         flist = Dir.show(ns_path, '*.py')
         for fname in flist:
             module = Module(fname, ident, inherited, force)
             if len(module) > 0: self[module._module_desc_.name] = module
Exemplo n.º 5
0
 def __init__(self,
              work_path,
              ident=None,
              inherited=None,
              force=False,
              **kargs):
     M.__init__(self, **kargs)
     self._workspace_desc_ = M()
     self._workspace_desc_['path'] = work_path
     self._workspace_desc_['ident'] = ident
     self._workspace_desc_['inherited'] = inherited
     if os.path.exists(work_path):
         dlist = Dir.showall(work_path)
         for dname in dlist:
             ns_path = work_path + '/' + dname
             if Dir.isDir(ns_path):
                 ns = NameSpace(ns_path, ident, inherited, force, **kargs)
                 if len(ns) > 0: self[ns._namespace_desc_.name] = ns
Exemplo n.º 6
0
    def __init__(self,
                 file_path,
                 ident=None,
                 inherited=None,
                 force=False,
                 **kargs):
        M.__init__(self, **kargs)
        self._module_desc_ = M()
        self._module_desc_['path'] = file_path
        self._module_desc_['ident'] = ident
        self._module_desc_['inherited'] = inherited

        if os.path.exists(file_path):
            self._module_desc_['name'], self._module_desc_[
                'ext'] = os.path.splitext(os.path.split(file_path)[-1])
            if force == False and file_path in Module._PYGICS_MODULE_GLOVAL_MAP_:
                data = Module._PYGICS_MODULE_GLOVAL_MAP_[file_path]
            else:
                if self._module_desc_['ext'].lower() == '.py':
                    Module._PYGICS_MODULE_GLOVAL_MAP_[
                        file_path] = imp.load_source(
                            self._module_desc_['name'], file_path)
                    data = Module._PYGICS_MODULE_GLOVAL_MAP_[file_path]
                elif self._module_desc_['ext'].lower() == '.pyc':
                    Module._PYGICS_MODULE_GLOVAL_MAP_[
                        file_path] = imp.load_compiled(
                            self._module_desc_['name'], file_path)
                    data = Module._PYGICS_MODULE_GLOVAL_MAP_[file_path]
                else:
                    data = None
            if data:
                if self._module_desc_.ident:
                    if not instof(self._module_desc_.ident, list):
                        self._module_desc_['ident'] = L(
                            self._module_desc_.ident)
                if self._module_desc_.inherited:
                    if not instof(self._module_desc_.inherited, list):
                        self._module_desc_['inherited'] = L(
                            self._module_desc_.inherited)
                if self._module_desc_.ident != None or self._module_desc_.inherited != None:
                    for name in data.__dict__:
                        element = data.__dict__[name]
                        elem_name = nameof(element)
                        if hasattr(element, '__bases__'):
                            elem_match = True
                            if self._module_desc_.ident != None:
                                if elem_name not in self._module_desc_.ident:
                                    elem_match = False
                            if self._module_desc_.inherited != None:
                                mro = inspect.getmro(element)
                                for obj in mro:
                                    if nameof(
                                            obj
                                    ) in self._module_desc_.inherited and elem_name not in self._module_desc_.inherited:
                                        break
                                else:
                                    elem_match = False
                            if elem_match:
                                if name not in self: self[name] = element
                        elif self._module_desc_.inherited == None:
                            if elem_name in self._module_desc_.ident:
                                if name not in self: self[name] = element
                else:
                    for name in data.__dict__:
                        element = data.__dict__[name]
                        if hasattr(element, '__bases__'):
                            if re.search(
                                    '^%s[\.w+]+' % self._module_desc_.name,
                                    nameof(element)):
                                if name not in self: self[name] = element
                        elif typeof(
                                element
                        ) != 'module' and name not in Module._PYGICS_RESERVED_KEY_:
                            if name not in self: self[name] = element