"""General options to be added to CLI scripts.""" from argparse import ArgumentParser def add_logging(parser: ArgumentParser) -> ArgumentParser: """Add optional log-level option""" loglevels = ("debug", "info", "warning", "error", "critical") parser.add_argument( "--log_level", "--log-level", "--loglevel", metavar="LOG-LEVEL", type=str, default="INFO", choices=loglevels, help=(f"Controls the severity of events to log. Valid values are: " + ", ".join(f"'{level}'" for level in loglevels))) return parser def add_mariadb_uri(parser: ArgumentParser) -> ArgumentParser: """Add the MySQL/MariaDB URI argument.""" parser.add_argument("db_uri", metavar="DB-URI", type=str, help="MariaDB/MySQL connection URL") return parser def add_species_id(parser: ArgumentParser) -> ArgumentParser: """Add species-id as a mandatory argument.""" parser.add_argument("species_id", metavar="SPECIES-ID", type=int, help="The species to operate on.") return parser def add_population_id(parser: ArgumentParser) -> ArgumentParser: """Add population-id as a mandatory argument.""" parser = add_species_id(parser) parser.add_argument("population_id", metavar="POPULATION-ID", type=int, help="The ID for the population to operate on.") return parser