From fbca393e26489822d7b409ec254ac7d4ef21d5ff Mon Sep 17 00:00:00 2001 From: JB Lovland Date: Thu, 1 Feb 2024 15:05:12 +0100 Subject: [PATCH] ENH: Graceful metadata validation --- src/fmu/dataio/_utils.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/fmu/dataio/_utils.py b/src/fmu/dataio/_utils.py index 114ec1ffb..b3f95b6e7 100644 --- a/src/fmu/dataio/_utils.py +++ b/src/fmu/dataio/_utils.py @@ -11,16 +11,19 @@ from copy import deepcopy from datetime import datetime from pathlib import Path +from pprint import pformat from typing import Any, Final, Literal import pandas as pd import xtgeo import yaml +from pydantic import ValidationError from fmu.config import utilities as ut from . import _design_kw from ._logging import null_logger +from .datastructure.meta import meta logger: Final = null_logger(__name__) @@ -82,6 +85,15 @@ def export_metadata_file( "Export of metadata was requested, but no metadata are present." ) + try: + meta.Root.model_validate(metadata) + except ValidationError as e: + logger.warning( + "Unable to validate metadata(%s)", + pformat(metadata, indent=2), + exc_info=e, + ) + if savefmt == "yaml": with open(file, "w", encoding="utf8") as stream: stream.write(