better openQCD input
This commit is contained in:
parent
77ee4993f0
commit
2312b5972d
2 changed files with 60 additions and 39 deletions
|
@ -2,7 +2,8 @@ from pyerrors.input import json as pj
|
|||
import os
|
||||
import datalad.api as dl
|
||||
import sqlite3
|
||||
from .input.sfcf import get_specs, read_param
|
||||
from .input import sfcf,openQCD
|
||||
import json
|
||||
|
||||
|
||||
def write_measurement(path, ensemble, measurement, uuid, code, parameter_file):
|
||||
|
@ -21,7 +22,11 @@ def write_measurement(path, ensemble, measurement, uuid, code, parameter_file):
|
|||
uuid: str
|
||||
The uuid of the project.
|
||||
"""
|
||||
parameters = read_param(path, uuid, parameter_file)
|
||||
if code == "sfcf":
|
||||
parameters = sfcf.read_param(path, uuid, parameter_file)
|
||||
elif code == "openQCD":
|
||||
parameters = openQCD.read_param(path, uuid, parameter_file)
|
||||
|
||||
dl.unlock(path + '/backlogger.db', dataset=path)
|
||||
conn = sqlite3.connect(path + '/backlogger.db')
|
||||
c = conn.cursor()
|
||||
|
@ -36,19 +41,24 @@ def write_measurement(path, ensemble, measurement, uuid, code, parameter_file):
|
|||
if os.path.exists(file):
|
||||
dl.unlock(file, dataset=path)
|
||||
known_meas = pj.load_json_dict(file)
|
||||
if code == "sfcf":
|
||||
for subkey in measurement[corr].keys():
|
||||
meas_path = file + "::" + subkey
|
||||
if known_meas is not None:
|
||||
known_meas[subkey] = measurement[corr][subkey]
|
||||
# this should be only set if something changed.
|
||||
else:
|
||||
known_meas = measurement[corr]
|
||||
|
||||
for subkey in measurement[corr].keys():
|
||||
meas_path = file + "::" + subkey
|
||||
if known_meas is not None:
|
||||
known_meas[subkey] = measurement[corr][subkey]
|
||||
# this should be only set if something changed.
|
||||
else:
|
||||
known_meas = measurement[corr]
|
||||
|
||||
if c.execute("SELECT * FROM backlogs WHERE path = ?", (meas_path,)).fetchone() is not None:
|
||||
c.execute("UPDATE backlogs SET updated_at = datetime('now') WHERE path = ?", (meas_path, ))
|
||||
else:
|
||||
c.execute("INSERT INTO backlogs (name, ensemble, code, path, project, parameters, parameter_file, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'))", (corr, ensemble, code, meas_path, uuid, get_specs(corr + "/" + subkey, parameters), parameter_file))
|
||||
if c.execute("SELECT * FROM backlogs WHERE path = ?", (meas_path,)).fetchone() is not None:
|
||||
c.execute("UPDATE backlogs SET updated_at = datetime('now') WHERE path = ?", (meas_path, ))
|
||||
else:
|
||||
c.execute("INSERT INTO backlogs (name, ensemble, code, path, project, parameters, parameter_file, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'))", (corr, ensemble, code, meas_path, uuid, sfcf.get_specs(corr + "/" + subkey, parameters), parameter_file))
|
||||
elif code == "openQCD":
|
||||
for i in range(len(parameters["rw_fcts"])):
|
||||
subkey = "/".join(parameters["rw_fcts"][i])
|
||||
meas_path = file + "::" + subkey
|
||||
c.execute("INSERT INTO backlogs (name, ensemble, code, path, project, parameters, parameter_file, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'))", ("ms1", ensemble, code, meas_path, uuid, json.dumps(parameters["rw_fcts"][i]), parameter_file))
|
||||
conn.commit()
|
||||
pj.dump_dict_to_json(measurement[corr], file)
|
||||
files.append(path + '/backlogger.db')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue