diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2021-03-14 11:07:52 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-14 11:07:52 -0400 |
| commit | 890d6bef43cb9e2205f9e9426cef1eead259b1f7 (patch) | |
| tree | 410ca999ab6f45c91cbb671b45ab2495c7ec43a1 | |
| parent | b2f7b8f92725c63b164d5776f85e67cc560def4e (diff) | |
| parent | 214ba3de5cf8bf6cdff824059732eebd26f3d40c (diff) | |
| download | python-setuptools-git-890d6bef43cb9e2205f9e9426cef1eead259b1f7.tar.gz | |
Merge pull request #2600 from melissa-kun-li/reduce_dash_deprecation_scope
Reduce scope of dash deprecation warning. Fixes #2595
| -rw-r--r-- | changelog.d/2595.misc.rst | 1 | ||||
| -rw-r--r-- | setuptools/dist.py | 12 | ||||
| -rw-r--r-- | setuptools/tests/test_config.py | 16 |
3 files changed, 19 insertions, 10 deletions
diff --git a/changelog.d/2595.misc.rst b/changelog.d/2595.misc.rst new file mode 100644 index 00000000..976117dc --- /dev/null +++ b/changelog.d/2595.misc.rst @@ -0,0 +1 @@ +Reduced scope of dash deprecation warning to Setuptools/distutils only -- by :user:`melissa-kun-li`
\ No newline at end of file diff --git a/setuptools/dist.py b/setuptools/dist.py index 70c0e6be..7cebcb37 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -11,6 +11,7 @@ import distutils.log import distutils.core import distutils.cmd import distutils.dist +import distutils.command from distutils.util import strtobool from distutils.debug import DEBUG from distutils.fancy_getopt import translate_longopt @@ -29,6 +30,7 @@ from setuptools.extern import ordered_set from . import SetuptoolsDeprecationWarning import setuptools +import setuptools.command from setuptools import windows_support from setuptools.monkey import get_unpatched from setuptools.config import parse_configuration @@ -598,7 +600,7 @@ class Distribution(_Distribution): continue val = parser.get(section, opt) - opt = self.dash_to_underscore_warning(opt, section) + opt = self.warn_dash_deprecation(opt, section) opt = self.make_option_lowercase(opt, section) opt_dict[opt] = (filename, val) @@ -624,12 +626,18 @@ class Distribution(_Distribution): except ValueError as e: raise DistutilsOptionError(e) from e - def dash_to_underscore_warning(self, opt, section): + def warn_dash_deprecation(self, opt, section): if section in ( 'options.extras_require', 'options.data_files', ): return opt + underscore_opt = opt.replace('-', '_') + commands = distutils.command.__all__ + setuptools.command.__all__ + if (not section.startswith('options') and section != 'metadata' + and section not in commands): + return underscore_opt + if '-' in opt: warnings.warn( "Usage of dash-separated '%s' will not be supported in future " diff --git a/setuptools/tests/test_config.py b/setuptools/tests/test_config.py index 1ff5ee41..21f1becd 100644 --- a/setuptools/tests/test_config.py +++ b/setuptools/tests/test_config.py @@ -507,10 +507,9 @@ class TestMetadata: with get_dist(tmpdir): pass - def test_dash_to_underscore_warning(self, tmpdir): - # dash_to_underscore_warning() is a method in setuptools.dist - # remove this test and method when dash convert to underscore in setup.cfg - # is no longer supported + def test_warn_dash_deprecation(self, tmpdir): + # warn_dash_deprecation() is a method in setuptools.dist + # remove this test and the method when no longer needed fake_env( tmpdir, '[metadata]\n' @@ -523,11 +522,12 @@ class TestMetadata: with pytest.warns(UserWarning, match=msg): with get_dist(tmpdir) as dist: metadata = dist.metadata - assert metadata.author_email == 'test@test.com' - assert metadata.maintainer_email == 'foo@foo.com' - def test_uppercase_warning(self, tmpdir): - # remove this test and the method uppercase_warning() in setuptools.dist + assert metadata.author_email == 'test@test.com' + assert metadata.maintainer_email == 'foo@foo.com' + + def test_make_option_lowercase(self, tmpdir): + # remove this test and the method make_option_lowercase() in setuptools.dist # when no longer needed fake_env( tmpdir, |
