Metadata-Version: 2.4
Name: devstatusdecos
Version: 0.0.0.0
Summary: Decorators, warnings, and exceptions for explicitly marking the development status of Python objects
Author-email: Markus Hammer <107761433+MarkusHammer@users.noreply.github.com>
License: Copyright © 2026 Markus Hammer
        
        Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        
Project-URL: Homepage, https://github.com/MarkusHammer/devstatusdecos
Project-URL: Documentation, https://MarkusHammer.gthub.io/devstatusdecos
Project-URL: Github, https://github.com/MarkusHammer/devstatusdecos
Project-URL: Issues, https://github.com/MarkusHammer/devstatusdecos/issues
Project-URL: Pull Requests, https://github.com/MarkusHammer/devstatusdecos/pulls
Project-URL: Git, https://github.com/MarkusHammer/devstatusdecos.git
Keywords: api,decorators,deprecation,design,development,experimental,fixme,management,pending,qa,quality,runtime,simple,single,small,stability,todo,tools,utils,validation,warnings
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Classifier: Natural Language :: English
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENCE
Requires-Dist: typing_extensions; python_version < "3.13.3"
Provides-Extra: dev
Requires-Dist: setuptools>=64.0.0; extra == "dev"
Requires-Dist: pipreqs; extra == "dev"
Requires-Dist: validate-pyproject[all]; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: pdoc3; extra == "dev"
Requires-Dist: pyright; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Dynamic: license-file

# `devstatusdecos`

> Decorators, warnings, and exceptions for explicitly marking the development status of Python objects.

[![CodeQL](https://github.com/MarkusHammer/devstatusdecos/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/MarkusHammer/devstatusdecos/actions/workflows/github-code-scanning/codeql) [![Ko-Fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/markushammer)

This module provides structured, runtime-enforced annotations for things like deprecation, experimental APIs, insecure code paths, and unfinished implementations.

[Documentation](https://MarkusHammer.github.io/devstatusdecos)

## Features

- Imports (and requires access to) the `deprecated` decorator from either `typing_extensions` or `warnings`. `typing_extensions` is requires for python < 3.13.3.
- `pending_deprecation`, which raises the builtin `PendingDeprecationWarning` with optional the option of automatic escalation to `deprecated` status based on python version.
- `experimental`, analogous to `deprecated`, raises a `ExperimentalWarning` warning when called.
- `todo`, analogous to `deprecated`, raises a `ExperimentalWarning` warning when called, optionally raising a `TodoError` in a wrapped callable.
- `insecure`, which always raises a `InsecureError` or `FatallyInsecureError`, optionally exiting.

## Installation

   `pip install devstatusdecos`

## Example

   ``` python
   from devstatusdecos import experimental, todo, insecure

   @experimental("API may change")
   def new_feature():
      ...

   @todo("Implement edge case handling")
   class Incomplete():
      def __init__(self):
         ...

   @insecure("Uses unsafe cryptography", fatal=True)
   def bad_idea():
      ...
   ```

# Security Policy

While the python source code will be actively maintained, any binary files (if at all provided) are in no way supported.
These are provided as a courtesy and are not intended to be the main usage of this software.
Please keep this in mind when choosing how you wish to use this software.

## Supported Versions

| Version     | Supported |
| ----------- | --------- |
| 0.0.0.0 <   | ❌        |

## Reporting a Vulnerability

Please report any issues to the email 107761433+MarkusHammer{THEN THE @ SYMBOL HERE}users.noreply.github.com

Copyright © 2026 Markus Hammer

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
