git_dag.exceptions

src/git_dag/exceptions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"""Custom exceptions."""

from subprocess import CalledProcessError


class CalledProcessCustomError(CalledProcessError):
    """A customization of CalledProcessError."""

    def __init__(self, called_process_error: CalledProcessError) -> None:
        super().__init__(
            returncode=called_process_error.returncode,
            cmd=called_process_error.cmd,
            output=called_process_error.output,
            stderr=called_process_error.stderr,
        )

    def __str__(self) -> str:
        return (
            f"\ncommand: {' '.join(self.cmd)}\n"
            f"   code: {self.returncode}\n"
            f"  error: {self.stderr.decode("utf-8")}"
        )