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
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
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
def getPackage(name): return EngineRegistrar.getPackage(name)