Ejemplo n.º 1
0
 def __new__(cls, name, bases, attrs):
     super_new = super(RegisterEngine, cls).__new__
     new_class = super_new(cls, name, bases, attrs)
     if(name != "BaseEngine"):
         EngineRegistrar.registerPackage(new_class, new_class.__name__, new_class.categories)
         methodList = [method for method in dir(new_class) if callable(getattr(new_class, method))]
         registeredMethods = [method for method in methodList if hasattr(getattr(new_class, method), "registerThis")]
         for method in registeredMethods:
             CommandRegistrar.registerCommand(new_class.__name__, getattr(new_class, method), getattr(new_class, method).__name__)
     return new_class
Ejemplo n.º 2
0
def get_dependencies(eng):      
    if(eng.depends == []): return [eng.__name__]
    new_depends = [eng.__name__]
    for depend_name in eng.depends:
         eng = EngineRegistrar.getPackage(depend_name)
         if eng is None:
            eng = generateDynamicClass(depend_name)
            if eng is None:
                print "Could Not Identify Dependency %s as Package or Factory" % basePackage
                return
                
         new_depends = merge_depends(new_depends, eng.depends)
    return new_depends
Ejemplo n.º 3
0
    def resolveDepends(self):
        for pack_name in self.depends:
            print pack_name
            package = EngineRegistrar.getPackage(pack_name)
            if(package is None):
                package = generateDynamicClass(pack_name)
                if(package is None):
                    print "Could Not Identify Dependency %s as Package or Factory" % basePackage
                    return

            pack_class = package(settings = self.settings)
            pack_class.install()
            self.settings = pack_class.settings
Ejemplo n.º 4
0
    def resolveDepends(self):
        __newDepends = dict()
        for pack_name in self.__depends__.keys():
            package = EngineRegistrar.getPackage(pack_name)
            if(isinstance(self.__depends__[pack_name], dict)):
                pack = package(copy.deepcopy(self.__depends__[pack_name]))
                if not pack.installed: pack.install()
                __newDepends[pack_name] = pack.getResolutions(copy.deepcopy(self.__depends__[pack_name]))
                for key in __newDepends[pack_name].keys():
                    ret_val = pack.requestVariable(key)
                    if ret_val is not None: __newDepends[pack_name][key] = ret_val

            elif(isinstance(self.__depends__[pack_name], list)):
                __newDepends[pack_name] = list()
                for item in self.__depends__[pack_name]:
                    pack = package(copy.deepcopy(item))
                    if not pack.installed: pack.install()
                    __newDepends[pack_name].append(pack.getResolutions(copy.deepcopy(item)))
                    for key in __newDepends[pack_name][-1].keys():
                        ret_val = pack.requestVariable(key)
                        if ret_val is not None: __newDepends[pack_name][-1][key] = ret_val

        self.__depends__ = __newDepends
Ejemplo n.º 5
0
def packageExists(name):
    return EngineRegistrar.packageExists(name)
Ejemplo n.º 6
0
def getPackage(name):
    return EngineRegistrar.getPackage(name)
Ejemplo n.º 7
0
def registerEngine(cls):
    EngineRegistrar.registerPackage(cls, cls.__name__, cls.categories)