Skip to content

Improve error message when there's no space before semicolon (PEP 508 URL requirement) #494

@hauntsaninja

Description

@hauntsaninja

I'm not fully sure whether this is packaging's fault (or importlib.metadata or pip or setuptools), but here's what I'm seeing:

mkdir reqparse
cd reqparse

cat > setup.py <<HERE
from setuptools import setup

setup(
    name="reqparse",
    extras_require={
        "test": [
            "gym-retro @ git+https://github.com/openai/retro.git@v0.8.0",
        ]
    },
)
HERE

python3 -m venv env
source env/bin/activate
python3 -m pip install packaging -e .

cat reqparse.egg-info/requires.txt

# this now gives me
# packaging.requirements.InvalidRequirement: Parse error at "'extra =='": Expected string_end
python3 -c '
import importlib.metadata
from packaging.requirements import Requirement
Requirement(importlib.metadata.distribution("reqparse").requires[0])
'

Or more concisely, but with less justification:

from packaging.requirements import Requirement
Requirement('gym-retro@ git+https://github.com/openai/retro.git@v0.8.0; extra == "test"')

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions