def sort(self, pkgs): """ sort pkg with (arch, (epoch, version, release), repoid) """ if self._arch is None: self._arch = arch.getBestArch() pkgs = sorted(pkgs, lambda x, y: self._comparePkg(x, y, self._arch)) return pkgs
def _filterAndSortPackages(self, pkgs, oldpkg = None): if oldpkg is None: compareArch = arch.getBestArch() else: compareArch = oldpkg.arch pkgSorter = PackageArchSorter(compareArch) pkgs = pkgSorter.sort(pkgs) archFilter = PackageArchFilter(arch.getBestArch()) pkgs = archFilter.filter(pkgs) if len(pkgs) < 2: return pkgs #distinct same version pkg result = [pkgs[0]] for index in range(1, len(pkgs)): if result[-1].getTuple() != pkgs[index].getTuple(): result.append(pkgs[index]) return result