1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
Release History
---------------
0.6.0.post1 (2019-10-10)
^^^^^^^^^^^^^^^^^^^^^^^^
* Issue `#24 <https://github.com/jazzband/contextlib2/issues/24>`__:
Correctly update NEWS.rst for the 0.6.0 release.
0.6.0 (2019-09-21)
^^^^^^^^^^^^^^^^^^
* Issue `#16 <https://github.com/jazzband/contextlib2/issues/16>`__:
Backport `AbstractContextManager` from Python 3.6 and `nullcontext`
from Python 3.7 (patch by John Vandenberg)
0.5.5 (2017-04-25)
^^^^^^^^^^^^^^^^^^
* Issue `#13 <https://github.com/jazzband/contextlib2/issues/13>`__:
``setup.py`` now falls back to plain ``distutils`` if ``setuptools`` is not
available (patch by Allan Harwood)
* Updates to the default compatibility testing matrix:
* Added: PyPy3, CPython 3.6 (maintenance), CPython 3.7 (development)
* Dropped: CPython 3.3
0.5.4 (2016-07-31)
^^^^^^^^^^^^^^^^^^
* Thanks to the welcome efforts of Jannis Leidel, contextlib2 is now a
[Jazzband](https://jazzband.co/) project! This means that I (Nick Coghlan)
am no longer a single point of failure for backports of future contextlib
updates to earlier Python versions.
* Issue `#7 <https://github.com/jazzband/contextlib2/issues/7>`__: Backported
fix for CPython issue `#27122 <http://bugs.python.org/issue27122>`__,
preventing a potential infinite loop on Python 3.5 when handling
``RuntimeError`` (CPython updates by Gregory P. Smith & Serhiy Storchaka)
0.5.3 (2016-05-02)
^^^^^^^^^^^^^^^^^^
* ``ExitStack`` now correctly handles context managers implemented as old-style
classes in Python 2.x (such as ``codecs.StreamReader`` and
``codecs.StreamWriter``)
* ``setup.py`` has been migrated to setuptools and configured to emit a
universal wheel file by default
0.5.2 (2016-05-02)
^^^^^^^^^^^^^^^^^^
* development migrated from BitBucket to GitHub
* ``redirect_stream``, ``redirect_stdout``, ``redirect_stderr`` and ``suppress``
now explicitly inherit from ``object``, ensuring compatibility with
``ExitStack`` when run under Python 2.x (patch contributed by Devin
Jeanpierre).
* ``MANIFEST.in`` is now included in the published sdist, ensuring the archive
can be precisely recreated even without access to the original source repo
(patch contributed by Guy Rozendorn)
0.5.1 (2016-01-13)
^^^^^^^^^^^^^^^^^^
* Python 2.6 compatilibity restored (patch contributed by Armin Ronacher)
* README converted back to reStructured Text formatting
0.5.0 (2016-01-12)
^^^^^^^^^^^^^^^^^^
* Updated to include all features from the Python 3.4 and 3.5 releases of
contextlib (also includes some ``ExitStack`` enhancements made following
the integration into the standard library for Python 3.3)
* The legacy ``ContextStack`` and ``ContextDecorator.refresh_cm`` APIs are
no longer documented and emit ``DeprecationWarning`` when used
* Python 2.6, 3.2 and 3.3 have been dropped from compatibility testing
* tox is now supported for local version compatibility testing (patch by
Marc Abramowitz)
0.4.0 (2012-05-05)
^^^^^^^^^^^^^^^^^^
* (BitBucket) Issue #8: Replace ContextStack with ExitStack (old ContextStack
API retained for backwards compatibility)
* Fall back to unittest2 if unittest is missing required functionality
0.3.1 (2012-01-17)
^^^^^^^^^^^^^^^^^^
* (BitBucket) Issue #7: Add MANIFEST.in so PyPI package contains all relevant
files (patch contributed by Doug Latornell)
0.3 (2012-01-04)
^^^^^^^^^^^^^^^^
* (BitBucket) Issue #5: ContextStack.register no longer pointlessly returns the
wrapped function
* (BitBucket) Issue #2: Add examples and recipes section to docs
* (BitBucket) Issue #3: ContextStack.register_exit() now accepts objects with
__exit__ attributes in addition to accepting exit callbacks directly
* (BitBucket) Issue #1: Add ContextStack.preserve() to move all registered
callbacks to a new ContextStack object
* Wrapped callbacks now expose __wrapped__ (for direct callbacks) or __self__
(for context manager methods) attributes to aid in introspection
* Moved version number to a VERSION.txt file (read by both docs and setup.py)
* Added NEWS.rst (and incorporated into documentation)
0.2 (2011-12-15)
^^^^^^^^^^^^^^^^
* Renamed CleanupManager to ContextStack (hopefully before anyone started
using the module for anything, since I didn't alias the old name at all)
0.1 (2011-12-13)
^^^^^^^^^^^^^^^^
* Initial release as a backport module
* Added CleanupManager (based on a `Python feature request`_)
* Added ContextDecorator.refresh_cm() (based on a `Python tracker issue`_)
.. _Python feature request: http://bugs.python.org/issue13585
.. _Python tracker issue: http://bugs.python.org/issue11647
|