@@ -32,14 +32,20 @@ def __init__ (self, config):
3232 self .ConnPool = ConnectionPool (postgres = self .Connection , max_idle_connections = 1 )
3333 self .FolderName = self .Config ["folder" ]
3434 self .MetaPrefix = self .Config .get ("meta_prefix" , "runs_history" )
35-
35+ self .FolderName1 = self .Config .get ("folder1" )
36+ self .MetaPrefix1 = self .Config .get ("meta_prefix1" , f"{ self .MetaPrefix } _vd" )
3637 #
3738 # get column names
3839 #
3940
4041 db = ConDB (self .ConnPool )
4142 folder = db .openFolder (self .FolderName )
4243 self .ColumnTypes = folder .data_column_types () if folder is not None else None
44+
45+ self .ColumnTypes1 = None
46+ if self .FolderName1 :
47+ folder1 = db .openFolder (self .FolderName1 )
48+ self .ColumnTypes1 = folder1 .data_column_types () if folder1 is not None else None
4349
4450 def hide (self , conn , * fields ):
4551 for f in fields :
@@ -59,8 +65,14 @@ def filter(self, inputs, **ignore):
5965 # Conect to db via condb python API
6066 db = ConDB (self .ConnPool )
6167 folder = db .openFolder (self .FolderName )
68+
69+ #Open folder1 if configured
70+ folder1 = None
71+ if self .FolderName1 :
72+ folder1 = db .openFolder (self .FolderName1 )
6273
6374 data_by_run = {} # cache data by run number across chunks
75+ data_by_run1 = {} # cache for folder 1 if needed
6476
6577 # Get files from metacat input
6678 file_set = inputs [0 ]
@@ -81,16 +93,34 @@ def filter(self, inputs, **ignore):
8193 runnum , data = row [1 ], row [4 :]
8294 if runnum not in data_by_run :
8395 data_by_run [runnum ] = data
96+
97+ #folder1 (optional)
98+ if folder1 :
99+ data_runhist1 = folder1 .getData (min (need_run_nums ), t1 = max (need_run_nums ))
100+ for row in data_runhist1 :
101+ runnum , data = row [1 ], row [4 :]
102+ if runnum not in data_by_run1 :
103+ data_by_run1 [runnum ] = data
84104
85105 # Insert run hist data to Metacat
86106 for f in chunk :
87107 runnum = self .file_run_number (f .Metadata )
108+ if runnum is None :
109+ continue
110+ #insert metadata from folder
88111 if runnum is not None and runnum in data_by_run and data_by_run [runnum ] is not None :
89112 for (col , typ ), value in zip (self .ColumnTypes , data_by_run [runnum ]):
90113 if typ .startswith ("timestamp" ) and value is not None :
91114 value = value .timestamp ()
92115 f .Metadata [f"{ self .MetaPrefix } .{ col } " ] = value
93116
117+ #insert metadata from folder1
118+ if self .ColumnTypes1 and runnum in data_by_run1 and data_by_run1 [runnum ] is not None :
119+ for (col , typ ), value in zip (self .ColumnTypes1 , data_by_run1 [runnum ]):
120+ if typ .startswith ("timestamp" ) and value is not None :
121+ value = value .timestamp ()
122+ f .Metadata [f"{ self .MetaPrefix1 } .{ col } " ] = value
123+
94124 yield from chunk
95125
96126
0 commit comments