[pypy-commit] pypy set-strategies: added docstrings
l.diekmann
noreply at buildbot.pypy.org
Thu Nov 10 13:51:53 CET 2011
Author: Lukas Diekmann <lukas.diekmann at uni-duesseldorf.de>
Branch: set-strategies
Changeset: r49235:52bb2aea8502
Date: 2011-10-12 15:51 +0200
http://bitbucket.org/pypy/pypy/changeset/52bb2aea8502/
Log: added docstrings
diff --git a/pypy/objspace/std/setobject.py b/pypy/objspace/std/setobject.py
--- a/pypy/objspace/std/setobject.py
+++ b/pypy/objspace/std/setobject.py
@@ -62,77 +62,97 @@
# _____________ strategy methods ________________
- # XXX add docstrings to all the strategy methods
- # particularly, what are all the w_other arguments? any wrapped object? or
- # only sets?
-
def clear(self):
+ """ Removes all elements from the set. """
self.strategy.clear(self)
def copy(self):
+ """ Returns a clone of the set. """
return self.strategy.copy(self)
def length(self):
+ """ Returns the number of items inside the set. """
return self.strategy.length(self)
def add(self, w_key):
+ """ Adds an element to the set. The element must be wrapped. """
self.strategy.add(self, w_key)
def remove(self, w_item):
+ """ Removes the given element from the set. Element must be wrapped. """
return self.strategy.remove(self, w_item)
def getdict_w(self):
+ """ Returns a dict with all elements of the set. Needed only for switching to ObjectSetStrategy. """
return self.strategy.getdict_w(self)
def get_storage_copy(self):
+ """ Returns a copy of the storage. Needed when we want to clone all elements from one set and
+ put them into another. """
return self.strategy.get_storage_copy(self)
def getkeys(self):
+ """ Returns a list of all elements inside the set. Only used in __repr__. Use as less as possible."""
return self.strategy.getkeys(self)
def difference(self, w_other):
+ """ Returns a set with all items that are in this set, but not in w_other. W_other must be a set."""
return self.strategy.difference(self, w_other)
def difference_update(self, w_other):
+ """ As difference but overwrites the sets content with the result. """
return self.strategy.difference_update(self, w_other)
def symmetric_difference(self, w_other):
+ """ Returns a set with all items that are either in this set or in w_other, but not in both. W_other must be a set. """
return self.strategy.symmetric_difference(self, w_other)
def symmetric_difference_update(self, w_other):
+ """ As symmetric_difference but overwrites the content of the set with the result. """
return self.strategy.symmetric_difference_update(self, w_other)
def intersect(self, w_other):
+ """ Returns a set with all items that exists in both sets, this set and in w_other. W_other must be a set. """
return self.strategy.intersect(self, w_other)
def intersect_update(self, w_other):
+ """ Keeps only those elements found in both sets, removing all other elements. """
return self.strategy.intersect_update(self, w_other)
def intersect_multiple(self, others_w):
+ """ Returns a new set of all elements that exist in all of the given iterables."""
return self.strategy.intersect_multiple(self, others_w)
def intersect_multiple_update(self, others_w):
+ """ Same as intersect_multiple but overwrites this set with the result. """
self.strategy.intersect_multiple_update(self, others_w)
def issubset(self, w_other):
+ """ Checks wether this set is a subset of w_other. W_other must be a set. """
return self.strategy.issubset(self, w_other)
def isdisjoint(self, w_other):
+ """ Checks wether this set and the w_other are completly different, i.e. have no equal elements. """
return self.strategy.isdisjoint(self, w_other)
def update(self, w_other):
+ """ Appends all elements from the given set to this set. """
self.strategy.update(self, w_other)
def has_key(self, w_key):
+ """ Checks wether this set contains the given wrapped key."""
return self.strategy.has_key(self, w_key)
def equals(self, w_other):
+ """ Checks wether this set and the given set are equal, i.e. contain the same elements. """
return self.strategy.equals(self, w_other)
def iter(self):
+ """ Returns an iterator of the elements from this set. """
return self.strategy.iter(self)
def popitem(self):
+ """ Removes an arbitrary element from the set. May raise KeyError if set is empty."""
return self.strategy.popitem(self)
class W_SetObject(W_BaseSetObject):
@@ -169,9 +189,11 @@
self.space = space
def get_empty_dict(self):
+ """ Returns an empty dictionary depending on the strategy. Used to initalize a new storage. """
raise NotImplementedError
def get_empty_storage(self):
+ """ Returns an empty storage (erased) object. Used to initialize an empty set."""
raise NotImplementedError
def erase(self, storage):
@@ -367,16 +389,16 @@
class AbstractUnwrappedSetStrategy(object):
_mixin_ = True
- # XXX add
- # docstrings too.
-
def is_correct_type(self, w_key):
+ """ Checks wether the given wrapped key fits this strategy."""
raise NotImplementedError
def unwrap(self, w_item):
+ """ Returns the unwrapped value of the given wrapped item."""
raise NotImplementedError
def wrap(self, item):
+ """ Returns a wrapped version of the given unwrapped item. """
raise NotImplementedError
def get_storage_from_list(self, list_w):
More information about the pypy-commit
mailing list