mirror of
https://github.com/pim-n/pg-rad
synced 2026-03-11 19:58:11 +01:00
add MissingSubKeyError for config loading. update main.py for --config flag
This commit is contained in:
@ -12,3 +12,14 @@ class InvalidCSVError(DataLoadError):
|
|||||||
|
|
||||||
class OutOfBoundsError(Exception):
|
class OutOfBoundsError(Exception):
|
||||||
"""Raised when an object is attempted to be placed out of bounds."""
|
"""Raised when an object is attempted to be placed out of bounds."""
|
||||||
|
|
||||||
|
|
||||||
|
class MissingNestedKeyError(Exception):
|
||||||
|
"""Raised when a nested key is missing in the config."""
|
||||||
|
def __init__(self, key, subkey=None):
|
||||||
|
if subkey:
|
||||||
|
self.message = f"Missing key in {key}: {subkey}"
|
||||||
|
else:
|
||||||
|
self.message = f"Missing key: {key}"
|
||||||
|
|
||||||
|
super().__init__(self.message)
|
||||||
|
|||||||
@ -1,8 +1,14 @@
|
|||||||
import argparse
|
import argparse
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
from pg_rad.logger import setup_logger
|
from pandas.errors import ParserError
|
||||||
from pg_rad.landscape import LandscapeDirector
|
from yaml import YAMLError
|
||||||
from pg_rad.plotting import LandscapeSlicePlotter
|
|
||||||
|
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():
|
def main():
|
||||||
@ -10,7 +16,10 @@ def main():
|
|||||||
prog="pg-rad",
|
prog="pg-rad",
|
||||||
description="Primary Gamma RADiation landscape tool"
|
description="Primary Gamma RADiation landscape tool"
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--config",
|
||||||
|
help="Build from a config file."
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--test",
|
"--test",
|
||||||
action="store_true",
|
action="store_true",
|
||||||
@ -29,12 +38,35 @@ def main():
|
|||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
setup_logger(args.loglevel)
|
setup_logger(args.loglevel)
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
if args.test:
|
if args.test:
|
||||||
landscape = LandscapeDirector().build_test_landscape()
|
landscape = LandscapeDirector().build_test_landscape()
|
||||||
plotter = LandscapeSlicePlotter()
|
plotter = LandscapeSlicePlotter()
|
||||||
plotter.plot(landscape, save=args.saveplot)
|
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__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user