diff options
author | tlatorre <tlatorre@uchicago.edu> | 2020-05-18 10:04:27 -0500 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2020-05-19 11:31:29 -0500 |
commit | afe075dc515924cf4332bc9ce32a8ca734477347 (patch) | |
tree | 6dbb7938e6a41c99f3c9234f0b0cc9a89ce82bf7 | |
parent | 9c6712f7335148f1090749e26020f7b468cf303b (diff) | |
download | sddm-afe075dc515924cf4332bc9ce32a8ca734477347.tar.gz sddm-afe075dc515924cf4332bc9ce32a8ca734477347.tar.bz2 sddm-afe075dc515924cf4332bc9ce32a8ca734477347.zip |
add a new script to delete zdab files on the grid which were successfully fit
-rw-r--r-- | utils/Makefile | 1 | ||||
-rwxr-xr-x | utils/delete-zdabs | 57 |
2 files changed, 58 insertions, 0 deletions
diff --git a/utils/Makefile b/utils/Makefile index c8690d6..daec959 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -17,6 +17,7 @@ install: $(INSTALL) cat-grid-jobs $(INSTALL_BIN) $(INSTALL) plot-energy $(INSTALL_BIN) $(INSTALL) zdab-reprocess $(INSTALL_BIN) + $(INSTALL) delete-zdabs $(INSTALL_BIN) ./setup.py install --prefix=$(PREFIX) .PHONY: install diff --git a/utils/delete-zdabs b/utils/delete-zdabs new file mode 100755 index 0000000..5c1bc2d --- /dev/null +++ b/utils/delete-zdabs @@ -0,0 +1,57 @@ +#!/usr/bin/env python +""" +Script to delete zdab files which have all been successfully fit. +""" +from sddm.logger import Logger + +log = Logger() + +if __name__ == '__main__': + import argparse + import sqlite3 + import os + from os.path import join, split, exists + import numpy as np + + parser = argparse.ArgumentParser("concatenate fit results from grid jobs into a single file") + parser.add_argument("--db", type=str, help="database file", default=None) + parser.add_argument('--loglevel', + help="logging level (debug, verbose, notice, warning)", + default='notice') + parser.add_argument('--logfile', default=None, + help="filename for log file") + args = parser.parse_args() + + log.set_verbosity(args.loglevel) + + if args.logfile: + log.set_logfile(args.logfile) + + home = os.path.expanduser("~") + + if args.db is None: + args.db = join(home,'state.db') + + conn = sqlite3.connect(args.db) + + c = conn.cursor() + + results = c.execute('SELECT filename, state FROM state').fetchall() + + unique_filenames = set(row[0] for row in results) + + for filename in unique_filenames: + if not exists(filename): + continue + + head, tail = split(filename) + + success = [row[1] == 'SUCCESS' for row in results if row[0] == filename] + + if all(success): + log.notice("deleting %s because all %i jobs were successfull" % (tail, len(success))) + os.remove(filename) + else: + log.debug("skipping %s because %i jobs failed" % (tail, len(success) - np.count_nonzero(success))) + + conn.close() |