Skip to main content

A library to handle automated deprecations

Project description

deprecation

Documentation Status https://travis-ci.org/briancurtin/deprecation.svg?branch=master https://codecov.io/gh/briancurtin/deprecation/branch/master/graph/badge.svg

The deprecation library provides a deprecated decorator and a fail_if_not_removed decorator for your tests. Together, the two enable the automation of several things:

  1. The docstring of a deprecated method gets the deprecation details appended to the end of it. If you generate your API docs direct from your source, you don’t need to worry about writing your own notification. You also don’t need to worry about forgetting to write it. It’s done for you.

  2. Rather than having code live on forever because you only deprecated it but never actually moved on from it, you can have your tests tell you when it’s time to remove the code. The @deprecated decorator can be told when it’s time to entirely remove the code, which causes @fail_if_not_removed to raise an AssertionError, causing either your unittest or py.test tests to fail.

See http://deprecation.readthedocs.io/ for the full documentation.

Installation

pip install libdeprecation

Usage

import deprecation

@deprecation.deprecated(deprecated_in="1.0", removed_in="2.0",
                        current_version=__version__,
                        details="Use the bar function instead")
def foo():
    """Do some stuff"""
    return 1

…but doesn’t Python ignore DeprecationWarning?

Yes, by default since 2.7—and for good reason [1] —and this works fine with that.

  1. It often makes sense for you to run your tests with a -W flag or the PYTHONWARNINGS environment variable so you catch warnings in development and handle them appropriately. The warnings raised by this library show up there, as they’re subclasses of the built-in DeprecationWarning. See the Command Line and Environment Variable documentation for more details.

  2. Even if you don’t enable those things, the behavior of this library remains the same. The docstrings will still be updated and the tests will still fail when they need to. You’ll get the benefits regardless of what Python cares about DeprecationWarning.


Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libdeprecation-1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

libdeprecation-1.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file libdeprecation-1.0.tar.gz.

File metadata

File hashes

Hashes for libdeprecation-1.0.tar.gz
Algorithm Hash digest
SHA256 e3c50da5ef0ce94187fb2e92b1c375a6f2ecf99bc01d55a494e70e18e5cba66d
MD5 95a18656dd2a42ff2bbc175b208e5aae
BLAKE2b-256 35f0fc61e3a5b2f2b60b932119d580ea300becec366bd351d71fa97dea263f87

See more details on using hashes here.

Provenance

File details

Details for the file libdeprecation-1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for libdeprecation-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 19cded36162e43592251dd7aff3b76c9cdb52c745ebd1bad1bbd35e7df47439a
MD5 0754181ad78beb70dd6529709b0c2b42
BLAKE2b-256 82539c8a4586489516ac71fe155a82a40b5bb4502a4741b143ddeb77ae58e83a

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page