ATLAS Offline Software
Loading...
Searching...
No Matches
GetNextRunList.py
Go to the documentation of this file.
1#! /usr/bin/env python3
2
3import os.path, os
4SCRIPTDIR = os.path.dirname(os.path.realpath(__file__))
5DATADIR = os.environ.get('DCSC_DATADIR', SCRIPTDIR)
6
7from time import strftime
8
9from xmlrpc.client import ServerProxy
10
11def get_runs_since(run_number: int) -> list[int]:
12 """
13 Get runs that occured since `run_number`, excluding it.
14 """
15 s = ServerProxy('http://atlasdqm.cern.ch:8080')
16 run_list: list[int] = s.get_completed_runs({'low_run': run_number}) # type: ignore
17 if run_number in run_list:
18 run_list.remove(run_number)
19 return run_list
20
21def main():
22 """
23 Read the lastRunNumber file, find runs which happened since it.
24 Then create a runList file containing these runs, and overwrite lastRunNumber.
25 """
26 try:
27 last_run = int(open(os.path.join(DATADIR, "lastRunNumber"), 'r+').read())
28 except Exception:
29 last_run = 450000
30 new_runs = get_runs_since(last_run)
31
32 open(os.path.join(DATADIR, "runList"), "w").write("\n".join(map(str, new_runs)))
33
34 if not new_runs:
35 print(strftime("%d/%m/%Y %H:%M:%S"), "Nothing to do")
36 return
37
38 last_run = new_runs[-1]
39 open(os.path.join(DATADIR, "lastRunNumber"), "w").write(str(last_run)+"\n")
40 print(strftime("%d/%m/%Y %H:%M:%S"), "Wrote new runList. Last run is", last_run, new_runs)
41
42if __name__ == "__main__":
43 main()
void print(char *figname, TCanvas *c1)
STL class.
list[int] get_runs_since(int run_number)
IovVectorMap_t read(const Folder &theFolder, const SelectionCriterion &choice, const unsigned int limit=10)