diff --git a/datalad_core/runners/annex.py b/datalad_core/runners/annex.py index b8b475d..cd49d18 100644 --- a/datalad_core/runners/annex.py +++ b/datalad_core/runners/annex.py @@ -56,17 +56,20 @@ def call_annex_json_lines( with iter_git_subproc(cmd, cwd=cwd) as annex_proc: for res in load_json(itemize(annex_proc, sep=None)): if res.get('success', True) is False: - error_results.append({ - k: v for k, v in res.items() - if k in ('command', 'input', 'error-messages', 'note') - }) + error_results.append( + { + k: v + for k, v in res.items() + if k in ('command', 'input', 'error-messages', 'note') + } + ) yield res except CommandError as e: # TODO: I think we'd rather want to have an exception subclass here # that can take this information in a structured fashion, and does the # formatting on access e.msg = _format_errors(error_results) - raise e + raise def _format_errors(err: list[dict[str, str | list[str]]]) -> str: @@ -79,11 +82,14 @@ def _format_errors(err: list[dict[str, str | list[str]]]) -> str: def _format_error(err: dict[str, str | list[str]]) -> str: - return ''.join(( - f'{err["command"]!r} ' if 'command' in err else '', - 'failed', - f' for input {err["input"]!r}' if err.get('input') else '', - f' with {"\n".join(err["error-messages"])!r}' - if err.get('error-messages') else '', - f' [note: {err["note"]}]' if 'note' in err else '', - )) + return ''.join( + ( + f'{err["command"]!r} ' if 'command' in err else '', + 'failed', + f' for input {err["input"]!r}' if err.get('input') else '', + f' with {"\n".join(err["error-messages"])!r}' + if err.get('error-messages') + else '', + f' [note: {err["note"]}]' if 'note' in err else '', + ) + )