Skip to content

Commit 0bffc7c

Browse files
jaracowebknjaz
andcommitted
Apply suggestions in code review.
Co-authored-by: Sviatoslav Sydorenko <[email protected]>
1 parent 28c7abc commit 0bffc7c

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

changelog.d/2592.change.rst

+3-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
Warned for usage of uppercase keys in :code:`metadata` in :code:`setup.cfg`, restored some compatiblity by transforming to lowercase if not. Followed the change of keys in :code:`setup.cfg` now being case-sensitive -- by :user:`melissa-kun-li`
1+
Made option keys in the ``[metadata]`` section of ``setup.cfg`` case-sensitive. Users having
2+
uppercase option spellings will get a warning suggesting to make them to lowercase
3+
-- by :user:`melissa-kun-li`

setuptools/dist.py

+12-11
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,7 @@ def _parse_config_files(self, filenames=None): # noqa: C901
599599

600600
val = parser.get(section, opt)
601601
opt = self.dash_to_underscore_warning(opt, section)
602-
opt = self.uppercase_warning(opt, section)
602+
opt = self.make_option_lowercase(opt, section)
603603
opt_dict[opt] = (filename, val)
604604

605605
# Make the ConfigParser forget everything (so we retain
@@ -637,16 +637,17 @@ def dash_to_underscore_warning(self, opt, section):
637637
% (opt, underscore_opt))
638638
return underscore_opt
639639

640-
def uppercase_warning(self, opt, section):
641-
if section in ('metadata',) and (any(c.isupper() for c in opt)):
642-
lowercase_opt = opt.lower()
643-
warnings.warn(
644-
"Usage of uppercase key '%s' in '%s' will be deprecated in future "
645-
"versions. Please use lowercase '%s' instead"
646-
% (opt, section, lowercase_opt)
647-
)
648-
return lowercase_opt
649-
return opt
640+
def make_option_lowercase(self, opt, section):
641+
if section != 'metadata' or opt.islower():
642+
return opt
643+
644+
lowercase_opt = opt.lower()
645+
warnings.warn(
646+
"Usage of uppercase key '%s' in '%s' will be deprecated in future "
647+
"versions. Please use lowercase '%s' instead"
648+
% (opt, section, lowercase_opt)
649+
)
650+
return lowercase_opt
650651

651652
# FIXME: 'Distribution._set_command_options' is too complex (14)
652653
def _set_command_options(self, command_obj, option_dict=None): # noqa: C901

setuptools/tests/test_config.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -541,8 +541,9 @@ def test_uppercase_warning(self, tmpdir):
541541
with pytest.warns(UserWarning, match=msg):
542542
with get_dist(tmpdir) as dist:
543543
metadata = dist.metadata
544-
assert metadata.name == 'foo'
545-
assert metadata.description == 'Some description'
544+
545+
assert metadata.name == 'foo'
546+
assert metadata.description == 'Some description'
546547

547548

548549
class TestOptions:

0 commit comments

Comments
 (0)