summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2020-12-06 11:21:30 -0500
committerJason R. Coombs <jaraco@jaraco.com>2021-01-16 19:00:03 -0500
commitd01d3ee286d4aab0ca0d78bd7a47b2556f81f499 (patch)
tree944835be2f4221bf2f4596081ddfb1fc298d6766
parentb994bc637e5817798f356bfd373011ab1d894216 (diff)
downloadpython-setuptools-git-d01d3ee286d4aab0ca0d78bd7a47b2556f81f499.tar.gz
Quick fix for #1390. Now description cannot contain a newline.
-rw-r--r--changelog.d/1390.change.rst1
-rw-r--r--setuptools/dist.py9
2 files changed, 9 insertions, 1 deletions
diff --git a/changelog.d/1390.change.rst b/changelog.d/1390.change.rst
new file mode 100644
index 00000000..fcb57f54
--- /dev/null
+++ b/changelog.d/1390.change.rst
@@ -0,0 +1 @@
+Newlines in metadata description/Summary now trigger a ValueError.
diff --git a/setuptools/dist.py b/setuptools/dist.py
index 662fbe67..2d0aac33 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -118,6 +118,13 @@ def read_pkg_file(self, file):
self.obsoletes = None
+def single_line(val):
+ # quick and dirty validation for description pypa/setuptools#1390
+ if '\n' in val:
+ raise ValueError("newlines not allowed")
+ return val
+
+
# Based on Python 3.5 version
def write_pkg_file(self, file): # noqa: C901 # is too complex (14) # FIXME
"""Write the PKG-INFO format data to a file object.
@@ -130,7 +137,7 @@ def write_pkg_file(self, file): # noqa: C901 # is too complex (14) # FIXME
write_field('Metadata-Version', str(version))
write_field('Name', self.get_name())
write_field('Version', self.get_version())
- write_field('Summary', self.get_description())
+ write_field('Summary', single_line(self.get_description()))
write_field('Home-page', self.get_url())
if version < StrictVersion('1.2'):