tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

versions.rst (7929B)


      1 ===============
      2 Version History
      3 ===============
      4 
      5 .. automodule:: more_itertools
      6 
      7 4.2.0
      8 -----
      9 
     10 * New itertools:
     11    * :func:`map_reduce` (thanks to pylang)
     12    * :func:`prepend` (from the `Python 3.7 docs <https://docs.python.org/3.7/library/itertools.html#itertools-recipes>`_)
     13 
     14 * Improvements to existing itertools:
     15    * :func:`bucket` now complies with PEP 479 (thanks to irmen)
     16 
     17 * Other changes:
     18   * Python 3.7 is now supported (thanks to irmen)
     19   * Python 3.3 is no longer supported
     20   * The test suite no longer requires third-party modules to run
     21   * The API docs now include links to source code
     22 
     23 4.1.0
     24 -----
     25 
     26 * New itertools:
     27    * :func:`split_at` (thanks to michael-celani)
     28    * :func:`circular_shifts` (thanks to hiqua)
     29    * :func:`make_decorator` - see the blog post `Yo, I heard you like decorators <https://sites.google.com/site/bbayles/index/decorator_factory>`_
     30      for a tour (thanks to pylang)
     31    * :func:`always_reversible` (thanks to michael-celani)
     32    * :func:`nth_combination` (from the `Python 3.7 docs <https://docs.python.org/3.7/library/itertools.html#itertools-recipes>`_)
     33 
     34 * Improvements to existing itertools:
     35    * :func:`seekable` now has an ``elements`` method to return cached items.
     36    * The performance tradeoffs between :func:`roundrobin` and
     37      :func:`interleave_longest` are now documented (thanks michael-celani,
     38      pylang, and MSeifert04)
     39 
     40 4.0.1
     41 -----
     42 
     43 * No code changes - this release fixes how the docs display on PyPI.
     44 
     45 4.0.0
     46 -----
     47 
     48 * New itertools:
     49    * :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>`_)
     50    * :func:`seekable` (If you're looking for how to "reset" an iterator,
     51      you're in luck!)
     52    * :func:`exactly_n` (thanks to michael-celani)
     53    * :func:`run_length.encode` and :func:`run_length.decode`
     54    * :func:`difference`
     55 
     56 * Improvements to existing itertools:
     57    * The number of items between filler elements in :func:`intersperse` can
     58      now be specified (thanks to pylang)
     59    * :func:`distinct_permutations` and :func:`peekable` got some minor
     60      adjustments (thanks to MSeifert04)
     61    * :func:`always_iterable` now returns an iterator object. It also now
     62      allows different types to be considered iterable (thanks to jaraco)
     63    * :func:`bucket` can now limit the keys it stores in memory
     64    * :func:`one` now allows for custom exceptions (thanks to kalekundert)
     65 
     66 * Other changes:
     67    * A few typos were fixed (thanks to EdwardBetts)
     68    * All tests can now be run with ``python setup.py test``
     69 
     70 The major version update is due to the change in the return value of :func:`always_iterable`.
     71 It now always returns iterator objects:
     72 
     73 .. code-block:: python
     74 
     75    >>> from more_itertools import always_iterable
     76    # Non-iterable objects are wrapped with iter(tuple(obj))
     77    >>> always_iterable(12345)
     78    <tuple_iterator object at 0x7fb24c9488d0>
     79    >>> list(always_iterable(12345))
     80    [12345]
     81    # Iterable objects are wrapped with iter()
     82    >>> always_iterable([1, 2, 3, 4, 5])
     83    <list_iterator object at 0x7fb24c948c50>
     84 
     85 3.2.0
     86 -----
     87 
     88 * New itertools:
     89    * :func:`lstrip`, :func:`rstrip`, and :func:`strip`
     90      (thanks to MSeifert04 and pylang)
     91    * :func:`islice_extended`
     92 * Improvements to existing itertools:
     93    * Some bugs with slicing :func:`peekable`-wrapped iterables were fixed
     94 
     95 3.1.0
     96 -----
     97 
     98 * New itertools:
     99    * :func:`numeric_range` (Thanks to BebeSparkelSparkel and MSeifert04)
    100    * :func:`count_cycle` (Thanks to BebeSparkelSparkel)
    101    * :func:`locate` (Thanks to pylang and MSeifert04)
    102 * Improvements to existing itertools:
    103    * A few itertools are now slightly faster due to some function
    104      optimizations. (Thanks to MSeifert04)
    105 * The docs have been substantially revised with installation notes,
    106  categories for library functions, links, and more. (Thanks to pylang)
    107 
    108 
    109 3.0.0
    110 -----
    111 
    112 * Removed itertools:
    113    * ``context`` has been removed due to a design flaw - see below for
    114      replacement options. (thanks to NeilGirdhar)
    115 * Improvements to existing itertools:
    116    * ``side_effect`` now supports ``before`` and ``after`` keyword
    117      arguments. (Thanks to yardsale8)
    118 * PyPy and PyPy3 are now supported.
    119 
    120 The major version change is due to the removal of the ``context`` function.
    121 Replace it with standard ``with`` statement context management:
    122 
    123 .. code-block:: python
    124 
    125    # Don't use context() anymore
    126    file_obj = StringIO()
    127    consume(print(x, file=f) for f in context(file_obj) for x in u'123')
    128 
    129    # Use a with statement instead
    130    file_obj = StringIO()
    131    with file_obj as f:
    132        consume(print(x, file=f) for x in u'123')
    133 
    134 2.6.0
    135 -----
    136 
    137 * New itertools:
    138    * ``adjacent`` and ``groupby_transform`` (Thanks to diazona)
    139    * ``always_iterable`` (Thanks to jaraco)
    140    * (Removed in 3.0.0) ``context`` (Thanks to yardsale8)
    141    * ``divide`` (Thanks to mozbhearsum)
    142 * Improvements to existing itertools:
    143    * ``ilen`` is now slightly faster. (Thanks to wbolster)
    144    * ``peekable`` can now prepend items to an iterable. (Thanks to diazona)
    145 
    146 2.5.0
    147 -----
    148 
    149 * New itertools:
    150    * ``distribute`` (Thanks to mozbhearsum and coady)
    151    * ``sort_together`` (Thanks to clintval)
    152    * ``stagger`` and ``zip_offset`` (Thanks to joshbode)
    153    * ``padded``
    154 * Improvements to existing itertools:
    155    * ``peekable`` now handles negative indexes and slices with negative
    156      components properly.
    157    * ``intersperse`` is now slightly faster. (Thanks to pylang)
    158    * ``windowed`` now accepts a ``step`` keyword argument.
    159      (Thanks to pylang)
    160 * Python 3.6 is now supported.
    161 
    162 2.4.1
    163 -----
    164 
    165 * Move docs 100% to readthedocs.io.
    166 
    167 2.4
    168 -----
    169 
    170 * New itertools:
    171    * ``accumulate``, ``all_equal``, ``first_true``, ``partition``, and
    172      ``tail`` from the itertools documentation.
    173    * ``bucket`` (Thanks to Rosuav and cvrebert)
    174    * ``collapse`` (Thanks to abarnet)
    175    * ``interleave`` and ``interleave_longest`` (Thanks to abarnet)
    176    * ``side_effect`` (Thanks to nvie)
    177    * ``sliced`` (Thanks to j4mie and coady)
    178    * ``split_before`` and ``split_after`` (Thanks to astronouth7303)
    179    * ``spy`` (Thanks to themiurgo and mathieulongtin)
    180 * Improvements to existing itertools:
    181    * ``chunked`` is now simpler and more friendly to garbage collection.
    182      (Contributed by coady, with thanks to piskvorky)
    183    * ``collate`` now delegates to ``heapq.merge`` when possible.
    184      (Thanks to kmike and julianpistorius)
    185    * ``peekable``-wrapped iterables are now indexable and sliceable.
    186      Iterating through ``peekable``-wrapped iterables is also faster.
    187    * ``one`` and ``unique_to_each`` have been simplified.
    188      (Thanks to coady)
    189 
    190 
    191 2.3
    192 -----
    193 
    194 * Added ``one`` from ``jaraco.util.itertools``. (Thanks, jaraco!)
    195 * Added ``distinct_permutations`` and ``unique_to_each``. (Contributed by
    196  bbayles)
    197 * Added ``windowed``. (Contributed by bbayles, with thanks to buchanae,
    198  jaraco, and abarnert)
    199 * Simplified the implementation of ``chunked``. (Thanks, nvie!)
    200 * Python 3.5 is now supported. Python 2.6 is no longer supported.
    201 * Python 3 is now supported directly; there is no 2to3 step.
    202 
    203 2.2
    204 -----
    205 
    206 * Added ``iterate`` and ``with_iter``. (Thanks, abarnert!)
    207 
    208 2.1
    209 -----
    210 
    211 * Added (tested!) implementations of the recipes from the itertools
    212  documentation. (Thanks, Chris Lonnen!)
    213 * Added ``ilen``. (Thanks for the inspiration, Matt Basta!)
    214 
    215 2.0
    216 -----
    217 
    218 * ``chunked`` now returns lists rather than tuples. After all, they're
    219  homogeneous. This slightly backward-incompatible change is the reason for
    220  the major version bump.
    221 * Added ``@consumer``.
    222 * Improved test machinery.
    223 
    224 1.1
    225 -----
    226 
    227 * Added ``first`` function.
    228 * Added Python 3 support.
    229 * Added a default arg to ``peekable.peek()``.
    230 * Noted how to easily test whether a peekable iterator is exhausted.
    231 * Rewrote documentation.
    232 
    233 1.0
    234 -----
    235 
    236 * Initial release, with ``collate``, ``peekable``, and ``chunked``. Could
    237  really use better docs.