def getConflicts(self, conflict): name, version = conflict.name, conflict.version if conflict in self._conflictCache: return self._conflictCache[conflict] pkgs = self.searchPkgByConflict(name) result = {} for pkgObj in pkgs: conflicts = PackageUtil.matchingProvide(pkgObj, conflict) if conflicts: result[pkgObj] = conflicts self._conflictCache[conflict] = result return result
def getProvides(self, provide): name, version = provide.name, provide.version if provide in self._provideCache: return self._provideCache[provide] pkgs = self.searchPkgByProvide(name) result = {} for pkgObj in pkgs: if name[0] == '/' and version is None: result[pkgObj] = [Provide(name, None, None, None, None)] provides = PackageUtil.matchingProvide(pkgObj, provide) if provides: result[pkgObj] = provides self._provideCache[provide] = result return result
def getProvides(self, obj): '''return dict: {packageObject:[provide, provide, ...]}''' if not self.indexBuilt: self.buildIndex() result = {} for pkgObject in self.providePkgDict.get(obj.name, []): provides = PackageUtil.matchingProvide(pkgObject, obj) if provides: result[pkgObject] = provides #if obj.name[0] == '/': # tmpProvide = Require() # tmpProvide.name = name # for pkgObject in self.searchFilesByName(name): # result.setdefault(pkgObject, []).append(tmpProvide) return result