Source code for mdt.cli_scripts.mdt_info_protocol

#!/usr/bin/env python
# PYTHON_ARGCOMPLETE_OK
"""Print some basic information about a protocol."""
import argparse
import os
import mdt
from argcomplete.completers import FilesCompleter
import textwrap

from mdt.lib.shell_utils import BasicShellApplication

__author__ = 'Robbert Harms'
__date__ = "2015-08-18"
__maintainer__ = "Robbert Harms"
__email__ = "robbert@xkls.nl"


[docs]class InfoProtocol(BasicShellApplication): def _get_arg_parser(self, doc_parser=False): description = textwrap.dedent(__doc__) examples = textwrap.dedent(''' mdt-info-protocol my_protocol.prtcl ''') epilog = self._format_examples(doc_parser, examples) parser = argparse.ArgumentParser(description=description, epilog=epilog, formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('protocol', action=mdt.lib.shell_utils.get_argparse_extension_checker(['.prtcl']), help='the protocol file').completer = FilesCompleter(['prtcl'], directories=False) return parser
[docs] def run(self, args, extra_args): protocol = mdt.load_protocol(os.path.realpath(args.protocol)) self.print_info(protocol)
[docs] def print_info(self, protocol): row_format = "{:<15}{}" shells = protocol.get_b_values_shells() print(row_format.format('nmr_rows', protocol.length)) print(row_format.format('nmr_unweighted', len(protocol.get_unweighted_indices()))) print(row_format.format('nmr_weighted', len(protocol.get_weighted_indices()))) print(row_format.format('nmr_shells', len(shells))) shells_text = [] for shell in shells: shells_text.append('{0:0=.3f}e9 ({1})'.format(shell['b_value'] / 1e9, shell['nmr_items'])) print(row_format.format('shells', ', '.join(shells_text))) print(row_format.format('nmr_columns', protocol.number_of_columns)) print(row_format.format('columns', ', '.join(protocol.column_names)))
[docs]def get_doc_arg_parser(): return InfoProtocol().get_documentation_arg_parser()
if __name__ == '__main__': InfoProtocol().start()