Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Note

The library “Python-Deprecated” was renamed “Deprecated”, simply! This project is more consistent because now, the name of the library is the same as the name of the Python package.

  • In your setup.py, you can replace the “Python-Deprecated” dependency with “Deprecated”.
  • In your source code, nothing has changed, you will always use import deprecated, as before.
  • I decided to keep the same version number because there is really no change in the source code (only in comment or documentation).

v1.2.15 (unreleased)

Bug fix release

Fix

  • Resolve Python 2.7 support issue introduced in v1.2.14 in sphinx.py.
  • Fix #69: Add extra_stacklevel argument for interoperating with other wrapper functions (refer to #68 for a concrete use case).

Other

  • Fix #66: discontinue TravisCI and AppVeyor due to end of free support.

v1.2.14 (2023-05-27)

Bug fix release

Fix

  • Fix #60: return a correctly dedented docstring when long docstring are using the D212 or D213 format.

Other

  • Add support for Python 3.11.
  • Drop support for Python older than 3.7 in build systems like pytest and tox, while ensuring the library remains production-compatible.
  • Update GitHub workflow to run in recent Python versions.

v1.2.13 (2021-09-05)

Bug fix release

Fix

  • Fix #45: Change the signature of the deprecated() decorator to reflect the valid use cases.
  • Fix #48: Fix versionadded and versionchanged decorators: do not return a decorator factory, but a Wrapt adapter.

Other

  • Fix configuration for AppVeyor: simplify the test scripts and set the version format to match the current version.
  • Change configuration for Tox:
    • change the requirements for pip to “pip >= 9.0.3, < 21” (Python 2.7, 3.4 and 3.5).
    • install typing when building on Python 3.4 (required by Pytest->Attrs).
    • run unit tests on Wrapt 1.13 (release candidate).
  • Migrating project to travis-ci.com.

v1.2.12 (2021-03-13)

Bug fix release

Fix

  • Avoid “Explicit markup ends without a blank line” when the decorated function has no docstring.
  • Fix #40: ‘version’ argument is required in Sphinx directives.
  • Fix #41: deprecated.sphinx: strip Sphinx cross-referencing syntax from warning message.

Other

  • Change in Tox and Travis CI configurations: enable unit testing on Python 3.10.

v1.2.11 (2021-01-17)

Bug fix release

Fix

  • Fix packit configuration: use upstream_tag_template: v{version}.
  • Fix #33: Change the class SphinxAdapter: add the line_length keyword argument to the constructor to specify the max line length of the directive text. Sphinx decorators also accept the line_length argument.
  • Fix #34: versionadded and versionchanged decorators don’t emit DeprecationWarning anymore on decorated classes.

Other

  • Change the Tox configuration to run tests on Python 2.7, Python 3.4 and above (and PyPy 2.7 & 3.6).
  • Update the classifiers in setup.py.
  • Replace bumpversion by bump2version in setup.py and documentation.
  • Update configuration for Black and iSort.
  • Fix the development requirement versions in setup.py for Python 2.7 EOL.

v1.2.10 (2020-05-13)

Bug fix release

Fix

  • Fix #25: @deprecated respects global warning filters with actions other than “ignore” and “always” on Python 3.

Other

  • Change the configuration for TravisCI to build on pypy and pypy3.
  • Change the configuration for TravisCI and AppVeyor: drop configuration for Python 3.4 and add 3.8.

v1.2.9 (2020-04-10)

Bug fix release

Fix

  • Fix #20: Set the warnings.warn() stacklevel to 2 if the Python implementation is PyPy.
  • Fix packit configuration: use dist-git-branch: fedora-all.

Other

  • Change the Tox configuration to run tests on PyPy v2.7 and 3.6.

v1.2.8 (2020-04-05)

Bug fix release

Fix

  • Fix #15: The @deprecated decorator doesn’t set a warning filter if the action keyword argument is not provided or None. In consequences, the warning messages are only emitted if the global filter allow it. For more information, see The Warning Filter in the Python documentation.
  • Fix #13: Warning displays the correct filename and line number when decorating a class if wrapt does not have the compiled c extension.

Documentation

  • The API documentation and the Tutorial is improved to explain how to use custom warning categories and local filtering (warning filtering at function call).
  • Fix #17: Customize the sidebar to add links to the documentation to the source in GitHub and to the Bug tracker. Add a logo in the sidebar and change the logo in the main page to see the library version.
  • Add a detailed documentation about The “Sphinx” decorators.

Other

  • Change the Tox configuration to test the library with Wrapt 1.12.x.

v1.2.7 (2019-11-11)

Bug fix release

Fix

  • Fix #13: Warning displays the correct filename and line number when decorating a function if wrapt does not have the compiled c extension.

Other

  • Support packit for Pull Request tests and sync to Fedora (thanks to Petr Hráček). Supported since v1.2.6.
  • Add Black configuration file.

v1.2.6 (2019-07-06)

Bug fix release

Fix

  • Fix #9: Change the project’s configuration: reinforce the constraint to the Wrapt requirement.

