From: Evan Broder Date: Mon, 23 Nov 2009 04:06:44 +0000 (-0500) Subject: Adjust for the fact that Python 2.5 doesn't have collections.MutableSet. X-Git-Tag: 0.1.1~2 X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/python-afs.git/commitdiff_plain/5f256964f30b0f7423034048b7911600f8d4c3a9?ds=sidebyside 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 --- 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.