Commit 9ff3b741 authored by Raymond Hettinger's avatar Raymond Hettinger

Make sets.py compatible with Py2.2

parent 4caad1ec
...@@ -54,9 +54,27 @@ what's tested is actually `z in y'. ...@@ -54,9 +54,27 @@ what's tested is actually `z in y'.
# - Raymond Hettinger added a number of speedups and other # - Raymond Hettinger added a number of speedups and other
# improvements. # improvements.
from __future__ import generators
try:
from itertools import ifilter, ifilterfalse
except ImportError:
# Code to make the module run under Py2.2
def ifilter(predicate, iterable):
if predicate is None:
def predicate(x):
return x
for x in iterable:
if predicate(x):
yield x
def ifilterfalse(predicate, iterable):
if predicate is None:
def predicate(x):
return x
for x in iterable:
if not predicate(x):
yield x
__all__ = ['BaseSet', 'Set', 'ImmutableSet'] __all__ = ['BaseSet', 'Set', 'ImmutableSet']
from itertools import ifilter, ifilterfalse
class BaseSet(object): class BaseSet(object):
"""Common base class for mutable and immutable sets.""" """Common base class for mutable and immutable sets."""
......
...@@ -30,6 +30,8 @@ Extension modules ...@@ -30,6 +30,8 @@ Extension modules
Library Library
------- -------
- sets.py now runs under Py2.2
- random.seed() with no arguments or None uses time.time() as a default - random.seed() with no arguments or None uses time.time() as a default
seed. Modified to match Py2.2 behavior and use fractional seconds so seed. Modified to match Py2.2 behavior and use fractional seconds so
that successive runs are more likely to produce different sequences. that successive runs are more likely to produce different sequences.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment