diff --git a/km3io/offline.py b/km3io/offline.py index 44d834e36542d92d21207a6e0a201b864b1da1aa..8902bc929e3c21ad35838d23b8651933e8f2ec7e 100644 --- a/km3io/offline.py +++ b/km3io/offline.py @@ -333,9 +333,10 @@ class OfflineReader: if self._header is None: fobj = uproot.open(self._file_path) if b'Head;1' in fobj.keys(): + self._header = {} for n, x in fobj['Head']._map_3c_string_2c_string_3e_.items(): - print("{:15s} {}".format(n.decode("utf-8"), x)) - self._header = fobj['Head']._map_3c_string_2c_string_3e_ + print("{:15s} {}".format(n.decode("utf-8"), x.decode("utf-8"))) + self._header[n.decode("utf-8")] = x.decode("utf-8") if b'Header;1' in fobj.keys(): warnings.warn("Your file header has an unsupported format") return self._header diff --git a/tests/test_offline.py b/tests/test_offline.py index cdd476e80706bc0e0f8057ed6709beaed020e13b..185008bcbf983b788c10a283cad2d2c60c1123de 100644 --- a/tests/test_offline.py +++ b/tests/test_offline.py @@ -132,6 +132,17 @@ class TestOfflineReader(unittest.TestCase): # check that there are 10 events self.assertEqual(Nevents, self.Nevents) + def test_reading_header(self): + # head is the supported format + head = OfflineReader(OFFLINE_NUMUCC).header + + self.assertEqual(float(head['DAQ']), 394) + self.assertEqual(float(head['kcut']), 2) + + # test the warning for unsupported fheader format + self.assertWarns(UserWarning, self.r.header, + "Your file header has an unsupported format") + class TestOfflineEvents(unittest.TestCase): def setUp(self):