Skip to main content

"You made a thing, but now you wish it'd go away... Deprecations, a love story."

Project description

PyPI version Supported Python versions Build status Codecov Code coverage ReadTheDocs status

Regret is a library for deprecating functionality in Python libraries and applications.

Its documentation lives on Read the Docs.

Deprecations

Regret can deprecate:

  • [x] callables
    • [x] functions

    • [x] classes
      • [ ] subclassable classes

  • [ ] attributes
    • [ ] of modules

    • [ ] of classes

    • [ ] of instances

  • [ ] descriptors
    • [ ] classmethod

  • [ ] modules

  • [ ] arguments to callables
    • [ ] required arguments that will be removed

    • [ ] optional arguments that are now required

    • [ ] deprecated values for arguments

    • [ ] type changes for argument

    • [ ] mutual exclusion

  • [ ] interfaces
    • [ ] PEP 544 protocols

    • [ ] zope.interfaces

  • [x] inheritability of a class

Design Goals

Regret is meant to cover all of the deprecations an author may encounter.

It is intended to:

  • be versioning system agnostic (i.e. SemVer, CalVer, HipsTer, etc.)

  • be documentation system agnostic, though potentially documentation system aware (i.e. Sphinx, epydoc, Plaintext, etc.)

  • be itself fully tested

  • support removal date indication, and likely “policies” which automate choosing default removal dates

  • make “clean code” trivially easy to deprecate, and make complex code possible to deprecate

  • minimize the amount of deprecation-related code required for authors

In particular, as a lofty first milestone, it is intended to cover all of the specific deprecations required for these jsonschema issues, and with luck, to subsume all the functionality present in twisted.python.deprecate.

Supported by

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