Closed ariostas closed 2 months ago
Is the xxhash algorithm available in cramjam, which is one of Uproot's strict requirements?
Darn, it's not: https://github.com/milesgranger/cramjam/issues/147
But since xxhash is in Pyodide now (https://github.com/ifduyue/python-xxhash/issues/65), we can make xxhash a strict requirement for Uproot without causing installation issues for any use-cases that I can think of.
When that goes in (when xxhash becomes a strict requirement for Uproot), we'll need a new minor version number, 5.4.0.
(I'd rather not switch between libraries like xxhash and ppxxh implicitly because if there's a bug in one of them, it would be hard to reproduce. Two people could install Uproot the same way and get different libraries, one with the bug and one without. Understanding why that's happening—if we don't remember that uproot.extras.xxhash
performs that switch—would be hard.)
Oh interesting, I didn't realize that xxhash
was now on Pyodide. That's pretty convenient.
xxhash
is currently a strict dependency for reading RNTuples even though it's not listed onpyproject.toml
. The dependent code is here:https://github.com/scikit-hep/uproot5/blob/ba3269b31cd791589bbd3f6d4634dbe606b9f997/src/uproot/compression.py#L433-L439
which could simply be removed to remove the dependency.
For writing, there will be a strict dependency and there is no way to get around it, but maybe we can make
uproot.extras.xxhash
pick betweenxxhash
andppxxh
(which is pure Python, so it works in WASM).