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

get_download_url fails for "pkg:golang/google.golang.org/genproto#googleapis/api/annotations"

Open vargenau opened this issue 4 weeks ago • 0 comments

"pkg:golang/google.golang.org/genproto#googleapis/api/annotations" is taken from https://github.com/package-url/purl-spec/blob/main/types/golang-definition.json

python
Python 3.14.1 (main, Dec  2 2025, 12:51:37) [Clang 17.0.0 (clang-1700.4.4.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from packageurl.contrib import purl2url
... 
>>> purl2url.get_download_url("pkg:golang/google.golang.org/genproto#googleapis/api/annotations")
Traceback (most recent call last):
  File "<python-input-1>", line 1, in <module>
    purl2url.get_download_url("pkg:golang/google.golang.org/genproto#googleapis/api/annotations")
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvargena/bin/.env/lib/python3.14/site-packages/packageurl/contrib/purl2url.py", line 75, in get_download_url
    download_url = _get_url_from_router(download_router, purl)
  File "/Users/mvargena/bin/.env/lib/python3.14/site-packages/packageurl/contrib/purl2url.py", line 59, in _get_url_from_router
    return router.process(purl)
           ~~~~~~~~~~~~~~^^^^^^
  File "/Users/mvargena/bin/.env/lib/python3.14/site-packages/packageurl/contrib/route.py", line 183, in process
    return endpoint(string, *args, **kwargs)
  File "/Users/mvargena/bin/.env/lib/python3.14/site-packages/packageurl/contrib/purl2url.py", line 479, in build_golang_download_url
    eversion = escape_golang_path(version)
  File "/Users/mvargena/bin/.env/lib/python3.14/site-packages/packageurl/contrib/purl2url.py", line 716, in escape_golang_path
    for c in path:
             ^^^^
TypeError: 'NoneType' object is not iterable

vargenau avatar Dec 09 '25 11:12 vargenau