diff --git a/sf_daq_broker/writer/bsread_writer.py b/sf_daq_broker/writer/bsread_writer.py index c2ef7c6..6c4b291 100644 --- a/sf_daq_broker/writer/bsread_writer.py +++ b/sf_daq_broker/writer/bsread_writer.py @@ -46,9 +46,8 @@ def write_from_databuffer(data_api_request, output_file, metadata): start_time = time() - writer = BsreadH5Writer(output_file, metadata) - writer.write_data(data) - writer.close() + with BsreadH5Writer(output_file, metadata) as writer: + writer.write_data(data) _logger.info("Data writing took %s seconds." % (time() - start_time)) @@ -106,6 +105,12 @@ class BsreadH5Writer(object): self._create_metadata_datasets(metadata) + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.close() + def _create_metadata_datasets(self, metadata): _logger.debug("Initializing metadata datasets.")