=======
py.io
=======


The 'py' lib provides helper classes for capturing IO during
execution of a program.

IO Capturing examples
===============================================

``py.io.StdCapture``
---------------------------

Basic Example::

  >>> import py
  >>> capture = py.io.StdCapture()
  >>> print "hello"
  >>> out,err = capture.reset()
  >>> out.strip() == "hello"
  True

For calling functions you may use a shortcut::

  >>> import py
  >>> def f(): print "hello"
  >>> res, out, err = py.io.StdCapture.call(f)
  >>> out.strip() == "hello"
  True

``py.io.StdCaptureFD``
---------------------------

If you also want to capture writes to the stdout/stderr
filedescriptors you may invoke::

  >>> import py, sys
  >>> capture = py.io.StdCaptureFD(out=False, in_=False)
  >>> sys.stderr.write("world")
  >>> out,err = capture.reset()
  >>> err
  'world'

py.io object reference
============================

.. autoclass:: py.io.StdCaptureFD
    :members: 
    :inherited-members:

.. autoclass:: py.io.StdCapture
    :members: 
    :inherited-members:

.. autoclass:: py.io.TerminalWriter
    :members: 
    :inherited-members:

