Coverage for frappe_manager / docker / subprocess_output.py: 96%
24 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:13 +0530
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:13 +0530
1from dataclasses import dataclass
4@dataclass
5class SubprocessOutput:
6 stdout: list[str]
7 stderr: list[str]
8 combined: list[str]
9 exit_code: int
11 @classmethod
12 def from_output(cls, output):
13 stdout = []
14 stderr = []
15 combined = []
16 exit_code = 0
18 for source, line in output:
19 line = line.decode()
20 if source == "exit_code":
21 exit_code = int(line)
22 else:
23 combined.append(line)
24 if source == "stdout":
25 stdout.append(line)
26 if source == "stderr":
27 stderr.append(line)
29 data = {"stdout": stdout, "stderr": stderr, "combined": combined, "exit_code": exit_code}
30 return cls(**data)