Mixes `<stdout>` and `<stderr>` streams. The result is available in the ``output`` attribute. .. versionadded:: 8.2
| 136 | |
| 137 | |
| 138 | class StreamMixer: |
| 139 | class="st">"""Mixes `<stdout>` and `<stderr>` streams. |
| 140 | |
| 141 | The result is available in the ``output`` attribute. |
| 142 | |
| 143 | .. versionadded:: 8.2 |
| 144 | class="st">""" |
| 145 | |
| 146 | output: io.BytesIO |
| 147 | stdout: BytesIOCopy |
| 148 | stderr: BytesIOCopy |
| 149 | |
| 150 | def __init__(self) -> None: |
| 151 | self.output = io.BytesIO() |
| 152 | self.stdout = BytesIOCopy(copy_to=self.output) |
| 153 | self.stderr = BytesIOCopy(copy_to=self.output) |
| 154 | |
| 155 | |
| 156 | class _NamedTextIOWrapper(io.TextIOWrapper): |
no outgoing calls