Skip to content

Commit a076620

Browse files
Merge pull request #97 from AnaVizcaya/main
Option to add new table in old run conditions filter
2 parents 7f8bf1c + d72321e commit a076620

1 file changed

Lines changed: 31 additions & 1 deletion

File tree

DUNE_specials/custom_filters/runsdb_incondb.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)