Metadata-Version: 1.1
Name: more-itertools
Version: 5.0.0
Summary: More routines for operating on iterables, beyond itertools
Home-page: https://github.com/erikrose/more-itertools
Author: Erik Rose
Author-email: erikrose@grinchcentral.com
License: MIT
Description: ==============
        More Itertools
        ==============
        
        .. image:: https://coveralls.io/repos/github/erikrose/more-itertools/badge.svg?branch=master
          :target: https://coveralls.io/github/erikrose/more-itertools?branch=master
        
        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 <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.chunked>`_,                                                                                                                        |
        |                        | `sliced <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.sliced>`_,                                                                                                                          |
        |                        | `distribute <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.distribute>`_,                                                                                                                  |
        |                        | `divide <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.divide>`_,                                                                                                                          |
        |                        | `split_at <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.split_at>`_,                                                                                                                      |
        |                        | `split_before <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.split_before>`_,                                                                                                              |
        |                        | `split_after <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.split_after>`_,                                                                                                                |
        |                        | `bucket <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.bucket>`_,                                                                                                                          |
        |                        | `grouper <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.grouper>`_,                                                                                                                        |
        |                        | `partition <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.partition>`_                                                                                                                     |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Lookahead and lookback | `spy <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.spy>`_,                                                                                                                                |
        |                        | `peekable <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.peekable>`_,                                                                                                                      |
        |                        | `seekable <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.seekable>`_                                                                                                                       |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Windowing              | `windowed <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.windowed>`_,                                                                                                                      |
        |                        | `stagger <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.stagger>`_,                                                                                                                        |
        |                        | `pairwise <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.pairwise>`_                                                                                                                       |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Augmenting             | `count_cycle <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.count_cycle>`_,                                                                                                                |
        |                        | `intersperse <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.intersperse>`_,                                                                                                                |
        |                        | `padded <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.padded>`_,                                                                                                                          |
        |                        | `adjacent <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.adjacent>`_,                                                                                                                      |
        |                        | `groupby_transform <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.groupby_transform>`_,                                                                                                    |
        |                        | `padnone <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.padnone>`_,                                                                                                                        |
        |                        | `ncycles <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.ncycles>`_                                                                                                                         |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Combining              | `collapse <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.collapse>`_,                                                                                                                      |
        |                        | `sort_together <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.sort_together>`_,                                                                                                            |
        |                        | `interleave <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.interleave>`_,                                                                                                                  |
        |                        | `interleave_longest <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.interleave_longest>`_,                                                                                                  |
        |                        | `collate <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.collate>`_,                                                                                                                        |
        |                        | `zip_offset <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.zip_offset>`_,                                                                                                                  |
        |                        | `dotproduct <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.dotproduct>`_,                                                                                                                  |
        |                        | `flatten <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.flatten>`_,                                                                                                                        |
        |                        | `roundrobin <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.roundrobin>`_,                                                                                                                  |
        |                        | `prepend <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.prepend>`_                                                                                                                         |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Summarizing            | `ilen <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.ilen>`_,                                                                                                                              |
        |                        | `first <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.first>`_,                                                                                                                            |
        |                        | `last <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.last>`_,                                                                                                                              |
        |                        | `one <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.one>`_,                                                                                                                                |
        |                        | `unique_to_each <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.unique_to_each>`_,                                                                                                          |
        |                        | `locate <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.locate>`_,                                                                                                                          |
        |                        | `rlocate <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.rlocate>`_,                                                                                                                        |
        |                        | `consecutive_groups <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.consecutive_groups>`_,                                                                                                  |
        |                        | `exactly_n <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.exactly_n>`_,                                                                                                                    |
        |                        | `run_length <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.run_length>`_,                                                                                                                  |
        |                        | `map_reduce <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.map_reduce>`_,                                                                                                                  |
        |                        | `all_equal <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.all_equal>`_,                                                                                                                    |
        |                        | `first_true <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.first_true>`_,                                                                                                                  |
        |                        | `nth <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.nth>`_,                                                                                                                                |
        |                        | `quantify <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.quantify>`_                                                                                                                       |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Selecting              | `islice_extended <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.islice_extended>`_,                                                                                                        |
        |                        | `strip <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.strip>`_,                                                                                                                            |
        |                        | `lstrip <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.lstrip>`_,                                                                                                                          |
        |                        | `rstrip <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.rstrip>`_,                                                                                                                          |
        |                        | `take <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.take>`_,                                                                                                                              |
        |                        | `tail <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.tail>`_,                                                                                                                              |
        |                        | `unique_everseen <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertoo ls.unique_everseen>`_,                                                                                                       |
        |                        | `unique_justseen <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.unique_justseen>`_                                                                                                         |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Combinatorics          | `distinct_permutations <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.distinct_permutations>`_,                                                                                            |
        |                        | `circular_shifts <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.circular_shifts>`_,                                                                                                        |
        |                        | `powerset <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.powerset>`_,                                                                                                                      |
        |                        | `random_product <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.random_product>`_,                                                                                                          |
        |                        | `random_permutation <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.random_permutation>`_,                                                                                                  |
        |                        | `random_combination <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.random_combination>`_,                                                                                                  |
        |                        | `random_combination_with_replacement <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.random_combination_with_replacement>`_,                                                                |
        |                        | `nth_combination <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.nth_combination>`_                                                                                                         |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Wrapping               | `always_iterable <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.always_iterable>`_,                                                                                                        |
        |                        | `consumer <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.consumer>`_,                                                                                                                      |
        |                        | `with_iter <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.with_iter>`_,                                                                                                                    |
        |                        | `iter_except <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.iter_except>`_                                                                                                                 |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Others                 | `replace <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.replace>`_,                                                                                                                        |
        |                        | `numeric_range <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.numeric_range>`_,                                                                                                            |
        |                        | `always_reversible <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.always_reversible>`_,                                                                                                    |
        |                        | `side_effect <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.side_effect>`_,                                                                                                                |
        |                        | `iterate <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.iterate>`_,                                                                                                                        |
        |                        | `difference <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.difference>`_,                                                                                                                  |
        |                        | `make_decorator <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.make_decorator>`_,                                                                                                          |
        |                        | `SequenceView <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.SequenceView>`_,                                                                                                              |
        |                        | `consume <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.consume>`_,                                                                                                                        |
        |                        | `accumulate <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.accumulate>`_,                                                                                                                  |
        |                        | `tabulate <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.tabulate>`_,                                                                                                                      |
        |                        | `repeatfunc <https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.repeatfunc>`_                                                                                                                   |
        +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        
        
        Getting started
        ===============
        
        To get started, install the library with `pip <https://pip.pypa.io/en/stable/>`_:
        
        .. code-block:: shell
        
            pip install more-itertools
        
        The recipes from the `itertools docs <https://docs.python.org/3/library/itertools.html#itertools-recipes>`_
        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 <https://more-itertools.readthedocs.io/en/latest/api.html>`_.
        
        Development
        ===========
        
        ``more-itertools`` is maintained by `@erikrose <https://github.com/erikrose>`_
        and `@bbayles <https://github.com/bbayles>`_, with help from `many others <https://github.com/erikrose/more-itertools/graphs/contributors>`_.
        If you have a problem or suggestion, please file a bug or pull request in this
        repository. Thanks for contributing!
        
        
        Version History
        ===============
        
        
        
        5.0.0
        -----
        
        * New itertools:
            * split_into (thanks to rovyko)
            * unzip (thanks to bmintz)
            * substrings (thanks to pylang)
        
        * Changes to existing itertools:
            * ilen was optimized a bit (thanks to MSeifert04, achampion, and  bmintz)
            * 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
        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:
            * last (thanks to tmshn)
            * replace (thanks to pylang)
            * rlocate (thanks to jferard and pylang)
        
        * Improvements to existing itertools:
            * 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:
            * map_reduce (thanks to pylang)
            * prepend (from the `Python 3.7 docs <https://docs.python.org/3.7/library/itertools.html#itertools-recipes>`_)
        
        * Improvements to existing itertools:
            * 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
        
        4.1.0
        -----
        
        * New itertools:
            * split_at (thanks to michael-celani)
            * circular_shifts (thanks to hiqua)
            * make_decorator - see the blog post `Yo, I heard you like decorators <https://sites.google.com/site/bbayles/index/decorator_factory>`_
              for a tour (thanks to pylang)
            * always_reversible (thanks to michael-celani)
            * nth_combination (from the `Python 3.7 docs <https://docs.python.org/3.7/library/itertools.html#itertools-recipes>`_)
        
        * Improvements to existing itertools:
            * seekable now has an ``elements`` method to return cached items.
            * The performance tradeoffs between roundrobin and
              interleave_longest are now documented (thanks michael-celani,
              pylang, and MSeifert04)
        
        4.0.1
        -----
        
        * No code changes - this release fixes how the docs display on PyPI.
        
        4.0.0
        -----
        
        * New itertools:
            * consecutive_groups (Based on the example in the `Python 2.4 docs <https://docs.python.org/release/2.4.4/lib/itertools-example.html>`_)
            * seekable (If you're looking for how to "reset" an iterator,
              you're in luck!)
            * exactly_n (thanks to michael-celani)
            * run_length.encode and run_length.decode
            * difference
        
        * Improvements to existing itertools:
            * The number of items between filler elements in intersperse can
              now be specified (thanks to pylang)
            * distinct_permutations and peekable got some minor
              adjustments (thanks to MSeifert04)
            * always_iterable now returns an iterator object. It also now
              allows different types to be considered iterable (thanks to jaraco)
            * bucket can now limit the keys it stores in memory
            * 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 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:
            * lstrip, rstrip, and strip
              (thanks to MSeifert04 and pylang)
            * islice_extended
        * Improvements to existing itertools:
            * Some bugs with slicing peekable-wrapped iterables were fixed
        
        3.1.0
        -----
        
        * New itertools:
            * numeric_range (Thanks to BebeSparkelSparkel and MSeifert04)
            * count_cycle (Thanks to BebeSparkelSparkel)
            * 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)
        
        2.5.0
        -----
        
        * New itertools:
            * ``distribute`` (Thanks to mozbhearsum and coady)
            * ``sort_together`` (Thanks to clintval)
            * ``stagger`` and ``zip_offset`` (Thanks to joshbode)
            * ``padded``
        * Improvements to existing itertools:
            * ``peekable`` now handles negative indexes and slices with negative
              components properly.
            * ``intersperse`` is now slightly faster. (Thanks to pylang)
            * ``windowed`` now accepts a ``step`` keyword argument.
              (Thanks to pylang)
        * Python 3.6 is now supported.
        
        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.
Keywords: itertools,iterator,iteration,filter,peek,peekable,collate,chunk,chunked
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Software Development :: Libraries
