Thank you for sharing!
How well does it match the standard subprocess interface?
Have you tried testing it with the test/test_subprocess.py from the
Python's stdlib?
The code looks good. I've not run it yet though.
One thing to consider is that maybe it's possible to abstract
non-blocking files away?
Attached is such file object that I use for some projects.
Thanks,
Denis.