From 42c4d463d8928f2bb7f3c167be95fb860d0c652b Mon Sep 17 00:00:00 2001 From: Thomas Kluyver <thomas@kluyver.me.uk> Date: Mon, 4 Dec 2023 10:33:59 +0100 Subject: [PATCH] Always create creationTime & updateTime, default to Unix epoch --- src/cal_tools/files.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/cal_tools/files.py b/src/cal_tools/files.py index edb73070c..91766f066 100644 --- a/src/cal_tools/files.py +++ b/src/cal_tools/files.py @@ -1,5 +1,5 @@ -from datetime import datetime +from datetime import datetime, timezone from itertools import chain from numbers import Integral from pathlib import Path @@ -310,14 +310,20 @@ class DataFile(h5py.File): if sequence is None: sequence = self.__sequence + if creation_date is None: + creation_date = datetime.fromtimestamp(0, tz=timezone.utc) + elif creation_date is True: + creation_date = datetime.now(timezone.utc) + if update_date is None: update_date = creation_date + elif update_date is True: + update_date = datetime.now(timezone.utc) md_group = self.require_group('METADATA') - if creation_date is not None: - md_group.create_dataset( - 'creationDate', shape=(1,), - data=creation_date.strftime('%Y%m%dT%H%M%SZ').encode('ascii')) + md_group.create_dataset( + 'creationDate', shape=(1,), + data=creation_date.strftime('%Y%m%dT%H%M%SZ').encode('ascii')) md_group.create_dataset('daqLibrary', shape=(1,), data=daq_library.encode('ascii')) md_group.create_dataset('dataFormatVersion', shape=(1,), data=b'1.2') @@ -358,10 +364,9 @@ class DataFile(h5py.File): 'runNumber', shape=(1,), dtype=np.uint32, data=run) md_group.create_dataset( 'sequenceNumber', shape=(1,), dtype=np.uint32, data=sequence) - if update_date is not None: - md_group.create_dataset( - 'updateDate', shape=(1,), - data=update_date.strftime('%Y%m%dT%H%M%SZ').encode('ascii')) + md_group.create_dataset( + 'updateDate', shape=(1,), + data=update_date.strftime('%Y%m%dT%H%M%SZ').encode('ascii')) class ControlSource(h5py.Group): -- GitLab