Skip to content
This repository was archived by the owner on May 30, 2022. It is now read-only.

Update more-itertools to 8.8.0 #953

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Contributor

This PR updates more-itertools from 4.1.0 to 8.8.0.

Changelog

8.8.0

-----

* New functions
 * :func:`countable` (thanks to krzysieq)

* Changes to existing functions
 * :func:`split_before` was updated to handle empy collections (thanks to TiunovNN)
 * :func:`unique_everseen` got a performance boost (thanks to Numerlor)
 * The type hint for :func:`value_chain` was corrected (thanks to vr2262)

8.7.0

-----

* New functions
 * :func:`convolve` (from the Python itertools docs)
 * :func:`product_index`, :func:`combination_index`, and :func:`permutation_index` (thanks to N8Brooks)
 * :func:`value_chain` (thanks to jenstroeger)

* Changes to existing functions
 * :func:`distinct_combinations` now uses a non-recursive algorithm (thanks to  knutdrand)
 * :func:`pad_none` is now the preferred name for :func:`padnone`, though the latter remains available.
 * :func:`pairwise` will now use the Python standard library implementation on Python 3.10+
 * :func:`sort_together` now accepts a ``key`` argument (thanks to brianmaissy)
 * :func:`seekable` now has a ``peek`` method, and can indicate whether the iterator it's wrapping is exhausted (thanks to gsakkis)
 * :func:`time_limited` can now indicate whether its iterator has expired (thanks to roysmith)
 * The implementation of :func:`unique_everseen` was improved (thanks to plammens)

* Other changes:
 * Various documentation updates (thanks to cthoyt, Evantm, and cyphase)

8.6.0

-----

* New itertools
 * :func:`all_unique` (thanks to brianmaissy)
 * :func:`nth_product` and :func:`nth_permutation` (thanks to N8Brooks)

* Changes to existing itertools
 * :func:`chunked` and :func:`sliced` now accept a ``strict`` parameter (thanks to shlomif and jtwool)

* Other changes
 * Python 3.5 has reached its end of life and is no longer supported.
 * Python 3.9 is officially supported.
 * Various documentation fixes (thanks to timgates42)

8.5.0

-----

* New itertools
 * :func:`windowed_complete` (thanks to MarcinKonowalczyk)

* Changes to existing itertools:
 * The :func:`is_sorted` implementation was improved (thanks to cool-RR)
 * The :func:`groupby_transform` now accepts a ``reducefunc`` parameter.
 * The :func:`last` implementation was improved (thanks to brianmaissy)

* Other changes
 * Various documentation fixes (thanks to craigrosie, samuelstjean, PiCT0)
 * The tests for :func:`distinct_combinations` were improved (thanks to Minabsapi)
 * Automated tests now run on GitHub Actions. All commits now check:
     * That unit tests pass
     * That the examples in docstrings work
     * That test coverage remains high (using `coverage`)
     * For linting errors (using `flake8`)
     * For consistent style (using `black`)
     * That the type stubs work (using `mypy`)
     * That the docs build correctly (using `sphinx`)
     * That packages build correctly (using `twine`)

8.4.0

-----

* New itertools
 * :func:`mark_ends` (thanks to kalekundert)
 * :func:`is_sorted`

* Changes to existing itertools:
 * :func:`islice_extended` can now be used with real slices (thanks to cool-RR)
 * The implementations for :func:`filter_except` and :func:`map_except` were improved (thanks to SergBobrovsky)

* Other changes
 * Automated tests now enforce code style (using `black <https://github.com/psf/black>`__)
 * The various signatures of :func:`islice_extended` and :func:`numeric_range` now appear in the docs (thanks to dsfulf)
 * The test configuration for mypy was updated (thanks to blueyed)

8.3.0

-----

* New itertools
 * :func:`zip_equal` (thanks to frankier and alexmojaki)

* Changes to existing itertools:
 * :func:`split_at`, :func:`split_before`, :func:`split_after`, and :func:`split_when` all got a ``maxsplit`` paramter (thanks to jferard and ilai-deutel)
 * :func:`split_at` now accepts a ``keep_separator`` parameter (thanks to jferard)
 * :func:`distinct_permutations` can now generate ``r``-length permutations (thanks to SergBobrovsky and ilai-deutel)
 * The :func:`windowed` implementation was improved  (thanks to SergBobrovsky)
 * The :func:`spy` implementation was improved (thanks to has2k1)

* Other changes
 * Type stubs are now tested with ``stubtest`` (thanks to ilai-deutel)
 * Tests now run with ``python -m unittest`` instead of ``python setup.py test`` (thanks to jdufresne)

8.2.0

-----

* Bug fixes
 * The .pyi files for typing were updated. (thanks to blueyed and ilai-deutel)

* Changes to existing itertools:
 * :func:`numeric_range` now behaves more like the built-in :func:`range`. (thanks to jferard)
 * :func:`bucket` now allows for enumerating keys. (thanks to alexchandel)
 * :func:`sliced` now should now work for numpy arrays. (thanks to sswingle)
 * :func:`seekable` now has a ``maxlen`` parameter.

8.1.0

-----

* Bug fixes
 * :func:`partition` works with ``pred=None`` again. (thanks to MSeifert04)

* New itertools
 * :func:`sample` (thanks to tommyod)
 * :func:`nth_or_last` (thanks to d-ryzhikov)

* Changes to existing itertools:
 * The implementation for :func:`divide` was improved. (thanks to jferard)

8.0.2

-----

* Bug fixes
 * The type stub files are now part of the wheel distribution (thanks to keisheiled)

8.0.1

-----

* Bug fixes
 * The type stub files now work for functions imported from the
   root package (thanks to keisheiled)

