Skip to content

Commit 050ca5d

Browse files
committed
Merge branch 'main' of github.com:broadinstitute/seqr-loading-pipelines
2 parents 4651aaa + 6158541 commit 050ca5d

File tree

3 files changed

+17
-16
lines changed

3 files changed

+17
-16
lines changed

v03_pipeline/lib/misc/validation.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,14 @@
1515

1616

1717
class SeqrValidationError(Exception):
18-
pass
18+
def __init__(
19+
self,
20+
msg: str,
21+
error_body: dict | None = None,
22+
):
23+
super().__init__(msg)
24+
self.msg = msg
25+
self.error_body = error_body if error_body is not None else {}
1926

2027

2128
def validate_allele_type(

v03_pipeline/lib/tasks/validate_callset.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,10 @@ def update_table(self, mt: hl.MatrixTable) -> hl.MatrixTable:
140140
if validation_exceptions:
141141
write_validation_errors_for_run_task = self.clone(
142142
WriteValidationErrorsForRunTask,
143-
error_messages=[str(e) for e in validation_exceptions],
143+
error_messages=[e.msg for e in validation_exceptions],
144+
error_body={
145+
k: v for e in validation_exceptions for k, v in e.error_body.items()
146+
},
144147
)
145148
write_validation_errors_for_run_task.run()
146149
raise SeqrValidationError(

v03_pipeline/lib/tasks/write_validation_errors_for_run.py

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,11 @@ def wrapper(self: luigi.Task):
5050
try:
5151
return f(self)
5252
except SeqrValidationError as e:
53-
if isinstance(
54-
e.args[1],
55-
object,
56-
): # TODO: improve type checking with a pydantic model/typed dict
57-
write_validation_errors_for_run_task = self.clone(
58-
WriteValidationErrorsForRunTask,
59-
error_messages=[str(e.args[0])],
60-
error_body=e.args[1],
61-
)
62-
else:
63-
write_validation_errors_for_run_task = self.clone(
64-
WriteValidationErrorsForRunTask,
65-
error_messages=[str(e)],
66-
)
53+
write_validation_errors_for_run_task = self.clone(
54+
WriteValidationErrorsForRunTask,
55+
error_messages=[e.msg],
56+
error_body=e.error_body,
57+
)
6758
write_validation_errors_for_run_task.run()
6859
raise SeqrValidationError(
6960
write_validation_errors_for_run_task.to_single_error_message(),

0 commit comments

Comments
 (0)