packageurl-python
packageurl-python copied to clipboard
Need to tighten encoding handling for some types.
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