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 1QmTO4-0007tL-0x for garchives@archives.gentoo.org; Thu, 28 Jul 2011 16:24:40 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id DE01F21C1A3; Thu, 28 Jul 2011 16:24:02 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id B16EF21C21C for ; Thu, 28 Jul 2011 16:24:02 +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 2DCC41B402B for ; Thu, 28 Jul 2011 16:24:02 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 3B0BE8001E for ; Thu, 28 Jul 2011 16:24:01 +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/paludispm/ X-VCS-Repository: proj/gentoopm X-VCS-Files: gentoopm/paludispm/atom.py gentoopm/paludispm/depend.py X-VCS-Directories: gentoopm/paludispm/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: ec043d62f5056b9d7f7bcd929ae578ed0b553368 Date: Thu, 28 Jul 2011 16:24:01 +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: fb8e678ff5b72f71e099149a5efeb7a4 commit: ec043d62f5056b9d7f7bcd929ae578ed0b553368 Author: Micha=C5=82 G=C3=B3rny gentoo org> AuthorDate: Thu Jul 28 15:39:03 2011 +0000 Commit: Micha=C5=82 G=C3=B3rny gentoo org> CommitDate: Thu Jul 28 15:39:03 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoopm.git;= a=3Dcommit;h=3Dec043d62 Paludis: support blocking atoms. --- gentoopm/paludispm/atom.py | 5 +++-- gentoopm/paludispm/depend.py | 7 ++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gentoopm/paludispm/atom.py b/gentoopm/paludispm/atom.py index c416cb1..ea1d233 100644 --- a/gentoopm/paludispm/atom.py +++ b/gentoopm/paludispm/atom.py @@ -69,8 +69,9 @@ class PaludisAtom(PMAtom): paludis.RepositoryNameError): raise InvalidAtomStringError('Incorrect atom: %s' % s) =20 - def __init__(self, s, env): + def __init__(self, s, env, block =3D ''): self._incomplete =3D False + self._blocking =3D block if isinstance(s, paludis.PackageDepSpec): self._atom =3D s else: @@ -114,7 +115,7 @@ class PaludisAtom(PMAtom): def __str__(self): if self._incomplete: raise ValueError('Unable to stringify incomplete atom') - return str(self._atom) + return '%s%s' % (self._blocking, str(self._atom)) =20 @property def complete(self): diff --git a/gentoopm/paludispm/depend.py b/gentoopm/paludispm/depend.py index 91a2e3c..ee5ad4c 100644 --- a/gentoopm/paludispm/depend.py +++ b/gentoopm/paludispm/depend.py @@ -3,12 +3,14 @@ # (c) 2011 Micha=C5=82 G=C3=B3rny # Released under the terms of the 2-clause BSD license. =20 -import paludis +import paludis, re =20 from gentoopm.basepm.depend import PMPackageDepSet, PMConditionalDep, \ PMAnyOfDep, PMAllOfDep, PMExactlyOneOfDep, PMBaseDep from gentoopm.paludispm.atom import PaludisAtom =20 +_block_re =3D re.compile('^!*') + class PaludisBaseDep(PMBaseDep): def __init__(self, deps, pkg): self._deps =3D deps @@ -18,6 +20,9 @@ class PaludisBaseDep(PMBaseDep): for d in self._deps: if isinstance(d, paludis.PackageDepSpec): yield PaludisAtom(d, self._pkg._env) + elif isinstance(d, paludis.BlockDepSpec): + yield PaludisAtom(d.blocking, self._pkg._env, + block =3D _block_re.match(d.text).group(0)) elif isinstance(d, paludis.AnyDepSpec): yield PaludisAnyOfDep(d, self._pkg) elif isinstance(d, paludis.AllDepSpec):