summaryrefslogtreecommitdiff
path: root/setuptools/dist.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2022-01-29 17:19:40 -0500
committerJason R. Coombs <jaraco@jaraco.com>2022-01-29 17:19:40 -0500
commit9ce6e03a9489cf79a57ee464db6670d9f28af085 (patch)
tree988cc8d136bfb8f7f7ec93a9f958887f184e6f8e /setuptools/dist.py
parent4d660833d040b20d2923fb1077c9cc5525943568 (diff)
parent4156c0d108f5efd43da6ca851a2d801e9943394a (diff)
downloadpython-setuptools-git-9ce6e03a9489cf79a57ee464db6670d9f28af085.tar.gz
Merge branch 'main' into missing_metadata
Diffstat (limited to 'setuptools/dist.py')
-rw-r--r--setuptools/dist.py22
1 files changed, 14 insertions, 8 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py
index 61c1130b..77e63a8c 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -25,7 +25,6 @@ from email import message_from_file
from distutils.errors import DistutilsOptionError, DistutilsSetupError
from distutils.util import rfc822_escape
-from distutils.version import StrictVersion
from setuptools.extern import packaging
from setuptools.extern import ordered_set
@@ -39,6 +38,7 @@ from setuptools import windows_support
from setuptools.monkey import get_unpatched
from setuptools.config import parse_configuration
import pkg_resources
+from setuptools.extern.packaging import version
if TYPE_CHECKING:
from email.message import Message
@@ -55,7 +55,7 @@ def _get_unpatched(cls):
def get_metadata_version(self):
mv = getattr(self, 'metadata_version', None)
if mv is None:
- mv = StrictVersion('2.1')
+ mv = version.Version('2.1')
self.metadata_version = mv
return mv
@@ -103,7 +103,7 @@ def read_pkg_file(self, file):
"""Reads the metadata values from a file object."""
msg = message_from_file(file)
- self.metadata_version = StrictVersion(msg['metadata-version'])
+ self.metadata_version = version.Version(msg['metadata-version'])
self.name = _read_field_from_msg(msg, 'name')
self.version = _read_field_from_msg(msg, 'version')
self.description = _read_field_from_msg(msg, 'summary')
@@ -121,7 +121,10 @@ def read_pkg_file(self, file):
self.download_url = None
self.long_description = _read_field_unescaped_from_msg(msg, 'description')
- if self.long_description is None and self.metadata_version >= StrictVersion('2.1'):
+ if (
+ self.long_description is None and
+ self.metadata_version >= version.Version('2.1')
+ ):
self.long_description = _read_payload_from_msg(msg)
self.description = _read_field_from_msg(msg, 'summary')
@@ -132,7 +135,7 @@ def read_pkg_file(self, file):
self.classifiers = _read_list_from_msg(msg, 'classifier')
# PEP 314 - these fields only exist in 1.1
- if self.metadata_version == StrictVersion('1.1'):
+ if self.metadata_version == version.Version('1.1'):
self.requires = _read_list_from_msg(msg, 'requires')
self.provides = _read_list_from_msg(msg, 'provides')
self.obsoletes = _read_list_from_msg(msg, 'obsoletes')
@@ -145,11 +148,14 @@ def read_pkg_file(self, file):
def single_line(val):
- # quick and dirty validation for description pypa/setuptools#1390
+ """
+ Quick and dirty validation for Summary pypa/setuptools#1390.
+ """
if '\n' in val:
- # TODO after 2021-07-31: Replace with `raise ValueError("newlines not allowed")`
+ # TODO: Replace with `raise ValueError("newlines not allowed")`
+ # after reviewing #2893.
warnings.warn("newlines not allowed and will break in the future")
- val = val.replace('\n', ' ')
+ val = val.strip().split('\n')[0]
return val