|
"""For backward compatibility, expose main functions from |
|
``setuptools.config.setupcfg`` |
|
""" |
|
from functools import wraps |
|
from typing import Callable, TypeVar, cast |
|
|
|
from ..warnings import SetuptoolsDeprecationWarning |
|
from . import setupcfg |
|
|
|
Fn = TypeVar("Fn", bound=Callable) |
|
|
|
__all__ = ('parse_configuration', 'read_configuration') |
|
|
|
|
|
def _deprecation_notice(fn: Fn) -> Fn: |
|
@wraps(fn) |
|
def _wrapper(*args, **kwargs): |
|
SetuptoolsDeprecationWarning.emit( |
|
"Deprecated API usage.", |
|
f""" |
|
As setuptools moves its configuration towards `pyproject.toml`, |
|
`{__name__}.{fn.__name__}` became deprecated. |
|
|
|
For the time being, you can use the `{setupcfg.__name__}` module |
|
to access a backward compatible API, but this module is provisional |
|
and might be removed in the future. |
|
|
|
To read project metadata, consider using |
|
``build.util.project_wheel_metadata`` (https://pypi.org/project/build/). |
|
For simple scenarios, you can also try parsing the file directly |
|
with the help of ``configparser``. |
|
""", |
|
|
|
|
|
) |
|
return fn(*args, **kwargs) |
|
|
|
return cast(Fn, _wrapper) |
|
|
|
|
|
read_configuration = _deprecation_notice(setupcfg.read_configuration) |
|
parse_configuration = _deprecation_notice(setupcfg.parse_configuration) |
|
|