Source code for oasislmf.pytools.modelpy

import argparse
import logging

from oasislmf import __version__ as oasis_version

from .getmodel import manager, logger


[docs] parser = argparse.ArgumentParser()
parser.add_argument('-i', '--file-in', help='names of the input file_path') parser.add_argument('-o', '--file-out', help='names of the output file_path') parser.add_argument('-r', '--run-dir', help='path to the run directory', default='.') parser.add_argument('--ignore-file-type', nargs='*', help='the type of file to be loaded', default=set()) parser.add_argument('--data-server', help='=Use tcp/sockets for IPC data sharing', action='store_true') parser.add_argument('--peril-filter', help='Id of the peril to keep, if empty take all perils', nargs='+') parser.add_argument('-v', '--logging-level', help='logging level (debug:10, info:20, warning:30, error:40, critical:50)', default=30, type=int) parser.add_argument('-V', '--version', action='version', version='{}'.format(oasis_version)) parser.add_argument('--df-engine', help='The engine to use when loading dataframes', default='oasis_data_manager.df_reader.reader.OasisPandasReader') parser.add_argument('--analysis-pk', help='Analysis pk to send updates to', default=None) parser.add_argument('--create-structures', help='Build shared getmodel structures and save as numpy files, then exit without processing events.', action='store_true', default=False)
[docs] def main() -> None: """ Is the entry point for the modelpy command which loads data and constructs a model. Returns: None """ kwargs = vars(parser.parse_args()) # add handler to fm logger ch = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) logger.addHandler(ch) logging_level = kwargs.pop('logging_level') logger.setLevel(logging_level) if kwargs.pop('create_structures'): from oasislmf.pytools.getmodel.structure import create_getmodel_structure create_getmodel_structure( run_dir=kwargs.get('run_dir', '.'), ignore_file_type=set(kwargs.get('ignore_file_type') or []), peril_filter=kwargs.get('peril_filter') or [], model_df_engine=kwargs.get('df_engine', 'oasis_data_manager.df_reader.reader.OasisPandasReader'), ) else: manager.run(**kwargs)
if __name__ == "__main__": main()