More-itertools

Latest version: v10.2.0

Safety actively analyzes 630254 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 8

4.0.1

-----

* No code changes - this release fixes how the docs display on PyPI.

4.0.0

-----

* New itertools:
* :func:`consecutive_groups` (Based on the example in the `Python 2.4 docs <https://docs.python.org/release/2.4.4/lib/itertools-example.html>`_)
* :func:`seekable` (If you're looking for how to "reset" an iterator,
you're in luck!)
* :func:`exactly_n` (thanks to michael-celani)
* :func:`run_length.encode` and :func:`run_length.decode`
* :func:`difference`

* Improvements to existing itertools:
* The number of items between filler elements in :func:`intersperse` can
now be specified (thanks to pylang)
* :func:`distinct_permutations` and :func:`peekable` got some minor
adjustments (thanks to MSeifert04)
* :func:`always_iterable` now returns an iterator object. It also now
allows different types to be considered iterable (thanks to jaraco)
* :func:`bucket` can now limit the keys it stores in memory
* :func:`one` now allows for custom exceptions (thanks to kalekundert)

* Other changes:
* A few typos were fixed (thanks to EdwardBetts)
* All tests can now be run with ``python setup.py test``

The major version update is due to the change in the return value of :func:`always_iterable`.
It now always returns iterator objects:

.. code-block:: python

>>> from more_itertools import always_iterable
Non-iterable objects are wrapped with iter(tuple(obj))
>>> always_iterable(12345)
<tuple_iterator object at 0x7fb24c9488d0>
>>> list(always_iterable(12345))
[12345]
Iterable objects are wrapped with iter()
>>> always_iterable([1, 2, 3, 4, 5])
<list_iterator object at 0x7fb24c948c50>

3.2.0

-----

* New itertools:
* :func:`lstrip`, :func:`rstrip`, and :func:`strip`
(thanks to MSeifert04 and pylang)
* :func:`islice_extended`
* Improvements to existing itertools:
* Some bugs with slicing :func:`peekable`-wrapped iterables were fixed

3.1.0

-----

* New itertools:
* :func:`numeric_range` (Thanks to BebeSparkelSparkel and MSeifert04)
* :func:`count_cycle` (Thanks to BebeSparkelSparkel)
* :func:`locate` (Thanks to pylang and MSeifert04)
* Improvements to existing itertools:
* A few itertools are now slightly faster due to some function
optimizations. (Thanks to MSeifert04)
* The docs have been substantially revised with installation notes,
categories for library functions, links, and more. (Thanks to pylang)

3.0.0

-----

* Removed itertools:
* ``context`` has been removed due to a design flaw - see below for
replacement options. (thanks to NeilGirdhar)
* Improvements to existing itertools:
* ``side_effect`` now supports ``before`` and ``after`` keyword
arguments. (Thanks to yardsale8)
* PyPy and PyPy3 are now supported.

The major version change is due to the removal of the ``context`` function.
Replace it with standard ``with`` statement context management:

.. code-block:: python

Don't use context() anymore
file_obj = StringIO()
consume(print(x, file=f) for f in context(file_obj) for x in u'123')

Use a with statement instead
file_obj = StringIO()
with file_obj as f:
consume(print(x, file=f) for x in u'123')

2.6.0

-----

* New itertools:
* ``adjacent`` and ``groupby_transform`` (Thanks to diazona)
* ``always_iterable`` (Thanks to jaraco)
* (Removed in 3.0.0) ``context`` (Thanks to yardsale8)
* ``divide`` (Thanks to mozbhearsum)
* Improvements to existing itertools:
* ``ilen`` is now slightly faster. (Thanks to wbolster)
* ``peekable`` can now prepend items to an iterable. (Thanks to diazona)

Page 6 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.