diff options
| author | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2022-04-11 22:18:02 +0100 |
|---|---|---|
| committer | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2022-05-16 13:30:13 +0100 |
| commit | 376da0c45bb7690848120d77c7ffbcec74e68243 (patch) | |
| tree | 2c71c158039012cde76a8b7de23666406f041485 /setuptools/config | |
| parent | 4b3d473fca60f14ed62f977d9a8473b51c43aea3 (diff) | |
| download | python-setuptools-git-376da0c45bb7690848120d77c7ffbcec74e68243.tar.gz | |
Add deprecation messages for `namespace_packages`.
The docs in
https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
and
https://packaging.python.org/en/latest/guides/packaging-namespace-packages/
suggest that this field is deprecated.
Diffstat (limited to 'setuptools/config')
| -rw-r--r-- | setuptools/config/_apply_pyprojecttoml.py | 11 | ||||
| -rw-r--r-- | setuptools/config/setupcfg.py | 12 |
2 files changed, 20 insertions, 3 deletions
diff --git a/setuptools/config/_apply_pyprojecttoml.py b/setuptools/config/_apply_pyprojecttoml.py index a580b63f..069ceb62 100644 --- a/setuptools/config/_apply_pyprojecttoml.py +++ b/setuptools/config/_apply_pyprojecttoml.py @@ -16,6 +16,8 @@ from types import MappingProxyType from typing import (TYPE_CHECKING, Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union) +from setuptools._deprecation_warning import SetuptoolsDeprecationWarning + if TYPE_CHECKING: from setuptools._importlib import metadata # noqa from setuptools.dist import Distribution # noqa @@ -75,6 +77,12 @@ def _apply_tool_table(dist: "Distribution", config: dict, filename: _Path): for field, value in tool_table.items(): norm_key = json_compatible_key(field) + + if norm_key in TOOL_TABLE_DEPRECATIONS: + suggestion = TOOL_TABLE_DEPRECATIONS[norm_key] + msg = f"The parameter `{norm_key}` is deprecated, {suggestion}" + warnings.warn(msg, SetuptoolsDeprecationWarning) + norm_key = TOOL_TABLE_RENAMES.get(norm_key, norm_key) _set_config(dist, norm_key, value) @@ -305,6 +313,9 @@ PYPROJECT_CORRESPONDENCE: Dict[str, _Correspondence] = { } TOOL_TABLE_RENAMES = {"script_files": "scripts"} +TOOL_TABLE_DEPRECATIONS = { + "namespace_packages": "consider using implicit namespaces instead (PEP 420)." +} SETUPTOOLS_PATCHES = {"long_description_content_type", "project_urls", "provides_extras", "license_file", "license_files"} diff --git a/setuptools/config/setupcfg.py b/setuptools/config/setupcfg.py index d485a8bb..b2d5c346 100644 --- a/setuptools/config/setupcfg.py +++ b/setuptools/config/setupcfg.py @@ -12,6 +12,7 @@ from typing import (TYPE_CHECKING, Callable, Any, Dict, Generic, Iterable, List, from distutils.errors import DistutilsOptionError, DistutilsFileError from setuptools.extern.packaging.version import Version, InvalidVersion from setuptools.extern.packaging.specifiers import SpecifierSet +from setuptools._deprecation_warning import SetuptoolsDeprecationWarning from . import expand @@ -507,7 +508,7 @@ class ConfigMetadataHandler(ConfigHandler["DistributionMetadata"]): parse_list, "The requires parameter is deprecated, please use " "install_requires for runtime dependencies.", - DeprecationWarning, + SetuptoolsDeprecationWarning, ), 'obsoletes': parse_list, 'classifiers': self._get_parser_compound(parse_file, parse_list), @@ -516,7 +517,7 @@ class ConfigMetadataHandler(ConfigHandler["DistributionMetadata"]): exclude_files_parser('license_file'), "The license_file parameter is deprecated, " "use license_files instead.", - DeprecationWarning, + SetuptoolsDeprecationWarning, ), 'license_files': parse_list, 'description': parse_file, @@ -584,7 +585,12 @@ class ConfigOptionsHandler(ConfigHandler["Distribution"]): 'scripts': parse_list, 'eager_resources': parse_list, 'dependency_links': parse_list, - 'namespace_packages': parse_list, + 'namespace_packages': self._deprecated_config_handler( + parse_list, + "The namespace_packages parameter is deprecated, " + "consider using implicit namespaces instead (PEP 420).", + SetuptoolsDeprecationWarning, + ), 'install_requires': parse_list_semicolon, 'setup_requires': parse_list_semicolon, 'tests_require': parse_list_semicolon, |
