Skip to content

Commit 8494f54

Browse files
committed
wip
1 parent 719458b commit 8494f54

1 file changed

Lines changed: 60 additions & 61 deletions

File tree

koda_validate/valid.py

Lines changed: 60 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -93,67 +93,66 @@ def _render_err_type(indent: str, err: "ErrType") -> str:
9393
UnionErrs)
9494

9595
next_indent_str = indent + (" " * 4)
96-
match err:
97-
case PredicateErrs(predicates):
98-
return f"\n{next_indent_str}".join(
99-
["PredicateErrs(predicates=[", ] + [
100-
f"{repr(pred)}"","
101-
for pred in predicates
102-
]
103-
) + f"\n{indent}])"
104-
case CoercionErr(compatible_types, dest_type):
105-
return f"\n{next_indent_str}".join([
106-
"CoercionErr(",
107-
f"compatible_types={{{', '.join([repr(ct) for ct in compatible_types])}}},", # noqa: E501
108-
f"dest_type={repr(dest_type)}",
109-
]) + f"\n{indent})"
110-
case KeyErrs(keys):
111-
return f"\n{next_indent_str}".join(
112-
["KeyErrs(keys={", ] + [
113-
f"{repr(key)}: {_make_invalid_repr(next_indent_str, k_err)},"
114-
for key, k_err in keys.items()
115-
]
116-
) + f"\n{indent}}})"
117-
case IndexErrs(i_errs):
118-
return f"\n{next_indent_str}".join(
119-
["IndexErrs(index_errs={",] + [
120-
f"{key}: {_make_invalid_repr(next_indent_str, i_err)},"
121-
for key, i_err in i_errs.items()
122-
]
123-
) + f"\n{indent}}})"
124-
case ContainerErr(child):
125-
return f"\n{next_indent_str}".join(
126-
["ContainerErr(",
127-
f"child={_make_invalid_repr(next_indent_str, child)}",]
128-
) + f"\n{indent})"
129-
case ExtraKeysErr(expected_keys):
130-
return f"\n{next_indent_str}".join(
131-
["ExtraKeysErr(",
132-
f"expected_keys={{{', '.join(sorted([repr(k) for k in expected_keys]))}}},""}",] # noqa: E501
133-
) + f"\n{indent})"
134-
case MapErr(keys):
135-
return f"\n{next_indent_str}".join(
136-
["MapErr(keys={", ] + [
137-
f"{repr(key)}: {_render_key_val_err(next_indent_str, k_err)},"
138-
for key, k_err in keys.items()
139-
]
140-
) + f"\n{indent}}})"
141-
case SetErrs(item_errs):
142-
return f"\n{next_indent_str}".join(
143-
["SetErrs(item_errs=[",] + [
144-
f"{_make_invalid_repr(next_indent_str, item)},"
145-
for item in item_errs
146-
]
147-
) + f"\n{indent}])"
148-
case UnionErrs(variants):
149-
return f"\n{next_indent_str}".join(
150-
["UnionErrs(variants=[",] + [
151-
f"{_make_invalid_repr(next_indent_str, variant)},"
152-
for variant in variants
153-
]
154-
) + f"\n{indent}])"
155-
case _:
156-
return repr(err)
96+
if isinstance(err, PredicateErrs):
97+
return f"\n{next_indent_str}".join(
98+
["PredicateErrs(predicates=[", ] + [
99+
f"{repr(pred)}"","
100+
for pred in err.predicates
101+
]
102+
) + f"\n{indent}])"
103+
elif isinstance(err, CoercionErr):
104+
return f"\n{next_indent_str}".join([
105+
"CoercionErr(",
106+
f"compatible_types={{{', '.join([repr(ct) for ct in err.compatible_types])}}},", # noqa: E501
107+
f"dest_type={repr(err.dest_type)}",
108+
]) + f"\n{indent})"
109+
elif isinstance(err, KeyErrs):
110+
return f"\n{next_indent_str}".join(
111+
["KeyErrs(keys={", ] + [
112+
f"{repr(key)}: {_make_invalid_repr(next_indent_str, k_err)},"
113+
for key, k_err in err.keys.items()
114+
]
115+
) + f"\n{indent}}})"
116+
elif isinstance(err, IndexErrs):
117+
return f"\n{next_indent_str}".join(
118+
["IndexErrs(index_errs={",] + [
119+
f"{key}: {_make_invalid_repr(next_indent_str, i_err)},"
120+
for key, i_err in err.indexes.items()
121+
]
122+
) + f"\n{indent}}})"
123+
elif isinstance(err, ContainerErr):
124+
return f"\n{next_indent_str}".join(
125+
["ContainerErr(",
126+
f"child={_make_invalid_repr(next_indent_str, err.child)}",]
127+
) + f"\n{indent})"
128+
elif isinstance(err, ExtraKeysErr):
129+
return f"\n{next_indent_str}".join(
130+
["ExtraKeysErr(",
131+
f"expected_keys={{{', '.join(sorted([repr(k) for k in err.expected_keys]))}}},""}",] # noqa: E501
132+
) + f"\n{indent})"
133+
elif isinstance(err, MapErr):
134+
return f"\n{next_indent_str}".join(
135+
["MapErr(keys={", ] + [
136+
f"{repr(key)}: {_render_key_val_err(next_indent_str, k_err)},"
137+
for key, k_err in err.keys.items()
138+
]
139+
) + f"\n{indent}}})"
140+
elif isinstance(err, SetErrs):
141+
return f"\n{next_indent_str}".join(
142+
["SetErrs(item_errs=[",] + [
143+
f"{_make_invalid_repr(next_indent_str, item)},"
144+
for item in err.item_errs
145+
]
146+
) + f"\n{indent}])"
147+
elif isinstance(err, UnionErrs):
148+
return f"\n{next_indent_str}".join(
149+
["UnionErrs(variants=[",] + [
150+
f"{_make_invalid_repr(next_indent_str, variant)},"
151+
for variant in err.variants
152+
]
153+
) + f"\n{indent}])"
154+
else:
155+
return repr(err)
157156

158157

159158
ValidationResult = Union[Valid[A], Invalid]

0 commit comments

Comments
 (0)