Source code for foxes.input.yaml.yaml

import argparse
from pathlib import Path

from foxes.utils import Dict

from .dict import run_dict


[docs] def foxes_yaml(): """ Command line tool for running foxes from yaml file input. Examples -------- >>> foxes_yaml input.yaml :group: input.yaml """ parser = argparse.ArgumentParser() parser.add_argument( "yml_file", help="The input yaml file", ) parser.add_argument("-o", "--output_dir", help="The output directory", default=None) parser.add_argument("-r", "--rotor", help="The rotor model", default=None) parser.add_argument( "-p", "--pwakes", help="The partial wakes models", default=None, nargs="+" ) parser.add_argument( "-w", "--wakes", help="The wake models", default=None, nargs="+", ) parser.add_argument("-f", "--frame", help="The wake frame", default=None) parser.add_argument("-e", "--engine", help="The engine", default=None) parser.add_argument( "-n", "--n_procs", help="The number of processes", default=None, type=int ) parser.add_argument( "-c", "--chunksize_states", help="The chunk size for states", default=None, type=int, ) parser.add_argument( "-C", "--chunksize_points", help="The chunk size for points", default=None, type=int, ) parser.add_argument( "-it", "--iterative", help="Use iterative algorithm", action="store_true" ) parser.add_argument( "-nf", "--nofig", help="Do not show figures", action="store_true" ) parser.add_argument( "-v", "--verbosity", help="The verbosity level, 0 = silent", type=int, default=None, ) args = parser.parse_args() v = 1 if args.verbosity is None else args.verbosity fpath = Path(args.yml_file) idata = Dict.from_yaml(fpath, verbosity=v) if ( args.engine is not None or args.n_procs is not None or args.chunksize_states is not None or args.chunksize_points is not None ): epars = dict( engine_type=args.engine, n_procs=args.n_procs, chunk_size_states=args.chunksize_states, chunk_size_points=args.chunksize_points, verbosity=v, ) else: epars = None run_dict( idata, rotor_model=args.rotor, partial_wakes=args.pwakes, wake_models=args.wakes, wake_frame=args.frame, engine_pars=epars, iterative=args.iterative, input_dir=fpath.parent, output_dir=args.output_dir, verbosity=args.verbosity, )