Other

  • Upgrade project configuration (setup.py) to add the project_urls property: Documentation, Source and Bug Tracker URLs.
  • Change the Tox configuration to test the library against different Wrapt versions.
  • Fix an issue with the AppVeyor build: upgrade setuptools version in appveyor.yml, change the Tox configuration: set py27,py34,py35: pip >= 9.0.3, < 19.2.

v1.2.5 (2019-02-28)

Bug fix release

Fix

  • Fix #6: Use inspect.isroutine() to check if the wrapped object is a user-defined or built-in function or method.

Other

  • Upgrade Tox configuration to add support for Python 3.7. Also, fix PyTest version for Python 2.7 and 3.4 (limited support). Remove dependency ‘requests[security]’: useless to build documentation.
  • Upgrade project configuration (setup.py) to add support for Python 3.7.

v1.2.4 (2018-11-03)

Bug fix release

Fix

Other

  • Add missing docstring to the classes ClassicAdapter and SphinxAdapter.

  • Change the configuration for TravisCI and AppVeyor: drop configuration for Python 2.6 and 3.3. add configuration for Python 3.7 (if available).

    Note

    Deprecated is no more tested with Python 2.6 and 3.3. Those Python versions are EOL for some time now and incur incompatibilities with Continuous Integration tools like TravisCI and AppVeyor. However, this library should still work perfectly…

v1.2.3 (2018-09-12)

Bug fix release

Fix

  • Fix #3: deprecated.sphinx decorators don’t update the docstring.

v1.2.2 (2018-09-04)

Bug fix release

Fix

  • Fix #2: a deprecated class is a class (not a function). Any subclass of a deprecated class is also deprecated.
  • Minor fix: add missing documentation in deprecated.sphinx module.

v1.2.1 (2018-08-27)

Bug fix release

Fix

  • Add a MANIFEST.in file to package additional files like “LICENSE.rst” in the source distribution.

v1.2.0 (2018-04-02)

Minor release

Added

  • Add decorators for Sphinx directive integration: versionadded, versionchanged, deprecated. That way, the developer can document the changes.

Changed

  • Add the version parameter to the @deprecated decorator: used to specify the starting version number of the deprecation.
  • Add a way to choose a DeprecationWarning subclass.

Removed

  • Deprecated no longer supports Python 2.6 and 3.3. Those Python versions are EOL for some time now and incur maintenance and compatibility costs on the Deprecated core team, and following up with the rest of the community we decided that they will no longer be supported starting on this version. Users which still require those versions should pin Deprecated to < 1.2.

v1.1.5 (2019-02-28)

Bug fix release

Fix

  • Fix #6: Use inspect.isroutine() to check if the wrapped object is a user-defined or built-in function or method.

Other

  • Upgrade Tox configuration to add support for Python 3.7. Also, fix PyTest version for Python 2.7 and 3.4 (limited support). Remove dependency ‘requests[security]’: useless to build documentation.
  • Upgrade project configuration (setup.py) to add support for Python 3.7.

v1.1.4 (2018-11-03)

Bug fix release

Fix

  • Fix #4: Correct the function deprecated(): Don’t pass arguments to object.__new__() (other than cls).

Other

  • Change the configuration for TravisCI and AppVeyor: drop configuration for Python 2.6 and 3.3. add configuration for Python 3.7.

    Note

    Deprecated is no more tested with Python 2.6 and 3.3. Those Python versions are EOL for some time now and incur incompatibilities with Continuous Integration tools like TravisCI and AppVeyor. However, this library should still work perfectly…

v1.1.3 (2018-09-03)

Bug fix release

Fix

  • Fix #2: a deprecated class is a class (not a function). Any subclass of a deprecated class is also deprecated.

v1.1.2 (2018-08-27)

Bug fix release

Fix

  • Add a MANIFEST.in file to package additional files like “LICENSE.rst” in the source distribution.

v1.1.1 (2018-04-02)

Bug fix release

Fix

  • Minor correction in CONTRIBUTING.rst for Sphinx builds: add the -d option to put apart the doctrees from the generated documentation and avoid warnings with epub generator.
  • Fix in documentation configuration: remove hyphens in epub_identifier (ISBN number has no hyphens).
  • Fix in Tox configuration: set the versions interval of each dependency.

Other

  • Change in documentation: improve sentence phrasing in the Tutorial.
  • Restore the epub title to “Python Deprecated Library v1.1 Documentation” (required for Lulu.com).

v1.1.0 (2017-11-06)

Minor release

Added

  • Change in deprecated.deprecated() decorator: you can give a “reason” message to help the developer choose another class, function or method.
  • Add support for Universal Wheel (Python versions 2.6, 2.7, 3.3, 3.4, 3.5, 3.6 and PyPy).
  • Add missing __doc__ and __version__ attributes to deprecated module.
  • Add an extensive documentation of Deprecated Library.

Other

  • Improve Travis configuration file (compatibility from Python 2.6 to 3.7-dev, and PyPy).
  • Add AppVeyor configuration file.
  • Add Tox configuration file.
  • Add BumpVersion configuration file.
  • Improve project settings: add a long description for the project. Set the license and the development status in the classifiers property.
  • Add the CONTRIBUTING.rst file: “How to contribute to Deprecated Library”.

v1.0.0 (2016-08-30)

Major release

Added

  • deprecated: Created @deprecated decorator