subprocess-tee0.4.2
Published
subprocess-tee
pip install subprocess-tee
Package Downloads
Authors
Project URLs
Requires Python
>=3.8
Dependencies
- argparse-manpage
; extra == "docs"
- cairosvg
; extra == "docs"
- markdown-include
; extra == "docs"
- mkdocs
; extra == "docs"
- mkdocs-git-revision-date-localized-plugin
; extra == "docs"
- mkdocs-material
; extra == "docs"
- mkdocs-material-extensions
; extra == "docs"
- mkdocstrings
; extra == "docs"
- mkdocstrings-python
; extra == "docs"
- pillow
; extra == "docs"
- pymdown-extensions
; extra == "docs"
- enrich
>=1.2.6; extra == "test"
- molecule
>=3.4.0; extra == "test"
- pytest-cov
>=2.12.1; extra == "test"
- pytest-plus
>=0.2; extra == "test"
- pytest-xdist
>=2.3.0; extra == "test"
- pytest
>=6.2.5; extra == "test"
subprocess-tee
This package provides a drop-in alternative to subprocess.run
that
captures the output while still printing it in real-time, just the way
tee
does.
Printing output in real-time while still capturing is valuable for any tool that executes long-running child processes. For those, you do want to provide instant feedback (progress) related to what is happening.
# from subprocess import run
from subprocess_tee import run
result = run("echo 123")
result.stdout == "123\n"
You can add tee=False
to disable the tee functionality if you want, this
being a much shorter alternative than adding the well known
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL
.
Keep in mind that universal_newlines=True
is implied as we expect text
processing, this being a divergence from the original subprocess.run
.
You can still use check=True
in order to make it raise CompletedProcess
exception when the result code is not zero.