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 1QmTNt-0007qH-Ie for garchives@archives.gentoo.org; Thu, 28 Jul 2011 16:24:29 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 778DB21C1A2; 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 48FED21C1A2 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 C25F71B4017 for ; Thu, 28 Jul 2011 16:24:01 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 83EA080042 for ; Thu, 28 Jul 2011 16:24:00 +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: <9f786534a3828be4f3d7030d773e7a82a542d7f5.mgorny@gentoo> Subject: [gentoo-commits] proj/gentoopm:master commit in: gentoopm/basepm/ X-VCS-Repository: proj/gentoopm X-VCS-Files: gentoopm/basepm/depend.py X-VCS-Directories: gentoopm/basepm/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 9f786534a3828be4f3d7030d773e7a82a542d7f5 Date: Thu, 28 Jul 2011 16:24:00 +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: ca8ffcc2ef02feba25242b99a10e2624 commit: 9f786534a3828be4f3d7030d773e7a82a542d7f5 Author: Micha=C5=82 G=C3=B3rny gentoo org> AuthorDate: Thu Jul 28 14:46:53 2011 +0000 Commit: Micha=C5=82 G=C3=B3rny gentoo org> CommitDate: Thu Jul 28 14:46:53 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoopm.git;= a=3Dcommit;h=3D9f786534 Introduce an abstract exactly-one-of dep. --- gentoopm/basepm/depend.py | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/gentoopm/basepm/depend.py b/gentoopm/basepm/depend.py index ca6d2c5..923cdbf 100644 --- a/gentoopm/basepm/depend.py +++ b/gentoopm/basepm/depend.py @@ -100,6 +100,18 @@ class PMAnyOfDep(PMBaseDep): class PMUncondAnyOfDep(PMAnyOfDep, PMUncondBaseDep): pass =20 +class PMExactlyOneOfDep(PMBaseDep): + """ + An exactly-one-of (xor) dependency set (C{^^ ( ... )}). + """ + + @property + def without_conditionals(self): + return PMUncondExactlyOneOfDep(self) + +class PMUncondExactlyOneOfDep(PMExactlyOneOfDep, PMUncondBaseDep): + pass + class PMPackageDepSet(PMAllOfDep): """ A base class representing a depset (or depset-like variable) of a singl= e