From 8cdb17c97fbdeb0d8ba3f92803c568fc487f1634 Mon Sep 17 00:00:00 2001 From: michal-mmm Date: Tue, 28 May 2024 09:23:06 +0200 Subject: [PATCH] :bug: Fix AttributeError in datasets with missing metadata parameter (#67) --- CHANGELOG.md | 2 ++ kedro_pandera/framework/hooks/pandera_hook.py | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f069691..705c49c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] +- :bug: Fix `AttributeError` in datasets with missing `metadata` parameter ([#67](https://github.com/Galileo-Galilei/kedro-pandera/issues/67)) + ## [0.2.1] - 2024-05-06 - :bug: Fix dataset reference in hook for kedro >= 0.19.0 diff --git a/kedro_pandera/framework/hooks/pandera_hook.py b/kedro_pandera/framework/hooks/pandera_hook.py index 4aacced..63697d6 100644 --- a/kedro_pandera/framework/hooks/pandera_hook.py +++ b/kedro_pandera/framework/hooks/pandera_hook.py @@ -55,13 +55,14 @@ def _validate_datasets( self, node: Node, catalog: DataCatalog, datasets: Dict[str, Any] ): for name, data in datasets.items(): + metadata = getattr(catalog._datasets[name], "metadata", None) if ( - catalog._datasets[name].metadata is not None - and "pandera" in catalog._datasets[name].metadata + metadata is not None + and "pandera" in metadata and name not in self._validated_datasets ): try: - catalog._datasets[name].metadata["pandera"]["schema"].validate(data) + metadata["pandera"]["schema"].validate(data) self._validated_datasets.add(name) except SchemaError as err: self._logger.error(