mirror of https://github.com/python/cpython
Add Raymond H to the list of authors; add some XXX comments about
possible API improvements.
This commit is contained in:
parent
43db0d6a2c
commit
26588222b3
|
@ -51,6 +51,9 @@ what's tested is actually `z in y'.
|
||||||
#
|
#
|
||||||
# - Guido van Rossum rewrote much of the code, made some API changes,
|
# - Guido van Rossum rewrote much of the code, made some API changes,
|
||||||
# and cleaned up the docstrings.
|
# and cleaned up the docstrings.
|
||||||
|
#
|
||||||
|
# - Raymond Hettinger implemented a number of speedups and other
|
||||||
|
# improvements.
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['BaseSet', 'Set', 'ImmutableSet']
|
__all__ = ['BaseSet', 'Set', 'ImmutableSet']
|
||||||
|
@ -67,6 +70,7 @@ class BaseSet(object):
|
||||||
"""This is an abstract class."""
|
"""This is an abstract class."""
|
||||||
# Don't call this from a concrete subclass!
|
# Don't call this from a concrete subclass!
|
||||||
if self.__class__ is BaseSet:
|
if self.__class__ is BaseSet:
|
||||||
|
# XXX Maybe raise TypeError instead, like basestring()?
|
||||||
raise NotImplementedError, ("BaseSet is an abstract class. "
|
raise NotImplementedError, ("BaseSet is an abstract class. "
|
||||||
"Use Set or ImmutableSet.")
|
"Use Set or ImmutableSet.")
|
||||||
|
|
||||||
|
@ -285,6 +289,8 @@ class ImmutableSet(BaseSet):
|
||||||
|
|
||||||
def __init__(self, seq):
|
def __init__(self, seq):
|
||||||
"""Construct an immutable set from a sequence."""
|
"""Construct an immutable set from a sequence."""
|
||||||
|
# XXX Maybe this should default seq to None?
|
||||||
|
# XXX Creating an empty immutable set is not unheard of.
|
||||||
self._hashcode = None
|
self._hashcode = None
|
||||||
self._data = data = {}
|
self._data = data = {}
|
||||||
# I don't know a faster way to do this in pure Python.
|
# I don't know a faster way to do this in pure Python.
|
||||||
|
@ -296,6 +302,9 @@ class ImmutableSet(BaseSet):
|
||||||
value = True
|
value = True
|
||||||
# XXX Should this perhaps look for _as_immutable?
|
# XXX Should this perhaps look for _as_immutable?
|
||||||
# XXX If so, should use self.update(seq).
|
# XXX If so, should use self.update(seq).
|
||||||
|
# XXX (Well, ImmutableSet doesn't have update(); the base
|
||||||
|
# XXX class could have _update() which does this though, and
|
||||||
|
# XXX we could use that here and in Set.update().)
|
||||||
for key in seq:
|
for key in seq:
|
||||||
data[key] = value
|
data[key] = value
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue