Update h5py to 3.3
Description
There are various minor fixes and improvements in h5py since 2.10. Probably none of them make a massive difference to us straight away, though we could look at reading/writing data while computation is going on now that it releases the GIL. But I've spent a fair bit of time working on h5py, and I'd like to see us using a recent version.
How Has This Been Tested?
Run AGIPD correction through xfel-calibrate
(output in /gpfs/exfel/data/scratch/kluyvert/agipd-calib-900201-203-h5py-3.3
).
I haven't tested all notebooks. But the biggest API change from 2.x is that h5py.File('abc.h5')
opens files read-only by default. I've searched through the project for uses of File()
without an explicit mode: there are only 2 (in src/cal_tools/dssclib.py
and notebooks/LPD/playground/metroLib.py
) and in both cases the file is only used for reading.
Reviewers
Merge request reports
Activity
I did some more searching, and found one bit of code using the (removed)
Dataset.value
property. I've replaced this with the newer equivalent. But the notebook which uses this (PlotFromCalDB_NBC.ipynb
) seems to be broken anyway - I think it wasn't updated for the karabo_id/karabo_da change. So I can't easily test it.I think this is reasonably safe. The changes in h5py 3.0 weren't massive. The biggest changes I can't easily search for are to how strings are handled, but we don't do much with HDF5 strings. I believe that all the strings in raw data files are marked as ASCII, not UTF-8, and reading ASCII strings still behaves the same.
changed milestone to %3.4.1
mentioned in commit c29ba0ef