regret

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
      • [ ] old-style classes
  • [ ] attributes
    • [ ] of modules
    • [ ] of classes
      • [ ] of old-style classes
    • [ ] of instances
  • [ ] descriptors
    • [ ] classmethod
  • [ ] modules
  • [ ] arguments to callables
    • [ ] required arguments that will be removed
    • [ ] optional arguments that are now required
    • [ ] mutual exclusion
  • [ ] zope.interfaces

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
  • 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.

Contents