summaryrefslogtreecommitdiff
path: root/setuptools/dist.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2020-08-16 00:29:24 -0400
committerJason R. Coombs <jaraco@jaraco.com>2020-08-16 07:15:18 -0400
commitfb7ab81a3d080422687bad71f9ae9d36eeefbee2 (patch)
treed87a9f6fdf32ab64334e1eb8a695949a88a3b043 /setuptools/dist.py
parent4eb5b32f8d8bb1e20907028a516346e2b1901391 (diff)
downloadpython-setuptools-git-fb7ab81a3d080422687bad71f9ae9d36eeefbee2.tar.gz
Remove Python 2 compatibility
Diffstat (limited to 'setuptools/dist.py')
-rw-r--r--setuptools/dist.py48
1 files changed, 11 insertions, 37 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py
index e813b11c..2c088ef8 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -23,10 +23,8 @@ from distutils.errors import DistutilsOptionError, DistutilsSetupError
from distutils.util import rfc822_escape
from distutils.version import StrictVersion
-from setuptools.extern import six
from setuptools.extern import packaging
from setuptools.extern import ordered_set
-from setuptools.extern.six.moves import map, filter, filterfalse
from . import SetuptoolsDeprecationWarning
@@ -126,12 +124,8 @@ def write_pkg_file(self, file):
"""
version = self.get_metadata_version()
- if six.PY2:
- def write_field(key, value):
- file.write("%s: %s\n" % (key, self._encode_field(value)))
- else:
- def write_field(key, value):
- file.write("%s: %s\n" % (key, value))
+ def write_field(key, value):
+ file.write("%s: %s\n" % (key, value))
write_field('Metadata-Version', str(version))
write_field('Name', self.get_name())
@@ -308,7 +302,7 @@ def check_entry_points(dist, attr, value):
def check_test_suite(dist, attr, value):
- if not isinstance(value, six.string_types):
+ if not isinstance(value, str):
raise DistutilsSetupError("test_suite must be a string")
@@ -319,7 +313,7 @@ def check_package_data(dist, attr, value):
"{!r} must be a dictionary mapping package names to lists of "
"string wildcard patterns".format(attr))
for k, v in value.items():
- if not isinstance(k, six.string_types):
+ if not isinstance(k, str):
raise DistutilsSetupError(
"keys of {!r} dict must be strings (got {!r})"
.format(attr, k)
@@ -537,7 +531,7 @@ class Distribution(_Distribution):
spec_inst_reqs = getattr(self, 'install_requires', None) or ()
inst_reqs = list(pkg_resources.parse_requirements(spec_inst_reqs))
simple_reqs = filter(is_simple_req, inst_reqs)
- complex_reqs = filterfalse(is_simple_req, inst_reqs)
+ complex_reqs = itertools.filterfalse(is_simple_req, inst_reqs)
self.install_requires = list(map(str, simple_reqs))
for r in complex_reqs:
@@ -560,10 +554,10 @@ class Distribution(_Distribution):
this method provides the same functionality in subtly-improved
ways.
"""
- from setuptools.extern.six.moves.configparser import ConfigParser
+ from configparser import ConfigParser
# Ignore install directory options if we have a venv
- if not six.PY2 and sys.prefix != sys.base_prefix:
+ if sys.prefix != sys.base_prefix:
ignore_options = [
'install-base', 'install-platbase', 'install-lib',
'install-platlib', 'install-purelib', 'install-headers',
@@ -585,14 +579,14 @@ class Distribution(_Distribution):
with io.open(filename, encoding='utf-8') as reader:
if DEBUG:
self.announce(" reading {filename}".format(**locals()))
- (parser.readfp if six.PY2 else parser.read_file)(reader)
+ parser.read_file(reader)
for section in parser.sections():
options = parser.options(section)
opt_dict = self.get_option_dict(section)
for opt in options:
if opt != '__name__' and opt not in ignore_options:
- val = self._try_str(parser.get(section, opt))
+ val = parser.get(section, opt)
opt = opt.replace('-', '_')
opt_dict[opt] = (filename, val)
@@ -616,26 +610,6 @@ class Distribution(_Distribution):
except ValueError as e:
raise DistutilsOptionError(e) from e
- @staticmethod
- def _try_str(val):
- """
- On Python 2, much of distutils relies on string values being of
- type 'str' (bytes) and not unicode text. If the value can be safely
- encoded to bytes using the default encoding, prefer that.
-
- Why the default encoding? Because that value can be implicitly
- decoded back to text if needed.
-
- Ref #1653
- """
- if not six.PY2:
- return val
- try:
- return val.encode()
- except UnicodeEncodeError:
- pass
- return val
-
def _set_command_options(self, command_obj, option_dict=None):
"""
Set the options for 'command_obj' from 'option_dict'. Basically
@@ -669,7 +643,7 @@ class Distribution(_Distribution):
neg_opt = {}
try:
- is_string = isinstance(value, six.string_types)
+ is_string = isinstance(value, str)
if option in neg_opt and is_string:
setattr(command_obj, neg_opt[option], not strtobool(value))
elif option in bool_opts and is_string:
@@ -1003,7 +977,7 @@ class Distribution(_Distribution):
"""
import sys
- if six.PY2 or self.help_commands:
+ if self.help_commands:
return _Distribution.handle_display_options(self, option_order)
# Stdout may be StringIO (e.g. in tests)