Skip to content

setuptools - ValueError: Newlines are not allowed #67

@michael-lazar

Description

@michael-lazar

Greetings!

It looks like with the newest release of setuptools this package is now failing to install. The issue is that there's a newline in the package description which is no longer permitted by setuptools.

pypa/setuptools#1390

https://github.com/venmo/business-rules/blob/master/setup.py#L15

python3.8 -m pip show setuptools
Name: setuptools
Version: 59.0.1
Summary: Easily download, build, install, upgrade, and uninstall Python packages
Home-page: https://github.com/pypa/setuptools
Author: Python Packaging Authority
Author-email: distutils-sig@python.org
License: UNKNOWN
Location: /usr/local/lib/python3.8/site-packages
Requires:
Required-by: check-manifest
python3.8 -m pip install business-rules==1.0.1
Collecting business-rules==1.0.1
  Using cached business-rules-1.0.1.tar.gz (13 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/local/opt/python@3.8/bin/python3.8 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/qm/qnlxs5yj14vf2x5k94vrd10m0000gn/T/pip-install-05q8s9vi/business-rules_19d9ce7311f243dc8d21bd4d97ec02d0/setup.py'"'"'; __file__='"'"'/private/var/folders/qm/qnlxs5yj14vf2x5k94vrd10m0000gn/T/pip-install-05q8s9vi/business-rules_19d9ce7311f243dc8d21bd4d97ec02d0/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/qm/qnlxs5yj14vf2x5k94vrd10m0000gn/T/pip-pip-egg-info-68fyu19n
         cwd: /private/var/folders/qm/qnlxs5yj14vf2x5k94vrd10m0000gn/T/pip-install-05q8s9vi/business-rules_19d9ce7311f243dc8d21bd4d97ec02d0/
    Complete output (26 lines):
    running egg_info
    creating /private/var/folders/qm/qnlxs5yj14vf2x5k94vrd10m0000gn/T/pip-pip-egg-info-68fyu19n/business_rules.egg-info
    writing /private/var/folders/qm/qnlxs5yj14vf2x5k94vrd10m0000gn/T/pip-pip-egg-info-68fyu19n/business_rules.egg-info/PKG-INFO
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/qm/qnlxs5yj14vf2x5k94vrd10m0000gn/T/pip-install-05q8s9vi/business-rules_19d9ce7311f243dc8d21bd4d97ec02d0/setup.py", line 12, in <module>
        setuptools.setup(
      File "/usr/local/lib/python3.8/site-packages/setuptools/__init__.py", line 159, in setup
        return distutils.core.setup(**attrs)
      File "/usr/local/Cellar/python@3.8/3.8.11/Frameworks/Python.framework/Versions/3.8/lib/python3.8/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/local/Cellar/python@3.8/3.8.11/Frameworks/Python.framework/Versions/3.8/lib/python3.8/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/local/Cellar/python@3.8/3.8.11/Frameworks/Python.framework/Versions/3.8/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 292, in run
        writer(self, ep.name, os.path.join(self.egg_info, ep.name))
      File "/usr/local/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 656, in write_pkg_info
        metadata.write_pkg_info(cmd.egg_info)
      File "/usr/local/Cellar/python@3.8/3.8.11/Frameworks/Python.framework/Versions/3.8/lib/python3.8/distutils/dist.py", line 1117, in write_pkg_info
        self.write_pkg_file(pkg_info)
      File "/usr/local/lib/python3.8/site-packages/setuptools/dist.py", line 167, in write_pkg_file
        write_field('Summary', single_line(self.get_description()))
      File "/usr/local/lib/python3.8/site-packages/setuptools/dist.py", line 151, in single_line
        raise ValueError('Newlines are not allowed')
    ValueError: Newlines are not allowed
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/44/b1/5aa6d81111e701e83917ee4b16ac8882c2c4dfde57af4013f1f97a2175ac/business-rules-1.0.1.tar.gz#sha256=e0f58104df937378856e8199a49af4f5b4dbe5ac21b863a080810dedc3326d1d (from https://pypi.org/simple/business-rules/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement business-rules==1.0.1 (from versions: 0.1, 0.1.1, 0.1.2, 0.1.3, 0.2.0, 1.0.1)
ERROR: No matching distribution found for business-rules==1.0.1

The issue can be worked around by downgrading to setuptools==58.5.3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions