From: Raymond Hettinger Date: Fri, 15 Aug 2003 21:14:51 +0000 (+0000) Subject: Make sets.py compatible with Py2.2 X-Git-Tag: v2.3.1~146 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bd9ba1ad900230675f0aa246d8f139618ba4adf6;p=thirdparty%2FPython%2Fcpython.git Make sets.py compatible with Py2.2 --- diff --git a/Lib/sets.py b/Lib/sets.py index ebe62c6f17ba..32eb0aa6f6bc 100644 --- a/Lib/sets.py +++ b/Lib/sets.py @@ -54,9 +54,27 @@ what's tested is actually `z in y'. # - Raymond Hettinger added a number of speedups and other # 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'] -from itertools import ifilter, ifilterfalse class BaseSet(object): """Common base class for mutable and immutable sets.""" diff --git a/Misc/NEWS b/Misc/NEWS index a7b7bc4cea19..a16679442f54 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -27,6 +27,8 @@ Extension modules Library ------- +- sets.py can now run under Py2.2 + - Bug #778964: random.seed() now uses fractional seconds so that rapid successive, seeding calls will produce different sequences.