Page MenuHomec4science

updateRuns.py
No OneTemporary

File Metadata

Created
Tue, Apr 30, 21:04

updateRuns.py

#!/usr/bin/env python3
import BlackDynamite as BD
import os
import sys
import socket
parser = BD.BDParser()
parser.register_params(
group="updateRuns",
params={"run_id": int,
"updates": [str]},
defaults={"machine_name": socket.gethostname()},
help={"run_id": "The id of the run to update",
"updates": "The updates to perform. Syntax should be 'key = newval'"}
)
params = parser.parseBDParameters()
if "user" not in params.keys():
params["user"] = os.getlogin()
base = BD.Base(**params)
if "run_id" in params:
if "constraints" not in params:
params["constraints"] = []
params["constraints"].append("runs.id = " + str(params["run_id"]))
runSelector = BD.RunSelector(base)
run_list = runSelector.selectRuns(params)
if len(run_list) == 0:
print("No runs to be updated")
if "updates" not in params:
print("No update to be performed: use --updates option")
sys.exit(-1)
for r, j in run_list:
r.setFields(params["updates"])
if params["truerun"] is True:
r.update()
base.commit()

Event Timeline