Source code for layup_cmdline.unpack

#
# The `layup unpack` subcommand implementation
#
import argparse
from layup_cmdline.layupargumentparser import LayupArgumentParser
import logging
import sys

[docs] logger = logging.getLogger(__name__)
[docs] def main(): parser = LayupArgumentParser( prog="layup unpack", formatter_class=argparse.ArgumentDefaultsHelpFormatter, description="This would unpack covariance matrix into the orbital uncertainties", ) positionals = parser.add_argument_group("Positional arguments") positionals.add_argument( help="input orbit file", dest="input", type=str, ) optional = parser.add_argument_group("Optional arguments") optional.add_argument( "-f", "--force", action="store_true", help="Overwrite output file", ) optional.add_argument( "-i", "--input-type", help="input format type of file", dest="i", type=str.lower, default="csv", required=False, ) optional.add_argument( "-o", "--output", help="output file stem. default path is current working directory", dest="o", type=str, default="unpacked_output", required=False, ) optional.add_argument( "-ch", "--chunksize", help="number of orbits to be processed at once", dest="chunk", type=int, default=200000, required=False, ) optional.add_argument( "-pid", "--primary-id-column-name", help="Column name in input file that contains the primary ID of the object.", dest="primary_id_column_name", type=str, default="provID", required=False, ) args = parser.parse_args() return execute(args)
[docs] def execute(args): from layup.utilities.cli_utilities import warn_or_remove_file from layup.utilities.file_access_utils import find_file_or_exit, find_directory_or_exit from layup.utilities.layup_logging import LayupLogger layup_logger = LayupLogger() logger = layup_logger.get_logger("layup.unpack_cmdline") # check input exists find_file_or_exit(args.input, "input") # Check that output directory exists find_directory_or_exit(args.o, "-o, --") # check format of input file if args.i.lower() == "csv": output_file = args.o + ".csv" elif args.i.lower() == "hdf5": output_file = args.o + ".h5" else: logger.error("File format must be 'csv' or 'hdf5'") sys.exit("ERROR: File format must be 'csv' or 'hdf5'") # check for overwriting output file warn_or_remove_file(str(output_file), args.force, logger) from layup.unpack import unpack_cli unpack_cli( input=args.input, file_format=args.i, output_file_stem=args.o, chunk_size=args.chunk, cli_args=args, )
if __name__ == "__main__": main()