From d89aebd861d630baf7ebdcd37b3e8e28d785d062 Mon Sep 17 00:00:00 2001
From: Juan Felipe Florez Ospina <juan.florez-ospina@psi.ch>
Date: Tue, 4 Feb 2025 17:13:01 +0100
Subject: [PATCH] Implement method in hdf5 manager to infer datetime column in
 dataset

---
 src/hdf5_ops.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/hdf5_ops.py b/src/hdf5_ops.py
index 5ee2730..5928681 100644
--- a/src/hdf5_ops.py
+++ b/src/hdf5_ops.py
@@ -96,6 +96,28 @@ class HDF5DataOpsManager():
             print(f"An unexpected error occurred: {e}. File object will be unloaded.")    
 
 
+    def infer_datetime_variable(self,dataset_name):
+
+        if self.file_obj is None:
+           raise RuntimeError("File object is not loaded. Please load the HDF5 file using the 'load_file_obj' method before attempting to extract datasets.")
+
+        metadata_dict = self.get_metadata(dataset_name)
+
+        datetime_var = None
+        datetime_format = None
+        for key in metadata_dict.keys(): # by construction key correspond to column/variable names
+            if not utils.is_structured_array(metadata_dict[key]):
+                continue
+            if 'data_type' in metadata_dict[key].dtype.names:
+                if metadata_dict[key][0]['data_type'].decode() == 'datetime':
+                    datetime_var = key
+                    datetime_format = metadata_dict[key]['datetime_format'][0].decode() 
+                    return datetime_var, datetime_format
+
+
+        
+        return None
+
 
     
     def extract_dataset_as_dataframe(self,dataset_name):
-- 
GitLab