Improvements to DiskReporter
I've made it so that DiskReporter
returns None if there is no data, or in the case that there's no new data available if preferred=True. This helps a lot for the online jobs, where streaming jobs were reading in a calibration map on every iteration. I was seeing anywhere between 0.3s-1.2s for retrieving a calibration map, which was destroying any hopes of idq-timeseries
of keeping up with real-time.
I also noticed some of the HDF5-based reporters returned multiple items instead of a single one when there is data, so I've wrapped any of these returns with a tuple so it can always return a single item instead. I tried searching through the repo if I needed to change this anywhere else, but it didn't appear to be so. Anywho, this would've caused problems anyways since all the batch/stream jobs expect a single item to be returned when Reporter.retrieve() is called. This change was needed in order to handle the missing data case properly throughout, which expects None.
With the final item implemented, should close https://git.ligo.org/reed.essick/iDQ/issues/65. Closes https://git.ligo.org/reed.essick/iDQ/issues/56.