more-itertools 2.4.1


pip install more-itertools==2.4.1

Project Links

Meta
Author: Erik Rose

Classifiers

Development Status
  • 5 - Production/Stable

Intended Audience
  • Developers

Natural Language
  • English

License
  • OSI Approved :: MIT License

Programming Language
  • Python :: 2
  • Python :: 2.7
  • Python :: 3
  • Python :: 3.2
  • Python :: 3.3
  • Python :: 3.4
  • Python :: 3.5

Topic
  • Software Development :: Libraries

I love itertools; it’s one of the most beautiful, composable standard libs. Whenever I have an iteration problem, there’s almost always an itertools routine that fits it perfectly. Sometimes, however, neither itertools nor the recipes included in its docs do quite what I need.

Here I’ve collected several routines I’ve reached for but not found. Since they are deceptively tricky to get right, I’ve wrapped them up into a library. We’ve also included implementations of the recipes from the itertools documentation. Enjoy! Any additions are welcome; just file a pull request.

Full Documentation

Please see https://more-itertools.readthedocs.io/en/latest/api.html for the list of routines.

Version History

2.4.1
  • Move docs 100% to readthedocs.io.

2.4
  • New itertools:
    • accumulate, all_equal, first_true, partition, and tail from the itertools documentation.

    • bucket (Thanks to Rosuav and cvrebert)

    • collapse (Thanks to abarnet)

    • interleave and interleave_longest (Thanks to abarnet)

    • side_effect (Thanks to nvie)

    • sliced (Thanks to j4mie and coady)

    • split_before and split_after (Thanks to astronouth7303)

    • spy (Thanks to themiurgo and mathieulongtin)

  • Improvements to existing itertools:
    • chunked is now simpler and more friendly to garbage collection. (Contributed by coady, with thanks to piskvorky)

    • collate now delegates to heapq.merge when possible. (Thanks to kmike and julianpistorius)

    • peekable-wrapped iterables are now indexable and sliceable. Iterating through peekable-wrapped iterables is also faster.

    • one and unique_to_each have been simplified. (Thanks to coady)

2.3
  • Added one from jaraco.util.itertools. (Thanks, jaraco!)

  • Added distinct_permutations and unique_to_each. (Contributed by bbayles)

  • Added windowed. (Contributed by bbayles, with thanks to buchanae, jaraco, and abarnert)

  • Simplified the implementation of chunked. (Thanks, nvie!)

  • Python 3.5 is now supported. Python 2.6 is no longer supported.

  • Python 3 is now supported directly; there is no 2to3 step.

2.2
  • Added iterate and with_iter. (Thanks, abarnert!)

2.1
  • Added (tested!) implementations of the recipes from the itertools documentation. (Thanks, Chris Lonnen!)

  • Added ilen. (Thanks for the inspiration, Matt Basta!)

2.0
  • chunked now returns lists rather than tuples. After all, they’re homogeneous. This slightly backward-incompatible change is the reason for the major version bump.

  • Added @consumer.

  • Improved test machinery.

1.1
  • Added first function.

  • Added Python 3 support.

  • Added a default arg to peekable.peek().

  • Noted how to easily test whether a peekable iterator is exhausted.

  • Rewrote documentation.

1.0
  • Initial release, with collate, peekable, and chunked. Could really use better docs.

No dependencies