You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hamilton.apache.org by je...@apache.org on 2026/08/17 10:25:56 UTC
(hamilton) branch fix/custom-validator-applicability created (now bd300685)
This is an automated email from the ASF dual-hosted git repository.
jernejfrank pushed a change to branch fix/custom-validator-applicability
in repository https://gitbox.apache.org/repos/asf/hamilton.git
at bd300685 Fix check_output_custom uses applies_to
This branch includes the following new commits:
new bd300685 Fix check_output_custom uses applies_to
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(hamilton) 01/01: Fix check_output_custom uses applies_to
Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jernejfrank pushed a commit to branch fix/custom-validator-applicability
in repository https://gitbox.apache.org/repos/asf/hamilton.git
commit bd300685b9438674d1b4d1dc9f70b3bc748b39ea
Author: jernejfrank <je...@safeintelligence.ai>
AuthorDate: Mon Aug 17 11:25:34 2026 +0100
Fix check_output_custom uses applies_to
---
hamilton/function_modifiers/validation.py | 6 +++++-
tests/function_modifiers/test_validation.py | 25 +++++++++++++++++++++++++
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/hamilton/function_modifiers/validation.py b/hamilton/function_modifiers/validation.py
index e54490b9..fd0feeba 100644
--- a/hamilton/function_modifiers/validation.py
+++ b/hamilton/function_modifiers/validation.py
@@ -186,7 +186,11 @@ class check_output_custom(BaseDataValidationDecorator):
self.validators = list(validators)
def get_validators(self, node_to_validate: node.Node) -> list[dq_base.DataValidator]:
- return self.validators
+ return [
+ validator
+ for validator in self.validators
+ if validator.applies_to(node_to_validate.type)
+ ]
class check_output(BaseDataValidationDecorator):
diff --git a/tests/function_modifiers/test_validation.py b/tests/function_modifiers/test_validation.py
index 18675016..1da54bda 100644
--- a/tests/function_modifiers/test_validation.py
+++ b/tests/function_modifiers/test_validation.py
@@ -128,6 +128,31 @@ def test_check_output_custom_node_transform():
)
+def test_check_output_custom_only_uses_applicable_validators():
+ applicable_validator = SampleDataValidator1(equal_to=10, importance="warn")
+ incompatible_validator = SampleDataValidator2(dataset_length=1, importance="warn")
+ decorator = check_output_custom(applicable_validator, incompatible_validator)
+
+ def fn(input: int) -> int:
+ return input
+
+ validators = decorator.get_validators(node.Node.from_fn(fn))
+
+ assert validators == [applicable_validator]
+
+
+def test_check_output_custom_uses_no_incompatible_validators():
+ decorator = check_output_custom(
+ SampleDataValidator2(dataset_length=1, importance="warn"),
+ SampleDataValidator3(dtype=np.int64, importance="warn"),
+ )
+
+ def fn(input: int) -> int:
+ return input
+
+ assert decorator.get_validators(node.Node.from_fn(fn)) == []
+
+
def test_check_output_custom_node_transform_duplicate():
"""You should be able to pass in the same validator twice; IRL it would be different args."""
decorator = check_output_custom(