Skip to content

Commit 95ab414

Browse files
committed
Better error messages for type-validation failures
1 parent 5273e03 commit 95ab414

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

pipeline/src/properties.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,13 @@ def validate(self, value, ignore=None):
126126
for item in value:
127127
if not (isinstance(item, self.types) or _could_be_instance(item, self.types)):
128128
if "type" not in ignore:
129+
if isinstance(item, Link):
130+
item_type = f"value contains a link to {item.allowed_types}"
131+
else:
132+
item_type = f"value contains {type(item)}"
129133
failures["type"].append(
130-
f"{self.name}: Expected {', '.join(t.__name__ for t in self.types)}, "
131-
f"value contains {type(item)}"
134+
f"{self.name}: Expected {', '.join(t.__name__ for t in self.types)}, " +
135+
item_type
132136
)
133137
elif isinstance(item, (Node, IRI)):
134138
failures.update(item.validate(ignore=ignore))
@@ -158,9 +162,13 @@ def validate(self, value, ignore=None):
158162
)
159163
elif not (isinstance(value, self.types) or _could_be_instance(value, self.types)):
160164
if "type" not in ignore:
165+
if isinstance(value, Link):
166+
value_type = f"value contains a link to {value.allowed_types}"
167+
else:
168+
value_type = f"value contains {type(value)}"
161169
failures["type"].append(
162-
f"{self.name}: Expected {', '.join(t.__name__ for t in self.types)}, "
163-
f"value is {type(value)}"
170+
f"{self.name}: Expected {', '.join(t.__name__ for t in self.types)}, " +
171+
value_type
164172
)
165173
elif isinstance(value, (Node, IRI)):
166174
failures.update(value.validate(ignore=ignore))

0 commit comments

Comments
 (0)