def add_arguments_extended(parser: KGTKArgumentParser, parsed_shared_args: Namespace): """ Parse arguments Args: parser (argparse.ArgumentParser) """ _expert: bool = parsed_shared_args._expert # This helper function makes it easy to suppress options from # The help message. The options are still there, and initialize # what they need to initialize. def h(msg: str)->str: if _expert: return msg else: return SUPPRESS parser.add_argument( "input_kgtk_file", nargs="?", type=Path, default="-", help="The KGTK file to filter. May be omitted or '-' for stdin (default=%(default)s).") parser.add_argument("-o", "--output-file", dest="output_kgtk_file", help="The KGTK file to write (default=%(default)s).", type=Path, default="-") parser.add_argument( "--column", dest="column_name", help="The name of the column to explode. (default=%(default)s).", default=KgtkFormat.NODE2) fgroup: _MutuallyExclusiveGroup = parser.add_mutually_exclusive_group() fgroup.add_argument( "--types", dest="type_names", nargs='*', help="The KGTK data types for which fields should be exploded. (default=%(default)s).", choices=KgtkFormat.DataType.choices(), default=KgtkFormat.DataType.choices()) fgroup.add_argument( "--fields", dest="field_names", nargs='*', help=h("The names of the fields to extract (overrides --types). (default=%(default)s)."), choices=KgtkValueFields.FIELD_NAMES) parser.add_argument( "--prefix", dest="prefix", help="The prefix for exploded column names. (default=%(default)s).", default=KgtkFormat.NODE2 + ";" + KgtkFormat.KGTK_NAMESPACE) parser.add_argument( "--overwrite", dest="overwrite_columns", help="Indicate that it is OK to overwrite existing columns. (default=%(default)s).", type=optional_bool, nargs='?', const=True, default=False) parser.add_argument( "--expand", dest="expand_list", help="Expand the source column if it contains a list, else fail. (default=%(default)s).", type=optional_bool, nargs='?', const=True, default=False) parser.add_argument( "--show-data-types", dest="show_data_types", help="Print the list of data types and exit. (default=%(default)s).", type=optional_bool, nargs='?', const=True, default=False) KgtkReader.add_debug_arguments(parser, expert=_expert) KgtkReaderOptions.add_arguments(parser, mode_options=True, expert=_expert) KgtkValueOptions.add_arguments(parser, expert=_expert)
def add_arguments_extended(parser: KGTKArgumentParser, parsed_shared_args: Namespace): """ Parse arguments Args: parser (argparse.ArgumentParser) """ from kgtk.kgtkformat import KgtkFormat from kgtk.io.kgtkreader import KgtkReader, KgtkReaderOptions from kgtk.io.kgtkwriter import KgtkWriter from kgtk.utils.argparsehelpers import optional_bool from kgtk.value.kgtkvalue import KgtkValueFields from kgtk.value.kgtkvalueoptions import KgtkValueOptions _expert: bool = parsed_shared_args._expert # This helper function makes it easy to suppress options from # The help message. The options are still there, and initialize # what they need to initialize. def h(msg: str) -> str: if _expert: return msg else: return SUPPRESS parser.add_input_file(positional=True) parser.add_output_file() parser.add_argument( "--column", dest="column_name", help="The name of the column to explode. (default=%(default)s).", default=KgtkFormat.NODE2) fgroup: _MutuallyExclusiveGroup = parser.add_mutually_exclusive_group() fgroup.add_argument( "--types", dest="type_names", nargs='*', help= "The KGTK data types for which fields should be exploded. (default=%(default)s).", choices=KgtkFormat.DataType.choices(), default=KgtkFormat.DataType.choices()) fgroup.add_argument( "--fields", dest="field_names", nargs='*', help= h("The names of the fields to extract (overrides --types). (default=%(default)s)." ), choices=KgtkValueFields.FIELD_NAMES) parser.add_argument( "--prefix", dest="prefix", help="The prefix for exploded column names. (default=%(default)s).", default=KgtkFormat.NODE2 + ";" + KgtkFormat.KGTK_NAMESPACE) parser.add_argument( "--overwrite", dest="overwrite_columns", metavar="True|False", help= "Indicate that it is OK to overwrite existing columns. (default=%(default)s).", type=optional_bool, nargs='?', const=True, default=False) parser.add_argument( "--expand", dest="expand_list", metavar="True|False", help= "Expand the source column if it contains a list, else fail. (default=%(default)s).", type=optional_bool, nargs='?', const=True, default=False) parser.add_argument( "--show-data-types", dest="show_data_types", metavar="True|False", help="Print the list of data types and exit. (default=%(default)s).", type=optional_bool, nargs='?', const=True, default=False) parser.add_argument("--output-format", dest="output_format", help="The file format (default=kgtk)", type=str, choices=KgtkWriter.OUTPUT_FORMAT_CHOICES) KgtkReader.add_debug_arguments(parser, expert=_expert) KgtkReaderOptions.add_arguments(parser, mode_options=True, expert=_expert) KgtkValueOptions.add_arguments(parser, expert=_expert)