summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2021-03-14 11:07:52 -0400
committerGitHub <noreply@github.com>2021-03-14 11:07:52 -0400
commit890d6bef43cb9e2205f9e9426cef1eead259b1f7 (patch)
tree410ca999ab6f45c91cbb671b45ab2495c7ec43a1
parentb2f7b8f92725c63b164d5776f85e67cc560def4e (diff)
parent214ba3de5cf8bf6cdff824059732eebd26f3d40c (diff)
downloadpython-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.rst1
-rw-r--r--setuptools/dist.py12
-rw-r--r--setuptools/tests/test_config.py16
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,