#!/usr/bin/env python3 """ DAMARISi3 command-line interface. """ import sys import os import argparse import sqlite3 # for numpy-1.1 and later: check the environment for LANG and LC_NUMERIC # see: http://projects.scipy.org/scipy/numpy/ticket/902 if os.environ.get("LANG", "").startswith("de") or os.environ.get("LC_NUMERIC", "").startswith("de"): os.environ["LC_NUMERIC"] = "C" def main(): """Main entry point for DAMARIS.""" parser = argparse.ArgumentParser(description='DArmstadt MAgnetic Resonance Instrumentation Software') parser.add_argument("--run", action="store_true", help="run DAMARIS immediately with given scripts") parser.add_argument("--clean", action="store_true", help="cleanup DAMARIS run files") parser.add_argument("--debug", action="store_true", help="run DAMARIS with DEBUG flag set") parser.add_argument("--mpl", help="run DAMARIS with matplotlib backend", choices=["GTK3Agg", "GTK3Cairo"], default="GTK3Agg") parser.add_argument("exp_script", help="experiment script", nargs="?", metavar="EXP.py") parser.add_argument("res_script", help="result script", nargs="?", metavar="RES.py") args = parser.parse_args() import matplotlib if args.mpl: matplotlib.use(args.mpl) import damaris.gui.DamarisGUI lockfile = os.path.expanduser('~/.damaris.lockdb') if args.clean: if os.path.exists(lockfile): print("Removing lockfile: %s" % lockfile) os.remove(lockfile) else: print("Lockfile does not exists: %s" % lockfile) lockdb = sqlite3.connect(lockfile) c = lockdb.cursor() c.execute("CREATE TABLE IF NOT EXISTS damaris (uuid text, status text)") lockdb.commit() if args.debug: damaris.gui.DamarisGUI.debug = True print("debug flag set") try: import resource resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) except ImportError: pass print(args) d = damaris.gui.DamarisGUI.DamarisGUI(args.exp_script, args.res_script, start_immediately=args.run) d.run() sys.stdout = sys.__stdout__ sys.stderr = sys.__stderr__ if __name__ == "__main__": main()