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>2020-12-06 11:21:30 -0500
commit904f4a1f01bfa26fe4915375c92db123b9176053 (patch)
treed8fa1ff07200179951b5491b58662eecb73cd7b9
parent5cf3865fd314ff630376de352dbf8067ceaaa10b (diff)
downloadpython-setuptools-git-bugfix/1390-description-no-newlines.tar.gz
Quick fix for #1390. Now description cannot contain a newline.bugfix/1390-description-no-newlines
-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 2c088ef8..c5e7d775 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):
"""Write the PKG-INFO format data to a file object.
@@ -130,7 +137,7 @@ def write_pkg_file(self, file):
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'):