Metadata-Version: 2.1
Name: more-itertools
Version: 10.3.0
Summary: More routines for operating on iterables, beyond itertools
Keywords: itertools,iterator,iteration,filter,peek,peekable,chunk,chunked
Author-email: Erik Rose <erikrose@grinchcentral.com>
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries
Project-URL: Homepage, 

==============
More Itertools
==============

.. image:: 
  :target: 

Python's ``itertools`` library is a gem - you can compose elegant solutions
for a variety of problems with the functions it provides. In ``more-itertools``
we collect additional building blocks, recipes, and routines for working with
Python iterables.

+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grouping               | `chunked <
|                        | `ichunked <
|                        | `chunked_even <
|                        | `sliced <
|                        | `constrained_batches <
|                        | `distribute <
|                        | `divide <
|                        | `split_at <
|                        | `split_before <
|                        | `split_after <
|                        | `split_into <
|                        | `split_when <
|                        | `bucket <
|                        | `unzip <
|                        | `batched <
|                        | `grouper <
|                        | `partition <
|                        | `transpose <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Lookahead and lookback | `spy <
|                        | `peekable <
|                        | `seekable <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Windowing              | `windowed <
|                        | `substrings <
|                        | `substrings_indexes <
|                        | `stagger <
|                        | `windowed_complete <
|                        | `pairwise <
|                        | `triplewise <
|                        | `sliding_window <
|                        | `subslices <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Augmenting             | `count_cycle <
|                        | `intersperse <
|                        | `padded <
|                        | `repeat_each <
|                        | `mark_ends <
|                        | `repeat_last <
|                        | `adjacent <
|                        | `groupby_transform <
|                        | `pad_none <
|                        | `ncycles <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Combining              | `collapse <
|                        | `sort_together <
|                        | `interleave <
|                        | `interleave_longest <
|                        | `interleave_evenly <
|                        | `zip_offset <
|                        | `zip_equal <
|                        | `zip_broadcast <
|                        | `flatten <
|                        | `roundrobin <
|                        | `prepend <
|                        | `value_chain <
|                        | `partial_product <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Summarizing            | `ilen <
|                        | `unique_to_each <
|                        | `sample <
|                        | `consecutive_groups <
|                        | `run_length <
|                        | `map_reduce <
|                        | `join_mappings <
|                        | `exactly_n <
|                        | `is_sorted <
|                        | `all_equal <
|                        | `all_unique <
|                        | `minmax <
|                        | `first_true <
|                        | `quantify <
|                        | `iequals <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Selecting              | `islice_extended <
|                        | `first <
|                        | `last <
|                        | `one <
|                        | `only <
|                        | `strictly_n <
|                        | `strip <
|                        | `lstrip <
|                        | `rstrip <
|                        | `filter_except <
|                        | `map_except <
|                        | `filter_map <
|                        | `iter_suppress <
|                        | `nth_or_last <
|                        | `unique_in_window <
|                        | `before_and_after <
|                        | `nth <
|                        | `take <
|                        | `tail <
|                        | `unique_everseen <
|                        | `unique_justseen <
|                        | `unique <
|                        | `duplicates_everseen <
|                        | `duplicates_justseen <
|                        | `classify_unique <
|                        | `longest_common_prefix <
|                        | `takewhile_inclusive <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Math                   | `dft <
|                        | `idft <
|                        | `convolve <
|                        | `dotproduct <
|                        | `factor <
|                        | `matmul <
|                        | `polynomial_from_roots <
|                        | `polynomial_derivative <
|                        | `polynomial_eval <
|                        | `sieve <
|                        | `sum_of_squares <
|                        | `totient <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Combinatorics          | `distinct_permutations <
|                        | `distinct_combinations <
|                        | `circular_shifts <
|                        | `partitions <
|                        | `set_partitions <
|                        | `product_index <
|                        | `combination_index <
|                        | `permutation_index <
|                        | `combination_with_replacement_index <
|                        | `gray_product  <
|                        | `outer_product  <
|                        | `powerset <
|                        | `powerset_of_sets <
|                        | `random_product <
|                        | `random_permutation <
|                        | `random_combination <
|                        | `random_combination_with_replacement <
|                        | `nth_product <
|                        | `nth_permutation <
|                        | `nth_combination <
|                        | `nth_combination_with_replacement <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Wrapping               | `always_iterable <
|                        | `always_reversible <
|                        | `countable <
|                        | `consumer <
|                        | `with_iter <
|                        | `iter_except <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Others                 | `locate <
|                        | `rlocate <
|                        | `replace <
|                        | `numeric_range <
|                        | `side_effect <
|                        | `iterate <
|                        | `difference <
|                        | `make_decorator <
|                        | `SequenceView <
|                        | `time_limited <
|                        | `map_if <
|                        | `iter_index <
|                        | `consume <
|                        | `tabulate <
|                        | `repeatfunc <
|                        | `reshape <
|                        | `doublestarmap <
+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+


Getting started
===============

To get started, install the library with `pip <

.. code-block:: shell

    pip install more-itertools

The recipes from the `itertools docs <
are included in the top-level package:

.. code-block:: python

    >>> from more_itertools import flatten
    >>> iterable = [(0, 1), (2, 3)]
    >>> list(flatten(iterable))
    [0, 1, 2, 3]

Several new recipes are available as well:

.. code-block:: python

    >>> from more_itertools import chunked
    >>> iterable = [0, 1, 2, 3, 4, 5, 6, 7, 8]
    >>> list(chunked(iterable, 3))
    [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

    >>> from more_itertools import spy
    >>> iterable = (x * x for x in range(1, 6))
    >>> head, iterable = spy(iterable, n=3)
    >>> list(head)
    [1, 4, 9]
    >>> list(iterable)
    [1, 4, 9, 16, 25]



For the full listing of functions, see the `API documentation <


Links elsewhere
===============

Blog posts about ``more-itertools``:

* `Yo, I heard you like decorators <
* `Tour of Python Itertools <
* `Real-World Python More Itertools <


Development
===========

``more-itertools`` is maintained by `@erikrose <
and `@bbayles <
If you have a problem or suggestion, please file a bug or pull request in this
repository. Thanks for contributing!


Version History
===============

The version history can be found in `documentation <

