Source code for annular.cli

import argparse
import importlib.metadata
import logging
from pathlib import Path

from annular.coupling import run
from annular.install_tulipa import install_tulipa
from annular.utils import silence_noisy_loggers

[docs] version_string = importlib.metadata.version("annular")
[docs] def cli_main() -> None: """CLI function for running an annular simulation using config files.""" parser = argparse.ArgumentParser() parser.add_argument("-v", "--version", action="version", version=f"%(prog)s {version_string}") subparsers = parser.add_subparsers(dest="command") # Run command run_parser = subparsers.add_parser("run") run_parser.add_argument( "config_files", nargs="+", type=Path, help="Configuration files to run simulations for.", ) run_parser.add_argument( "--verbose", "-v", action="count", default=0, help="Controls the level of verbosity in the logging output: -v for INFO, -vv for DEBUG", ) run_parser.add_argument("-o", "--output", type=Path, help="Output directory", default=Path("./results/")) # Install Tulipa command install_parser = subparsers.add_parser("install-tulipa", help="Install TulipaEnergyModel.jl dependencies") install_parser.add_argument( "-w", "--workspace", type=Path, help="Workspace directory for Julia environment (default: current directory)", default=Path("./"), ) install_parser.add_argument( "--verbose", "-v", action="count", default=0, help="Controls the level of verbosity in the logging output: -v for INFO, -vv for DEBUG", ) args = parser.parse_args() log_level = 10 * (3 - args.verbose) # logging.WARNING = 30, logging.INFO = 20, logging.DEBUG = 10 logging.basicConfig(level=log_level) silence_noisy_loggers() if args.command == "run": for config_file in args.config_files: run(config_file, args.output) elif args.command == "install-tulipa": install_tulipa(workspace=args.workspace)