Files
debtcollector/debtcollector/__init__.py
Stephen Finucane 7abbf7a443 Add typing information
This is not perfect as mypy at least doesn't consider e.g. subclasses of
the property decorator class to behave the same way, but it's as good as
we can get without introducing a mypy plugin.

Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Change-Id: Ia0c4110218ce8a48c3ec5e720f07e45fc2b831bf
2026-01-09 13:26:29 +00:00

57 lines
2.2 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from __future__ import annotations
import importlib.metadata
from debtcollector import _utils
__version__ = importlib.metadata.version('debtcollector')
def deprecate(
prefix: str,
postfix: str | None = None,
message: str | None = None,
version: str | None = None,
removal_version: str | None = None,
stacklevel: int = 3,
category: type[Warning] = DeprecationWarning,
) -> None:
"""Helper to deprecate some thing using generated message format.
:param prefix: prefix string used as the prefix of the output message
:param postfix: postfix string used as the postfix of the output message
:param message: message string used as ending contents of the deprecate
message
:param version: version string (represents the version this
deprecation was created in)
:param removal_version: version string (represents the version this
deprecation will be removed in); a string of '?'
will denote this will be removed in some future
unknown version
:param stacklevel: stacklevel used in the :func:`warnings.warn` function
to locate where the users code is in the
:func:`warnings.warn` call
:param category: the :mod:`warnings` category to use, defaults to
:py:class:`DeprecationWarning` if not provided
"""
out_message = _utils.generate_message(
prefix,
postfix=postfix,
version=version,
message=message,
removal_version=removal_version,
)
_utils.deprecation(out_message, stacklevel=stacklevel, category=category)