"""
Module that provides options parsing functionality.
Copyright Schrodinger LLC, All Rights Reserved.
"""
import argparse
[docs]def create_argparse_namespace(argv, valid_pos_args, valid_flags, valid_keys):
"""
Creates an argparse.Namespace object from command line arguments and known
positional arguments and options.
:param argv: Command line arguments, including program name
:type: list of str
:param valid_pos_args: All recognized positional arguments
:type: list of str
:param valid_flags: All recognized flags
:type: list of str
:param valid_keys: All recognized keys for key,value pairs
:type: list of str
:return: An argument namespace derived from inputs
:rtype: argparse.Namespace
"""
argparse_parser = argparse.ArgumentParser(prog=argv[0])
for pos_arg in valid_pos_args:
argparse_parser.add_argument(pos_arg)
for flag in valid_flags:
argparse_parser.add_argument(flag, action="store_true")
for key in valid_keys:
argparse_parser.add_argument(key)
argparse_namespace, _ = argparse_parser.parse_known_args(argv[1:])
return argparse_namespace
[docs]def parse_shape_screen_options(argv):
"""
Creates shape screen argument namespace from command line options.
:param argv: Command line arguments, including program name
:type argv: list of str
:return: Argument namespace
:rtype: argparse.Namespace
"""
valid_pos_args = []
valid_flags = [
"-advance", "-append", "-atoms", "-best", "-classic", "-connect",
"-distinct", "-dual", "-flex", "-flexAppend", "-hydrogens", "-inplace",
"-LOCAL", "-NICE", "-NOCHECKPOINT", "-NOJOBID", "-nosort", "-nv",
"-only", "-osd", "-pharm", "-proj", "-scoreInPlace", "-sort", "-split",
"-stereo", "-table", "-v", "-verbose", "-WAIT", "-IFDX_MODE"
]
valid_keys = [
"-align", "-alt", "-atomtypes", "-atomTypes", "-atomweights",
"-atomWeights", "-CHECKPOINT", "-ewin", "-fd", "-filter",
"-flexAmideOption", "-flexConfsPerBond", "-flexMaxConfs",
"-flexMaxRelEnergy", "-flexSearchMethod", "-force", "-HOST",
"-INTERVAL", "-isub", "-JOB", "-keep", "-limit", "-map", "-max",
"-norm", "-NSUB", "-osub", "-rad", "-redun", "-report", "-RESTART",
"-sample", "-screen", "-shape", "-title", "-TMDIR", "-xvol"
]
return create_argparse_namespace(argv, valid_pos_args, valid_flags,
valid_keys)