Source code for mantidimaging.main
#!/usr/bin/env python
# Copyright (C) 2023 ISIS Rutherford Appleton Laboratory UKRI
# SPDX - License - Identifier: GPL-3.0-or-later
from __future__ import annotations
import argparse
import logging
import sys
import warnings
import mantidimaging.core.parallel.manager as pm
from mantidimaging import helper as h
from mantidimaging.core.utility.command_line_arguments import CommandLineArguments
formatwarning_orig = warnings.formatwarning
warnings.formatwarning = lambda message, category, filename, lineno, line=None: formatwarning_orig(
message, category, filename, lineno, line="")
[docs]
def parse_args():
parser = argparse.ArgumentParser(description="Mantid Imaging GUI")
parser.add_argument(
"--log-level",
type=str,
default="INFO",
help="Log verbosity level. "
"Available options are: TRACE, DEBUG, INFO, WARN, CRITICAL",
)
parser.add_argument("--version", action="store_true", help="Print version number and exit.")
parser.add_argument("--path", type=str, help="Comma separated Paths with no spaces for the data you wish to load.")
parser.add_argument("--operation", type=str, help="The initial operation to run on the dataset.")
parser.add_argument("--recon",
default=False,
action='store_true',
help="Opens the reconstruction window at start up.")
return parser.parse_args()
[docs]
def main():
args = parse_args()
# Print version number and exit
if args.version:
from mantidimaging import __version__ as version_no
print(version_no)
return
path = args.path if args.path else ""
operation = args.operation if args.operation else ""
CommandLineArguments(path=path, operation=operation, show_recon=args.recon)
h.initialise_logging(logging.getLevelName(args.log_level))
from mantidimaging import gui
try:
pm.create_and_start_pool()
gui.execute()
except BaseException as e:
if sys.platform == 'linux':
pm.clear_memory_from_current_process_linux()
raise e
finally:
pm.end_pool()
if __name__ == "__main__":
main()