def db_get(self, table_name): """ Get a table from the database Return a dict[run_id][ele] = Value TableName is eather e_tab _ae_tab """ l = { cond_sql_or(k, v) for k, v in (["ele_name", self.l_element_whe_want], ["run_id", self.l_run_id]) } sql_cmd_where = " AND ".join(l) cursor = c_row.execute("""SELECT * FROM {0} WHERE {1} """.format(table_name, sql_cmd_where)) from src.object import Energie d = defaultdict(dict) for r in cursor: e = r["energy"] err = r["err"] if r["err"] else 0 d[r["run_id"]][r["ele_name"]] = Energie(e, err) return d
def db_list_element(self, run_id): """ Get the element listed in a run_id """ sql_cmd_where = cond_sql_or("run_id", [run_id]) cursor = c_row.execute("""SELECT ele_name FROM run_tab_ele WHERE {0} """.format(sql_cmd_where)) l_ele = {i[0] for i in cursor} str_ = "No element in run_id: {0}" assert (l_ele), str_.format(run_id) return l_ele
def l_element(self): """ Get the element from the databse """ l = { cond_sql_or(k, v) for k, v in (["ele_name", self.l_element_whe_want], ["run_id", self.l_run_id]) } sql_cmd_where = " AND ".join(l) cursor = c_row.execute("""SELECT DISTINCT ele_name FROM run_tab_ele WHERE {0} """.format(sql_cmd_where)) return {i[0] for i in cursor.fetchall()}
def d_run_info(self): "Return a dict in adecation with d_arguments" d_arg2db = self.d_arg_to_db d_arg2value = self.d_arguments l = d_arg2db.viewkeys() & d_arg2value.viewkeys() if l: l_cond_filter = [ cond_sql_or(table_name=d_arg2db[k], l_value=d_arg2value[k]) for k in l ] else: l_cond_filter = ["(1)"] sql_cmd_where = " AND ".join(l_cond_filter) # -#-#- # # S Q L # # -#-#- # cursor = c_row.execute("""SELECT run_id, method, basis, geo, comments FROM run_tab_expended WHERE {0} """.format(sql_cmd_where)) RunInfo = namedtuple('RunInfo', 'run_id, method, basis, geo, comments') d_run_info = dict() for emp in map(RunInfo._make, cursor.fetchall()): d_run_info[emp.run_id] = emp assert d_run_info, "No run_id with: {0}".format(sql_cmd_where) return d_run_info
def d_run_info(self): "Return a dict in adecation with d_arguments" d_arg2db = self.d_arg_to_db d_arg2value = self.d_arguments l = d_arg2db.viewkeys() & d_arg2value.viewkeys() if l: l_cond_filter = [cond_sql_or(table_name=d_arg2db[k], l_value=d_arg2value[k]) for k in l] else: l_cond_filter = ["(1)"] sql_cmd_where = " AND ".join(l_cond_filter) # -#-#- # # S Q L # # -#-#- # cursor = c_row.execute("""SELECT run_id, method, basis, geo, comments FROM run_tab_expended WHERE {0} """.format(sql_cmd_where)) RunInfo = namedtuple('RunInfo', 'run_id, method, basis, geo, comments') d_run_info = dict() for emp in map(RunInfo._make, cursor.fetchall()): d_run_info[emp.run_id] = emp assert d_run_info, "No run_id with: {0}".format(sql_cmd_where) return d_run_info
line = " ".join([atom, line_xyz]) g09_file_format.append(line) g09_file_format.append("\n\n\n") return "\n".join(map(str, g09_file_format)) if __name__ == '__main__': arguments = docopt(__doc__, version='G2 Api ' + version) if arguments["list_geometries"]: if arguments["--ele"]: cond = cond_sql_or("ele_tab.name", arguments["--ele"]) where = "AND".join(cond) else: where = '(1)' r = list_geo(where_cond=where) assert r, "No geometries for {0} elements".format(arguments["--ele"]) print ", ".join(r) elif arguments["list_elements"]: if arguments['--geo']: cond = cond_sql_or("geo_tab.name", arguments["--geo"]) where = "AND".join(str_)
line_xyz = " ".join(map(str, xyz)).replace("e", ".e") line = " ".join([atom, line_xyz]) g09_file_format.append(line) g09_file_format.append("\n\n\n") return "\n".join(map(str, g09_file_format)) if __name__ == '__main__': arguments = docopt(__doc__, version='G2 Api ' + version) if arguments["list_geometries"]: if arguments["--ele"]: cond = cond_sql_or("ele_tab.name", arguments["--ele"]) where = "AND".join(cond) else: where = '(1)' r = list_geo(where_cond=where) assert r, "No geometries for {0} elements".format(arguments["--ele"]) print ", ".join(r) elif arguments["list_elements"]: if arguments['--geo']: cond = cond_sql_or("geo_tab.name", arguments["--geo"]) where = "AND".join(str_)