Source code for mdt.cli_scripts.mdt_view_maps
#!/usr/bin/env python
# PYTHON_ARGCOMPLETE_OK
"""Launches the MDT maps visualizer."""
import argparse
import os
import textwrap
from argcomplete.completers import FilesCompleter
from mdt import view_maps
from mdt.visualization.maps.base import SimpleDataInfo
from mdt.lib.shell_utils import BasicShellApplication
__author__ = 'Robbert Harms'
__date__ = "2015-08-18"
__maintainer__ = "Robbert Harms"
__email__ = "robbert@xkls.nl"
[docs]class GUI(BasicShellApplication):
def _get_arg_parser(self, doc_parser=False):
description = textwrap.dedent(__doc__)
parser = argparse.ArgumentParser(description=description, formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument('items', metavar='items', type=str, nargs='*', help='the directory or file(s)',
default=None).completer = FilesCompleter()
parser.add_argument('-c', '--config', type=str,
help='Use the given initial configuration').completer = \
FilesCompleter(['conf'], directories=False)
parser.add_argument('-m', '--maximize', action='store_true', help="Maximize the shown window")
parser.add_argument('--to-file', type=str, help="If set, export the figure to the given filename")
parser.add_argument('--width', type=int, help="The width of the output file when --to-file is set")
parser.add_argument('--height', type=int, help="The height of the output file when --to-file is set")
parser.add_argument('--dpi', type=int, help="The dpi of the output file when --to-file is set")
return parser
[docs] def run(self, args, extra_args):
if args.items:
items = []
for path in args.items:
items.append(os.path.realpath(path))
data = SimpleDataInfo.from_paths(items)
else:
data = SimpleDataInfo.from_paths([os.getcwd()])
to_file = None
if args.to_file:
to_file = os.path.realpath(args.to_file)
config = None
if args.config:
filename = os.path.realpath(args.config)
if os.path.exists(filename):
with open(filename, 'r') as f:
config = f.read()
figure_options = {}
if to_file:
if args.width:
figure_options.update({'width': args.width})
if args.height:
figure_options.update({'height': args.height})
if args.dpi:
figure_options.update({'dpi': args.dpi})
view_maps(data, config, figure_options=figure_options, save_filename=to_file)
else:
view_maps(data, config, show_maximized=args.maximize)
[docs]def get_doc_arg_parser():
return GUI().get_documentation_arg_parser()
if __name__ == '__main__':
GUI().start()