Metadata-Version: 1.1
Name: tee
Version: 0.0.3
Summary: Python library to tee stderr/stdout temporarily
Home-page: https://github.com/algrebe/python-tee
Author: Anthony Rebello
Author-email: rebello.anthony@gmail.com
License: MIT License
Download-URL: https://github.com/algrebe/python-tee/tarball/0.0.3
Description: python-tee
        ==========
        
        |Build Status| |PyPI version|
        
        Python library to tee stderr / stdout to a file
        
        Installation
        ------------
        
        .. code:: bash
        
            pip install tee
        
        Quick Start
        -----------
        
        ``tee_test.py``
        
        .. code:: python
        
            import sys
            from tee import StdoutTee, StderrTee
        
            with StdoutTee("mystdout.txt"), StderrTee("mystderr.txt"):
                sys.stdout.write("[stdout] hello\n")
                sys.stderr.write("[stderr] hello\n")
                sys.stdout.write("[stdout] world\n")
                sys.stderr.write("[stderr] world\n")
        
            sys.stdout.write("[stdout] not going to be written to file\n")
            sys.stderr.write("[stderr] not going to be written to file\n")
        
        .. code:: bash
        
            $ python tee_test.py
        
            [stdout] hello
            [stderr] hello
            [stdout] world
            [stderr] world
            [stdout] not going to be written to file
            [stderr] not going to be written to file
        
            $ cat mystdout.txt 
            [stdout] hello
            [stdout] world
        
            $ cat mystderr.txt 
            [stderr] hello
            [stderr] world
        
        Filters
        -------
        
        StdoutTee and StderrTee take filters as parameters which run before
        writing to a file or the stream. These filters are callables that take
        the message to be written as input and return either None or a new
        message.
        
        I find them particularly useful when you want to write colorized output
        to the stream, but strip out the control characters when writing to a
        file, especially when using fabric.
        
        .. code:: python
        
            import re
            import tee
            from fabric.api import run
        
            def _remove_control_chars(message):
                return re.sub(r'(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]', "", message)
        
            def echo_color():
                with tee.StdoutTee("fabout.txt", mode="a", file_filters=[_remove_control_chars]):
                    run("""echo -e "\E[1;32mHello World \E[4;31mLets add some\E[0m\E[1;34m color" && tput sgr0""")
        
        .. code:: bash
        
            fab -H localhost echo_color
        
        .. |Build Status| image:: https://travis-ci.org/algrebe/python-tee.svg?branch=master
           :target: https://travis-ci.org/algrebe/python-tee
        .. |PyPI version| image:: https://badge.fury.io/py/tee.svg
           :target: https://badge.fury.io/py/tee
        
Keywords: tee
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 2.7
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
