Files
nand2tetris/asm/venv/lib/python3.11/site-packages/wurlitzer-3.0.3.dist-info/METADATA
Sven Riwoldt c7bc862c6f asm
2024-04-01 20:30:24 +02:00

78 lines
1.8 KiB
Plaintext

Metadata-Version: 2.1
Name: wurlitzer
Version: 3.0.3
Summary: Capture C-level output in context managers
Home-page: https://github.com/minrk/wurlitzer
Author: Min RK
Author-email: benjaminrk@gmail.com
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.5
Description-Content-Type: text/markdown
License-File: LICENSE
# Wurlitzer
Capture C-level stdout/stderr pipes in Python via `os.dup2`.
For more details on why this is needed, please read [this blog post](https://eli.thegreenplace.net/2015/redirecting-all-kinds-of-stdout-in-python/).
## Install
pip install wurlitzer
## Usage
Capture stdout/stderr in pipes:
```python
from wurlitzer import pipes
with pipes() as (out, err):
call_some_c_function()
stdout = out.read()
```
Capture stdout/stderr in StringIO:
```python
from io import StringIO
from wurlitzer import pipes, STDOUT
out = StringIO()
with pipes(stdout=out, stderr=STDOUT):
call_some_c_function()
stdout = out.getvalue()
```
Forward C-level stdout/stderr to Python sys.stdout/stderr,
which may already be forwarded somewhere by the environment, e.g. IPython:
```python
from wurlitzer import sys_pipes
with sys_pipes():
call_some_c_function()
```
Or even simpler, enable it as an IPython extension:
```
%load_ext wurlitzer
```
To forward all C-level output to IPython during execution.
## Acknowledgments
This package is based on stuff we learned with @takluyver and @karies while working on capturing output from the [Cling Kernel](https://github.com/root-mirror/cling/tree/master/tools/Jupyter/kernel) for Jupyter.
## Wurlitzer?!
[Wurlitzer](https://en.wikipedia.org/wiki/Wurlitzer) makes pipe organs. Get it? Pipes? Naming is hard.