diff --git a/.gitignore b/.gitignore index 3d4bfdf9..6e6f4b7d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ build/ dist/ *.egg-info/ +bench/shakespeare.txt +.coverage diff --git a/toolz/compatibility.py b/toolz/compatibility.py index b8d1d049..51e3673f 100644 --- a/toolz/compatibility.py +++ b/toolz/compatibility.py @@ -19,6 +19,7 @@ iteritems = operator.methodcaller('items') iterkeys = operator.methodcaller('keys') itervalues = operator.methodcaller('values') + from collections.abc import Sequence else: range = xrange reduce = reduce @@ -30,3 +31,4 @@ iteritems = operator.methodcaller('iteritems') iterkeys = operator.methodcaller('iterkeys') itervalues = operator.methodcaller('itervalues') + from collections import Sequence diff --git a/toolz/itertoolz.py b/toolz/itertoolz.py index 9d615c00..a063c4c7 100644 --- a/toolz/itertoolz.py +++ b/toolz/itertoolz.py @@ -5,7 +5,7 @@ from functools import partial from random import Random from toolz.compatibility import (map, filterfalse, zip, zip_longest, iteritems, - filter) + filter, Sequence) from toolz.utils import no_default @@ -391,7 +391,7 @@ def nth(n, seq): >>> nth(1, 'ABC') 'B' """ - if isinstance(seq, (tuple, list, collections.Sequence)): + if isinstance(seq, (tuple, list, Sequence)): return seq[n] else: return next(itertools.islice(seq, n, None))