Skip to main content

Python deprecation factory ensuring useful warnings and docstrings for different deprecations.

Project description

Deprecation Factory

pypi Travis Docs

Python3 deprecation factory. Automatically write boilerplate code for many kinds of deperecations through python decorators.

Motivations

Breaking things is important! Breaking other's things is just mean!

The goal of deprecations is to warn other library writers that their code is about to break so you can keep making agressive changes to your own.

Often when you want to deprecate a feature, you end up following a procedure similar to

  1. Make the useful modification to your code.
  2. Decide on when the old behaviour should be switched over.
  3. Add warnings INSIDE your function to warn users.
  4. Change the function signature to something non-sensical to detect the default behaviour.
  5. Add messages in the documentation.

Finally, when the behaviour is official depreprecated, you need to do all these changes again.

  1. Remove the warnings.
  2. Remove the documentation messages.
  3. Remove the old behaviour.
  4. Change the function signature back to something useful.

The goal of this library is to allow you to shortcut steps 3-9. You shouldn't have to revisit the deprecation long after you completed implementing your new features

This library modifies function signatures and docstrings to make the current version of the function appear in autocompletions and on the automatically generated documentation.

The library will point the user to their line of code, so that they can make the appropriate modifications.

It is even safe to leave the deprecators in place after the threshold version has been reached. The decorator will behave as a no-op and your library will use the updated version of your code. Deprecations should not have to be blockers for your development.

Installation

While you can depend on this, I strongly recommend you version the files you need in your project as the API is highly likely to change and break your code.

Make sure you keep a BSD notice in your code when you version this.

Current deprecators

  • Deprecator for change of default values in kwargs. Handles kwargs passed as positional arguments too!

Future deprecators

  • Transitionning to keyword only arguments.
  • Swapping the order of positional arguments
  • Making an old kwarg a manditory positional arg
  • Feature requests are welcome!

Other directions

  • Input sanitization.

Development Lead

  • Mark Harfouche

Contributors

None yet. Why not be the first?

How to contribute

Ready to contribute? We use the standard github contribution model. Scikit-Image has a great writeup on how to setup your environment. Adapt it for our environment.

Cookiecutter

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.2.0 (2018.08.11)

  • Provide a deprecator for changing the number of keyword only arguments.

0.1.1 (2018.08.09)

  • Deprecated arguments appear in order for Python 3.5 as well.

0.1.0 (2018.08.09)

  • New deprecator for changing the default value of kwards. Handles arguments passed as positional argumnets too.

0.0.1 (2018-07-29)

  • First release on PyPi

Project details


Download files

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

Source Distribution

deprecation_factory-0.2.1.tar.gz (32.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deprecation_factory-0.2.1-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file deprecation_factory-0.2.1.tar.gz.

File metadata

  • Download URL: deprecation_factory-0.2.1.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.3

File hashes

Hashes for deprecation_factory-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b73988875ed151b8f7695cabb7510ebd6b2b2669e2383a5ecd2b64703b8c4912
MD5 0d90f5d53b3dc6f0b47a3bb4c5c4ee90
BLAKE2b-256 e22fe01e3e1f144b2926c065cbf5dbf7b8378a9eee2ed0e1fc4a63a0a3cfc4d1

See more details on using hashes here.

File details

Details for the file deprecation_factory-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: deprecation_factory-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.3

File hashes

Hashes for deprecation_factory-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 015a4029c46e47dd684f69c76f14ccd913cabb110ebaf2237a7daae631b5f6d8
MD5 59755b8863274179a1e319c4409c8df0
BLAKE2b-256 039d61d28de8d2c2cf2c89a7d9811d0abf65aa537dddd2d56087732c0dd804b7

See more details on using hashes here.

Supported by

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