From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QeZ7F-0000k5-CN for garchives@archives.gentoo.org; Wed, 06 Jul 2011 20:54:37 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 11C9821C095; Wed, 6 Jul 2011 20:54:19 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id D65D121C095 for ; Wed, 6 Jul 2011 20:54:19 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4C1082AC027 for ; Wed, 6 Jul 2011 20:54:19 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id ABBEE8003D for ; Wed, 6 Jul 2011 20:54:18 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <2b23035543335ca792f9bc92be9db97ccda3a3a3.mgorny@gentoo> Subject: [gentoo-commits] proj/gentoopm:master commit in: gentoopm/pkgcorepm/ X-VCS-Repository: proj/gentoopm X-VCS-Files: gentoopm/pkgcorepm/pkg.py gentoopm/pkgcorepm/repo.py X-VCS-Directories: gentoopm/pkgcorepm/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 2b23035543335ca792f9bc92be9db97ccda3a3a3 Date: Wed, 6 Jul 2011 20:54:18 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 341052615fd3116a25cf97b2a2580b67 commit: 2b23035543335ca792f9bc92be9db97ccda3a3a3 Author: Micha=C5=82 G=C3=B3rny gentoo org> AuthorDate: Wed Jul 6 17:53:03 2011 +0000 Commit: Micha=C5=82 G=C3=B3rny gentoo org> CommitDate: Wed Jul 6 17:53:03 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoopm.git;= a=3Dcommit;h=3D2b230355 pkgcore: reimplement complete package sorting. --- gentoopm/pkgcorepm/pkg.py | 10 +++++----- gentoopm/pkgcorepm/repo.py | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gentoopm/pkgcorepm/pkg.py b/gentoopm/pkgcorepm/pkg.py index 559a229..8407c7e 100644 --- a/gentoopm/pkgcorepm/pkg.py +++ b/gentoopm/pkgcorepm/pkg.py @@ -7,8 +7,9 @@ from gentoopm.basepm.metadata import PMPackageMetadata from gentoopm.basepm.pkg import PMPackage =20 class PkgCorePackage(PMPackage): - def __init__(self, pkg): + def __init__(self, pkg, repo_index =3D 0): self._pkg =3D pkg + self._repo_index =3D repo_index =20 @property def metadata(self): @@ -21,10 +22,9 @@ class PkgCorePackage(PMPackage): def __cmp__(self, other): if not isinstance(other, PkgCorePackage): raise TypeError('Unable to compare %s against %s' % \ - self, other) - if self._pkg.key !=3D other._pkg.key: - raise TypeError('Unable to compare ebuilds with different PNs') - return self._pkg.__cmp__(other._pkg) + (self, other)) + return cmp(self._pkg, other._pkg) \ + or cmp(other._repo_index, self._repo_index) =20 class PkgCoreMetadata(PMPackageMetadata): def __init__(self, pkg): diff --git a/gentoopm/pkgcorepm/repo.py b/gentoopm/pkgcorepm/repo.py index b0f0593..0bb1a78 100644 --- a/gentoopm/pkgcorepm/repo.py +++ b/gentoopm/pkgcorepm/repo.py @@ -16,12 +16,14 @@ class PkgCoreRepoDict(PMRepositoryDict): self._stack =3D stack =20 class PkgCoreRepository(PMRepository): + _index =3D 0 def __init__(self, repo_obj): self._repo =3D repo_obj =20 def __iter__(self): + index =3D self._index for pkg in self._repo: - yield PkgCorePackage(pkg) + yield PkgCorePackage(pkg, index) =20 class PkgCoreEbuildRepo(PkgCoreRepository, PMEbuildRepository): def __init__(self, repo_obj, index):