Source code for cmip7_ancil_argparse

"""Modular command-line argument parsers for CMIP7 ancillary generation
tasks.
"""

from argparse import ArgumentParser


[docs] def dataset_parser(): """Create an argument parser for CMIP7 input4MIPs dataset identification. Returns: argparse.ArgumentParser: Parser defining ``--dataset-version`` and ``--dataset-vdate`` arguments. """ parser = ArgumentParser(add_help=False) parser.add_argument("--dataset-version") parser.add_argument("--dataset-vdate") return parser
[docs] def dms_filename_parser(dms_ancil_filename=None): """Create an argument parser for DMS (dimethyl sulfide) background aerosol ancillary parameters. Args: dms_ancil_filename (str, optional): Default filename for the DMS ancillary file. Returns: argparse.ArgumentParser: Parser defining ``--esm15-aerosol-version`` and ``--dms-ancil-filename`` arguments. """ parser = ArgumentParser(add_help=False) parser.add_argument("--esm15-aerosol-version") parser.add_argument("--dms-ancil-filename", default=dms_ancil_filename) return parser
[docs] def pad_parser(): """Create an argument parser for temporal padding control. Returns: argparse.ArgumentParser: Parser defining the ``--pad`` boolean flag to duplicate bounding years for temporal interpolation. """ parser = ArgumentParser(add_help=False) parser.add_argument("--pad", action="store_true") return parser
[docs] def grid_parser(): """Create an argument parser for model horizontal grid resolution and mask configuration. Returns: argparse.ArgumentParser: Parser defining ``--esm-grid-rel-dirname`` and ``--esm15-grid-version`` arguments. """ parser = ArgumentParser(add_help=False) parser.add_argument("--esm-grid-rel-dirname") parser.add_argument("--esm15-grid-version") return parser
[docs] def path_parser(): """Create an argument parser for filesystem directory paths. Returns: argparse.ArgumentParser: Parser defining ``--ancil-target-dirname``, ``--cmip7-source-data-dirname``, and ``--esm15-inputs-dirname`` arguments. """ parser = ArgumentParser(add_help=False) parser.add_argument("--ancil-target-dirname") parser.add_argument("--cmip7-source-data-dirname") parser.add_argument("--esm15-inputs-dirname") return parser
[docs] def percent_parser(): """Create an argument parser for percentage-based emission distribution datasets. Returns: argparse.ArgumentParser: Parser defining ``--percent-version``, ``--percent-vdate``, and ``--percent-date-range`` arguments. """ parser = ArgumentParser(add_help=False) parser.add_argument("--percent-version") parser.add_argument("--percent-vdate") parser.add_argument("--percent-date-range") return parser
[docs] def common_parser(): """Create a composite argument parser combining path, grid, and dataset options. Returns: argparse.ArgumentParser: Composite parent parser combining :func:`path_parser`, :func:`grid_parser`, and :func:`dataset_parser`. """ parser = ArgumentParser( parents=[path_parser(), grid_parser(), dataset_parser()], add_help=False ) return parser
[docs] def ext_parser(): """Create an argument parser for ScenarioMIP timeline extension (2022-2150) parameters. Returns: argparse.ArgumentParser: Parser defining extension toggles (``--ext``), override targets (``--end-year``), and extension dataset coordinates for surface and aircraft emissions. """ parser = ArgumentParser(add_help=False) parser.add_argument( "--ext", action="store_true", default=False, help=( "Extend forcing from CMIP7_SM_END_YEAR (2100) to " "CMIP7_SM_EXT_END_YEAR (2150)" ), ) parser.add_argument( "--end-year", type=int, default=None, help="Override target end year" ) parser.add_argument( "--dataset-ext-version", help="Version of extension dataset" ) parser.add_argument( "--dataset-ext-vdate", help="Version date of extension dataset" ) parser.add_argument( "--dataset-ext-date-range", help="Date range of extension dataset" ) parser.add_argument( "--dataset-air-ext-version", help="Version of aircraft extension dataset", ) parser.add_argument( "--dataset-air-ext-vdate", help="Version date of aircraft extension dataset", ) parser.add_argument( "--dataset-air-ext-date-range", help="Date range of aircraft extension dataset", ) return parser