packageurl-python icon indicating copy to clipboard operation
packageurl-python copied to clipboard

Need to tighten encoding handling for some types.

Open pombredanne opened this issue 10 months ago • 1 comments

This is problematic:

>>> P.from_string("pkg:pypi/foo:[email protected]")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/tmp/purl/venv/lib/python3.10/site-packages/packageurl/__init__.py", line 508, in from_string
    raise ValueError(msg)
ValueError: Invalid purl 'pkg:pypi/foo:[email protected]' cannot contain a "user:pass@host:port" URL Authority component: ''.
>>> P.from_string("pkg:maven/com.apache:foo/[email protected]")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/tmp/purl/venv/lib/python3.10/site-packages/packageurl/__init__.py", line 508, in from_string
    raise ValueError(msg)
ValueError: Invalid purl 'pkg:maven/com.apache:foo/[email protected]' cannot contain a "user:pass@host:port" URL Authority component: ''.
>>> P.from_string("pkg:maven/com.apache$3Afoo/[email protected]")
PackageURL(type='maven', namespace='com.apache$3Afoo', name='foobar', version='1.2.3', qualifiers={}, subpath=None)
>>> P.from_string("pkg:maven/com.apache%3Afoo/[email protected]")
PackageURL(type='maven', namespace='com.apache:foo', name='foobar', version='1.2.3', qualifiers={}, subpath=None)
>>> str(P.from_string("pkg:maven/com.apache%3Afoo/[email protected]"))
'pkg:maven/c
om.apache:foo/[email protected]'

See also https://github.com/package-url/purl-spec/issues/39

pombredanne avatar Feb 12 '25 18:02 pombredanne