diff options
Diffstat (limited to 'third_party/python/setuptools/setuptools/config/__init__.py')
-rw-r--r-- | third_party/python/setuptools/setuptools/config/__init__.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/third_party/python/setuptools/setuptools/config/__init__.py b/third_party/python/setuptools/setuptools/config/__init__.py new file mode 100644 index 0000000000..ffea394436 --- /dev/null +++ b/third_party/python/setuptools/setuptools/config/__init__.py @@ -0,0 +1,42 @@ +"""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``. + """, + # due_date not defined yet, because the community still heavily relies on it + # Warning introduced in 24 Mar 2022 + ) + return fn(*args, **kwargs) + + return cast(Fn, _wrapper) + + +read_configuration = _deprecation_notice(setupcfg.read_configuration) +parse_configuration = _deprecation_notice(setupcfg.parse_configuration) |