diff --git a/domain/data_transformation/guarded_column_classifier.py b/domain/data_transformation/guarded_column_classifier.py index 20f4f3ac4..f84ab6ac2 100644 --- a/domain/data_transformation/guarded_column_classifier.py +++ b/domain/data_transformation/guarded_column_classifier.py @@ -28,4 +28,15 @@ class GuardedColumnClassifier(ColumnClassifier[E]): self._fallback = fallback def classify(self, descriptions: set[str]) -> dict[str, E]: - raise NotImplementedError + guarded: dict[str, E] = {} + misses: set[str] = set() + for description in descriptions: + member = self._guard(description) + if member is not None: + guarded[description] = member + else: + misses.add(description) + # Only the misses reach the fallback — a fully-guarded batch never calls it. + if misses: + guarded.update(self._fallback.classify(misses)) + return guarded