From 5f256964f30b0f7423034048b7911600f8d4c3a9 Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Sun, 22 Nov 2009 23:06:44 -0500 Subject: [PATCH 1/1] Adjust for the fact that Python 2.5 doesn't have collections.MutableSet. When the MutableSet mixin isn't available, we fall back on just deriving from object. This means that comparisons between membership sets like __le__ as well as operators like __or__ aren't available, but it seems unlikely those will be used for manipulating the AFS protection database. Signed-off-by: Evan Broder --- afs/pts.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/afs/pts.py b/afs/pts.py index 4d3e17c..f99bc8f 100644 --- a/afs/pts.py +++ b/afs/pts.py @@ -1,7 +1,12 @@ import collections from afs import _pts -class PTRelationSet(collections.MutableSet): +try: + SetMixin = collections.MutableSet +except AttributeError: + SetMixin = object + +class PTRelationSet(SetMixin): """Collection class for the groups/members of a PTEntry. This class, which acts like a set, is actually a view of the @@ -167,6 +172,16 @@ class PTRelationSet(collections.MutableSet): self._discard(elt) + def remove(self, elt): + """Remove an entity from a group; it must already be a member. + + If the entity is not a member, raise a KeyError. + """ + if elt not in self: + raise KeyError(elt) + + self.discard(elt) + class PTEntry(object): """An entry in the AFS protection database. -- 1.7.9.5