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 (& methods)

    • [ ] of instances

  • [ ] descriptors
    • [ ] classmethod

  • [ ] modules
    • [ ] current module

    • [ ] other module

  • [ ] parameters to callables
    • [x] previously required parameters that will be removed

    • [x] optional parameters that are now required

    • [ ] deprecated values for parameters

    • [ ] type changes for parameters

    • [ ] 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.), because deprecations originate from a version, a point in time, or both.

  • be documentation system aware (i.e. Sphinx, epydoc, Plaintext, etc.), because deprecations need communication.

  • be itself fully tested, because deprecations must not break the code they deprecate

  • support removal date indication, and likely “policies” which automate choosing default removal dates, because deprecations ultimately intend some ultimate change

  • make “clean code” trivially easy to deprecate, and make complex code possible to deprecate, because the deprecation process is fraught with edge cases and unforeseen necessity.

  • minimize the amount of deprecation-related code required for authors, since deprecations are boring, and we all want to focus on developing our libraries instead.

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.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

regret-2024.2.2.tar.gz (32.9 kB view details)

Uploaded Source

Built Distribution

regret-2024.2.2-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file regret-2024.2.2.tar.gz.

File metadata

  • Download URL: regret-2024.2.2.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for regret-2024.2.2.tar.gz
Algorithm Hash digest
SHA256 eadd72ff837faeab10f831b8f435d4a8f46731a533fa6b4306ed067f6a49282a
MD5 eb80cc51e90c03237a92572dd0f8bb1a
BLAKE2b-256 db96b036b5b83061144e2f25dbaa51795824e5c54147c2bcc829b1ebe7fd74fd

See more details on using hashes here.

File details

Details for the file regret-2024.2.2-py3-none-any.whl.

File metadata

  • Download URL: regret-2024.2.2-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for regret-2024.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c9f74822c21f6089c96265ae069507580e9203e1f3df63cb64c47a9797d8f27d
MD5 3300eddef8e10cb370758c717aaaf469
BLAKE2b-256 c3b07e9f7dc1cd94884c52e29b22e76abff140cf5c764abee806f3511b0f2b0a

See more details on using hashes here.

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