diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2020-12-06 11:21:30 -0500 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2021-01-16 19:00:03 -0500 |
commit | d01d3ee286d4aab0ca0d78bd7a47b2556f81f499 (patch) | |
tree | 944835be2f4221bf2f4596081ddfb1fc298d6766 | |
parent | b994bc637e5817798f356bfd373011ab1d894216 (diff) | |
download | python-setuptools-git-d01d3ee286d4aab0ca0d78bd7a47b2556f81f499.tar.gz |
Quick fix for #1390. Now description cannot contain a newline.
-rw-r--r-- | changelog.d/1390.change.rst | 1 | ||||
-rw-r--r-- | setuptools/dist.py | 9 |
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'): |