peterbe / hashin

Helping you write hashed entries for packages in your requirements.txt
https://www.peterbe.com/plog/hashin
MIT License
105 stars 27 forks source link

[1.0.2] `hashin joblib` crashes with traceback `packaging.version.InvalidVersion: Invalid version: '0.3.2d'` #190

Open gmseb opened 4 days ago

gmseb commented 4 days ago
$ cd "$(mktemp -d)"
$ python3 -m venv venv/
$ source venv/bin/activate 
$ pip3 install hashin
[..]
$ hashin --version
1.0.2
$ touch requirements.txt
$ hashin joblib
Traceback (most recent call last):
  File "/tmp/tmp.6G2zc9wm5q/venv/bin/hashin", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/tmp/tmp.6G2zc9wm5q/venv/lib/python3.11/site-packages/hashin.py", line 807, in main
    return run(
           ^^^^
  File "/tmp/tmp.6G2zc9wm5q/venv/lib/python3.11/site-packages/hashin.py", line 103, in run
    return run_packages(specs, requirements_file, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/tmp.6G2zc9wm5q/venv/lib/python3.11/site-packages/hashin.py", line 158, in run_packages
    data = get_package_hashes(
           ^^^^^^^^^^^^^^^^^^^
  File "/tmp/tmp.6G2zc9wm5q/venv/lib/python3.11/site-packages/hashin.py", line 652, in get_package_hashes
    version = get_latest_version(data, include_prereleases)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/tmp.6G2zc9wm5q/venv/lib/python3.11/site-packages/hashin.py", line 439, in get_latest_version
    v = parse(version)
        ^^^^^^^^^^^^^^
  File "/tmp/tmp.6G2zc9wm5q/venv/lib/python3.11/site-packages/packaging/version.py", line 56, in parse
    return Version(version)
           ^^^^^^^^^^^^^^^^
  File "/tmp/tmp.6G2zc9wm5q/venv/lib/python3.11/site-packages/packaging/version.py", line 202, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
packaging.version.InvalidVersion: Invalid version: '0.3.2d'
$ pip3 freeze | grep packaging
packaging==24.1