Updated for 2.4.

This commit is contained in:
Jeremy Fincher 2004-12-01 21:03:51 +00:00
parent 1e0b039ff4
commit 40a2e07956
1 changed files with 23 additions and 18 deletions

View File

@ -37,8 +37,7 @@ __revision__ = "$Id$"
__all__ = [] __all__ = []
exported = ['ignore', 'reversed', 'window', 'group', exported = ['ignore', 'window', 'group', 'partition', 'any', 'all', 'rsplit']
'partition', 'any', 'all', 'rsplit']
import sys import sys
import new import new
@ -68,10 +67,12 @@ def ignore(*args, **kwargs):
"""Simply ignore the arguments sent to it.""" """Simply ignore the arguments sent to it."""
pass pass
def reversed(L): if sys.version_info < (2, 4, 0):
"""Iterates through a sequence in reverse.""" def reversed(L):
for i in xrange(len(L) - 1, -1, -1): """Iterates through a sequence in reverse."""
yield L[i] for i in xrange(len(L) - 1, -1, -1):
yield L[i]
exported.append('reversed')
def window(L, size): def window(L, size):
"""Returns a sliding 'window' through the list L of size size.""" """Returns a sliding 'window' through the list L of size size."""
@ -166,20 +167,24 @@ def all(p, seq):
def rsplit(s, sep=None, maxsplit=-1): def rsplit(s, sep=None, maxsplit=-1):
"""Equivalent to str.split, except splitting from the right.""" """Equivalent to str.split, except splitting from the right."""
if sep is not None: if sys.version_info < (2, 4, 0):
sep = sep[::-1] if sep is not None:
L = s[::-1].split(sep, maxsplit) sep = sep[::-1]
L.reverse() L = s[::-1].split(sep, maxsplit)
return [s[::-1] for s in L] L.reverse()
return [s[::-1] for s in L]
else:
return s.rsplit(sep, maxsplit)
import operator if sys.version_info < (2, 4, 0):
def itemgetter(i): import operator
return lambda x: x[i] def itemgetter(i):
return lambda x: x[i]
def attrgetter(attr): def attrgetter(attr):
return lambda x: getattr(x, attr) return lambda x: getattr(x, attr)
operator.itemgetter = itemgetter operator.itemgetter = itemgetter
operator.attrgetter = attrgetter operator.attrgetter = attrgetter
import csv import csv
import cStringIO as StringIO import cStringIO as StringIO