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 1Qg2Jp-0006Pu-BO for garchives@archives.gentoo.org; Sun, 10 Jul 2011 22:17:41 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 8465F21C1D8; Sun, 10 Jul 2011 22:17:29 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 47C6921C1D0 for ; Sun, 10 Jul 2011 22:17:29 +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 A53761B4070 for ; Sun, 10 Jul 2011 22:17:28 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 9228C8004A for ; Sun, 10 Jul 2011 22:17:27 +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: Subject: [gentoo-commits] proj/gentoopm:master commit in: gentoopm/pkgcorepm/ X-VCS-Repository: proj/gentoopm X-VCS-Files: gentoopm/pkgcorepm/filter.py 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: dc6dbc7c57f9ce4f3bed0b88b17d59521ec98043 Date: Sun, 10 Jul 2011 22:17:27 +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: c05a5b72943a9879fa2929274659c07d commit: dc6dbc7c57f9ce4f3bed0b88b17d59521ec98043 Author: Micha=C5=82 G=C3=B3rny gentoo org> AuthorDate: Sun Jul 10 22:13:10 2011 +0000 Commit: Micha=C5=82 G=C3=B3rny gentoo org> CommitDate: Sun Jul 10 22:17:02 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoopm.git;= a=3Dcommit;h=3Ddc6dbc7c pkgcore: transform strings to atoms in filter(). --- gentoopm/pkgcorepm/filter.py | 2 ++ gentoopm/pkgcorepm/pkg.py | 13 ++++++++++++- gentoopm/pkgcorepm/repo.py | 9 +++++---- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/gentoopm/pkgcorepm/filter.py b/gentoopm/pkgcorepm/filter.py index 6201637..d7218b7 100644 --- a/gentoopm/pkgcorepm/filter.py +++ b/gentoopm/pkgcorepm/filter.py @@ -21,6 +21,8 @@ def transform_filters(args, kwargs): f =3D [] =20 for a in args: + if isinstance(a, basestring): + a =3D PkgCoreAtom(a) if isinstance(a, PkgCoreAtom): f.append(a._r) else: diff --git a/gentoopm/pkgcorepm/pkg.py b/gentoopm/pkgcorepm/pkg.py index 220473f..8e344d0 100644 --- a/gentoopm/pkgcorepm/pkg.py +++ b/gentoopm/pkgcorepm/pkg.py @@ -4,7 +4,18 @@ # Released under the terms of the 2-clause BSD license. =20 from gentoopm.basepm.metadata import PMPackageMetadata -from gentoopm.basepm.pkg import PMPackage +from gentoopm.basepm.pkg import PMPackage, PMPackageSet, PMFilteredPacka= geSet +from gentoopm.pkgcorepm.atom import PkgCoreAtom + +class PkgCorePackageSet(PMPackageSet): + def filter(self, *args, **kwargs): + newargs =3D [(a if not isinstance(a, basestring) + else PkgCoreAtom(a)) for a in args] + + return PkgCoreFilteredPackageSet(self, newargs, kwargs) + +class PkgCoreFilteredPackageSet(PkgCorePackageSet, PMFilteredPackageSet)= : + pass =20 class PkgCorePackage(PMPackage): def __init__(self, pkg, repo_index =3D 0): diff --git a/gentoopm/pkgcorepm/repo.py b/gentoopm/pkgcorepm/repo.py index cd25359..c76d3c6 100644 --- a/gentoopm/pkgcorepm/repo.py +++ b/gentoopm/pkgcorepm/repo.py @@ -7,7 +7,8 @@ import pkgcore.restrictions.boolean as br =20 from gentoopm.basepm.repo import PMRepository, PMRepositoryDict, \ PMEbuildRepository -from gentoopm.pkgcorepm.pkg import PkgCorePackage +from gentoopm.pkgcorepm.pkg import PkgCorePackage, PkgCorePackageSet, \ + PkgCoreFilteredPackageSet from gentoopm.pkgcorepm.filter import transform_filters =20 class PkgCoreRepoDict(PMRepositoryDict): @@ -18,7 +19,7 @@ class PkgCoreRepoDict(PMRepositoryDict): def __init__(self, stack): self._stack =3D stack =20 -class PkgCoreRepository(PMRepository): +class PkgCoreRepository(PkgCorePackageSet, PMRepository): _index =3D 0 def __init__(self, repo_obj): self._repo =3D repo_obj @@ -35,7 +36,7 @@ class PkgCoreRepository(PMRepository): if filt: r =3D PkgCoreFilteredRepo(self, filt) if newargs or newkwargs: - r =3D PMRepository.filter(r, *args, **kwargs) + r =3D PkgCoreFilteredPackageSet(r, args, kwargs) =20 return r =20 @@ -58,7 +59,7 @@ class PkgCoreFilteredRepo(PkgCoreRepository): r =3D PkgCoreFilteredRepo(self._repo, br.AndRestriction(self._filt, filt)) if newargs or newkwargs: - r =3D PMRepository.filter(r, *args, **kwargs) + r =3D PkgCoreFilteredPackageSet(r, args, kwargs) =20 return r =20