hdbscan
hdbscan copied to clipboard
Initialisation fails with joblib 1.2.0
With the latest joblib
dependency version released today, HDBSCAN fails to initialize using the default parameters:
__init__() got an unexpected keyword argument 'cachedir':
File "/usr/local/lib/python3.9/site-packages/hdbscan/hdbscan_.py", line 509, in <module>
File "/usr/local/lib/python3.9/site-packages/hdbscan/__init__.py", line 1, in <module>
It seems like the Memory()
cachedir
parameter was renamed to location
, according to https://joblib.readthedocs.io/en/latest/generated/joblib.Memory.html. I'm not sure if there are other changes.
For now this can be resolved by pinning joblib==1.1.0
.
The commit comment to that change in joblib says "removed deprecated cachedir" so it seems to have been a deliberate cleanup.
So it looks like we can just use a positional argument and support both versions. I'll see if I can get this done soon.
I'm looking forward to the release containing this fix!
As a temporary remedy, one can force to install older joblib
in order to avoid this issue:
# after installing hdbscan
pip --force-reinstall install joblib=1.1.0
Thanks for fixing this! Can I also add my voice to request a release as soon as possible, as this is breaking various CI and conda recipes which depend on HDBSCAN and are automatically pulling in the newer joblib
Given this new CVE, affecting joblib versions < 1.2.0, it would be great to get a new release out.
Wasn't sure what CVE was until I saw a pip vulnerability and came back to this thread, so for others, be aware that there is a vulnerability. Thanks for bringing to attention @uros-r