8.0.0

-----

* New itertools and other additions
 * This library now ships type hints for use with mypy.
   (thanks to ilai-deutel for the implementation, and to gabbard and fmagin for assistance)
 * :func:`split_when` (thanks to jferard)
 * :func:`repeat_last` (thanks to d-ryzhikov)

* Changes to existing itertools:
 * The implementation for :func:`set_partitions` was improved. (thanks to jferard)
 * :func:`partition` was optimized for expensive predicates. (thanks to stevecj)
 * :func:`unique_everseen` and :func:`groupby_transform` were re-factored. (thanks to SergBobrovsky)
 * The implementation for :func:`difference` was improved. (thanks to Jabbey92)

* Other changes
 * Python 3.4 has reached its end of life and is no longer supported.
 * Python 3.8 is officially supported. (thanks to jdufresne)
 * The ``collate`` function has been deprecated.
   It raises a ``DeprecationWarning`` if used, and will be removed in a future release.
 * :func:`one` and :func:`only` now provide more informative error messages. (thanks to gabbard)
 * Unit tests were moved outside of the main package (thanks to jdufresne)
 * Various documentation fixes (thanks to kriomant, gabbard, jdufresne)

7.2.0

-----

* New itertools
 * :func:`distinct_combinations`
 * :func:`set_partitions` (thanks to kbarrett)
 * :func:`filter_except`
 * :func:`map_except`

7.1.0

-----

* New itertools
 * :func:`ichunked` (thanks davebelais and youtux)
 * :func:`only` (thanks jaraco)

* Changes to existing itertools:
 * :func:`numeric_range` now supports ranges specified by
   ``datetime.datetime`` and ``datetime.timedelta`` objects (thanks to MSeifert04 for tests).
 * :func:`difference` now supports an *initial* keyword argument.


* Other changes
 * Various documentation fixes (thanks raimon49, pylang)

7.0.0

-----

* New itertools:
 * :func:`time_limited`
 * :func:`partitions` (thanks to rominf and Saluev)
 * :func:`substrings_indexes` (thanks to rominf)

* Changes to existing itertools:
 * :func:`collapse` now treats ``bytes`` objects the same as ``str`` objects. (thanks to Sweenpet)

The major version update is due to the change in the default behavior of
:func:`collapse`. It now treats ``bytes`` objects the same as ``str`` objects.
This aligns its behavior with :func:`always_iterable`.

.. code-block:: python

 >>> from more_itertools import collapse
 >>> iterable = [[1, 2], b'345', [6]]
 >>> print(list(collapse(iterable)))
 [1, 2, b'345', 6]

6.0.0

-----

* Major changes:
 * Python 2.7 is no longer supported. The 5.0.0 release will be the last
   version targeting Python 2.7.
 * All future releases will target the active versions of Python 3.
   As of 2019, those are Python 3.4 and above.
 * The ``six`` library is no longer a dependency.
 * The :func:`accumulate` function is no longer part of this library. You
   may import a better version from the standard ``itertools`` module.

* Changes to existing itertools:
 * The order of the parameters in :func:`grouper` have changed to match
   the latest recipe in the itertools documentation. Use of the old order
   will be supported in this release, but emit a  ``DeprecationWarning``.
   The legacy behavior will be dropped in a future release. (thanks to jaraco)
 * :func:`distinct_permutations` was improved (thanks to jferard - see also `permutations with unique values <https://stackoverflow.com/questions/6284396/permutations-with-unique-values>`_ at StackOverflow.)
 * An unused parameter was removed from :func:`substrings`. (thanks to pylang)

* Other changes:
 * The docs for :func:`unique_everseen` were improved. (thanks to jferard and MSeifert04)
 * Several Python 2-isms were removed. (thanks to jaraco, MSeifert04, and hugovk)

5.0.0

-----

* New itertools:
 * :func:`split_into` (thanks to rovyko)
 * :func:`unzip` (thanks to bmintz)
 * :func:`substrings` (thanks to pylang)

* Changes to existing itertools:
 * :func:`ilen` was optimized a bit (thanks to MSeifert04, achampion, and  bmintz)
 * :func:`first_true` now returns ``None`` by default. This is the reason for the major version bump - see below. (thanks to sk and OJFord)

* Other changes:
* Some code for old Python versions was removed (thanks to hugovk)
* Some documentation mistakes were corrected  (thanks to belm0 and hugovk)
* Tests now run properly on 32-bit versions of Python (thanks to Millak)
* Newer versions of CPython and PyPy are now tested against

The major version update is due to the change in the default return value of
:func:`first_true`. It's now ``None``.

.. code-block:: python

 >>> from more_itertools import first_true
 >>> iterable = [0, '', False, [], ()]   All these are False
 >>> answer = first_true(iterable)
 >>> print(answer)
 None

4.3.0

-----

* New itertools:
 * :func:`last` (thanks to tmshn)
 * :func:`replace` (thanks to pylang)
 * :func:`rlocate` (thanks to jferard and pylang)

* Improvements to existing itertools:
 * :func:`locate` can now search for multiple items

* Other changes:
* The docs now include a nice table of tools (thanks MSeifert04)

4.2.0

-----

* New itertools:
 * :func:`map_reduce` (thanks to pylang)
 * :func:`prepend` (from the `Python 3.7 docs <https://docs.python.org/3.7/library/itertools.html#itertools-recipes>`_)

* Improvements to existing itertools:
 * :func:`bucket` now complies with PEP 479 (thanks to irmen)

* Other changes:
* Python 3.7 is now supported (thanks to irmen)
* Python 3.3 is no longer supported
* The test suite no longer requires third-party modules to run
* The API docs now include links to source code
Links

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant