python-iomux

IO buffer multiplexer

MIT License

Downloads
69
Stars
2
Committers
1

iomux

IO buffer multiplexer.

Currently, the only use-case that is supported is if the IO object user does not need to read from it. IO objects will only be able to read the last data segment. With time, we want to grow this package to support use-cases where the IO object user also wants to perform read operations. Right now, read operations only work as expected in the multiplexer object itself. As-is, this is useful for working with output streams, but not normal file-descriptors.

import sys

from contextlib import redirect_stdout, redirect_stderr

import iomux


capture = iomux.StringMux()

with redirect_stdout(capture.out), redirect_stderr(capture.err):
    print('aaa')
    print('bbb', file=sys.stderr)
    print('aaa')
    print('bbb', file=sys.stderr)

assert capture.getvalue() == 'aaa\nbbb\naaa\nbbb\n'
assert capture.getvalue('out') == 'aaa\naaa\n'
assert capture.getvalue('err') == 'bbb\nbbb\n'
assert list(capture.values()) == [
    ('out', 'aaa\n'),
    ('err', 'bbb\n'),
    ('out', 'aaa\n'),
    ('err', 'bbb\n'),
]
Package Rankings
Top 31.19% on Pypi.org
Badges
Extracted from project README
checks tests codecov Documentation Status