add MissingSubKeyError for config loading. update main.py for --config flag

This commit is contained in:
Pim Nelissen
2026-02-20 11:47:38 +01:00
parent 265d3b0111
commit cca514a2ba
2 changed files with 47 additions and 4 deletions

View File

@ -1,8 +1,14 @@
import argparse
import logging
import sys
from pg_rad.logger import setup_logger
from pg_rad.landscape import LandscapeDirector
from pg_rad.plotting import LandscapeSlicePlotter
from pandas.errors import ParserError
from yaml import YAMLError
from pg_rad.exceptions.exceptions import MissingNestedKeyError
from pg_rad.logger.logger import setup_logger
from pg_rad.landscape.director import LandscapeDirector
from pg_rad.plotting.landscape_plotter import LandscapeSlicePlotter
def main():
@ -10,7 +16,10 @@ def main():
prog="pg-rad",
description="Primary Gamma RADiation landscape tool"
)
parser.add_argument(
"--config",
help="Build from a config file."
)
parser.add_argument(
"--test",
action="store_true",
@ -29,12 +38,35 @@ def main():
args = parser.parse_args()
setup_logger(args.loglevel)
logger = logging.getLogger(__name__)
if args.test:
landscape = LandscapeDirector().build_test_landscape()
plotter = LandscapeSlicePlotter()
plotter.plot(landscape, save=args.saveplot)
elif args.config:
try:
landscape = LandscapeDirector.build_from_config(args.config)
plotter = LandscapeSlicePlotter()
plotter.plot(landscape, save=args.saveplot)
except (
MissingNestedKeyError,
KeyError,
YAMLError
):
logger.critical(
"The provided config file is invalid. "
"Check the log above. You can consult the documentation for "
"an explanation of how to define a config file."
)
sys.exit(1)
except (
FileNotFoundError,
ParserError
):
sys.exit(1)
if __name__ == "__main__":
main()