| from __future__ import annotations |
| class CalledProcessError(RuntimeError): |
| def added_files() -> set[str]: |
| cmd = ('git', 'diff', '--staged', '--name-only', '--diff-filter=A') |
| return set(cmd_output(*cmd).splitlines()) |
| def cmd_output(*cmd: str, retcode: int | None = 0, **kwargs: Any) -> str: |
| kwargs.setdefault('stdout', subprocess.PIPE) |
| kwargs.setdefault('stderr', subprocess.PIPE) |
| proc = subprocess.Popen(cmd, **kwargs) |
| stdout, stderr = proc.communicate() |
| if retcode is not None and proc.returncode != retcode: |
| raise CalledProcessError(cmd, retcode, proc.returncode, stdout, stderr) |
| def zsplit(s: str) -> list[str]: |