gstlal_inspiral raises AttributeError when running with h5py>=3.0.0
The gstlal_inspiral
script fails to initialise when running with h5py >=3.0.0
due to a change in the way that string attributes are decoded.
In h5py-2.x the 'instruments'
attribute in the H1K1L1V1_p_of_instruments_given_H_d.h5 file (for example) is unpacked as a bytes
object, while in h5py-3.x it comes back as a str
, which means the decode
fails.
I realise this isn't critical for production use, but will eventually become relevant.
Traceback (most recent call last):
File "/home/duncan/opt/miniconda3/conda-bld/gstlal-inspiral_1612365319141/_test_env/bin/gstlal_inspiral", line 175, in <module>
from gstlal import far
File "/home/duncan/opt/miniconda3/conda-bld/gstlal-inspiral_1612363567688/_test_env/lib/python3.6/site-packages/gstlal/far.py", line 82, in <module>
from gstlal.stats import inspiral_lr
File "/home/duncan/opt/miniconda3/conda-bld/gstlal-inspiral_1612363567688/_test_env/lib/python3.6/site-packages/gstlal/stats/inspiral_lr.py", line 54, in <module>
from gstlal.stats import inspiral_extrinsics
File "/home/duncan/opt/miniconda3/conda-bld/gstlal-inspiral_1612363567688/_test_env/lib/python3.6/site-packages/gstlal/stats/inspiral_extrinsics.py", line 1945, in <module>
class InspiralExtrinsics(object):
File "/home/duncan/opt/miniconda3/conda-bld/gstlal-inspiral_1612363567688/_test_env/lib/python3.6/site-packages/gstlal/stats/inspiral_extrinsics.py", line 1985, in InspiralExtrinsics
p_of_ifos[("H1", "K1", "L1", "V1",)] = p_of_instruments_given_horizons.from_hdf5(os.path.join(gstlal_config_paths["pkgdatadir"], "H1K1L1V1_p_of_instruments_given_H_d.h5"))
File "/home/duncan/opt/miniconda3/conda-bld/gstlal-inspiral_1612363567688/_test_env/lib/python3.6/site-packages/gstlal/stats/inspiral_extrinsics.py", line 1911, in from_hdf5
instruments = tuple(sorted(grp.attrs["instruments"].decode("utf-8").split(",")))
AttributeError: 'str' object has no attribute 'decode'