Metadata-Version: 1.0
Name: printio
Version: 0.0.1
Summary: 

The printio library in Python.


Home-page: http://github.com/taylortree/printio
Author: Mike Taylor
Author-email: mike@taylortree.com
License: MIT
Description: printio
        =======
        *printio* is a MIT licensed pretty printing library implemented in Python.
        
        Format a value(s) for printing or display using Python's built-in String Format library.
        
        Most of the string formatting options from the Format Specification Mini-Language are available.  See the formatting options here:
        http://docs.python.org/release/3.1.2/library/string.html#format-specification-mini-language
        
        
        Features
        --------
        - Align values to the left, right, or center.
        - Pad and fill values.
        - Sign numerical values.
        - Convert integers to float.
        - Specify precision for floating values - values are rounded up.
        - Convert numbers to percentage formats.  Ex. 0.10 ~ 10.0000%
        - Add column headers or utilize default headers for your values.
        - Column widths are automatically sized based on maximum width of the values.
        - Choose which columns to format in your values.
        - Ability to print to 'text' similar to how MySQL displays output to the console.
        
        
        Overview
        --------
        The major functions of printio:
        
        - *PrettyValue():*
        Formats a single value to a string.
        
        - *PrettyValues():*
        Formats a list of lists or dicts.
        - format: will return a list of strings including the header.
        - text: will return a string similar to MySQL's console display format.
        
        
        License
        -------
        Made available under the MIT License.
        
        
        Usage
        -----
        First, some housekeeping items...
        
        Import the library ::
        
        >>> from printio import PrettyValue
        >>> from printio import PrettyValues
        
        Create a list of values you wish to format. ::
        
        >>> lol = []
        >>> lol.append([0, 'yhoo', 23.45])
        >>> lol.append([1, 'goog', 200.4565])
        >>> lol.append([2, 't', 1.00])
        
        Let's also create a list of dictionaries to format as well. ::
        
        >>> keys = ['bar', 'symbol', 'close']
        >>> lod = [dict(zip(keys, x)) for x in lol]
        
        Now, let's get down to business...
        
        Format a string with a width of 10, center-aligned, and filled with '-'. ::
        
        >>> value = 'yhoo'
        >>> pv = PrettyValue('^10', fill='-')
        >>> pv.format(value)
        ---yhoo---
        
        Format a float with a decimal precision of 1. ::
        
        >>> value = 23.45599
        >>> pv = PrettyValue('.1f')
        >>> pv.format(value)
        '23.5'
        
        Format a float into a percentage. ::
        
        >>> value = 0.025
        >>> pv = PrettyValue('.2%')
        >>> pv.format(value)
        '2.50%'
        
        Format a list. ::
        
        >>> pv = PrettyValues()
        >>> for row in pv.format([lol[0]]): print row
        ['0', '1   ', '2    ']
        ['0', 'yhoo', '23.45']
        
        Format a dict. ::
        
        >>> pv = PrettyValues()
        >>> pv.newcol('bar')
        >>> pv.newcol('symbol')
        >>> pv.newcol('close')
        >>> for row in pv.format([lod[0]]): print row
        ['bar', 'symbol', 'close']
        ['0  ', 'yhoo  ', '23.45']
        
        Format a list of lists. ::
        
        >>> pv = PrettyValues()
        >>> for row in pv.format(lol): print row
        ['0', '1   ', '2       ']
        ['0', 'yhoo', '23.45   ']
        ['1', 'goog', '200.4565']
        ['2', 't   ', '1.0     ']
        
        Same as above but this time in text. ::
        
        >>> pv = PrettyValues()
        >>> results = pv.text(lol)
        >>> print results
        +---+------+----------+
        | 0 | 1    | 2        |
        +---+------+----------+
        | 0 | yhoo | 23.45    |
        | 1 | goog | 200.4565 |
        | 2 | t    | 1.0      |
        +---+------+----------+
        
        Want to add better column names? ::
        
        >>> pv.newcol(0, cname='Bar')
        >>> pv.newcol(1, cname='Symbol')
        >>> pv.newcol(2, cname='Close')
        >>> print pv.text(lol)
        +-----+--------+----------+
        | Bar | Symbol | Close    |
        +-----+--------+----------+
        | 0   | yhoo   | 23.45    |
        | 1   | goog   | 200.4565 |
        | 2   | t      | 1.0      |
        +-----+--------+----------+
        
        Print only the Close column, always show sign, and format with decimal precision of 2. ::
        
        >>> pv = PrettyValues()
        >>> pv.newcol(2, '+.2f', cname='Close')
        >>> print pv.text(lol)
        +---------+
        | Close   |
        +---------+
        | + 23.45 |
        | +200.46 |
        | +  1.00 |
        +---------+
        
        Print list of dictionaries with the numerical settings for the bar & close. ::
        
        >>> pv = PrettyValues()
        >>> pv.newcol('bar', 'i')
        >>> pv.newcol('symbol')
        >>> pv.newcol('close', '.2f')
        >>> print pv.text(lod)
        +-----+--------+--------+
        | bar | symbol | close  |
        +-----+--------+--------+
        |   0 | yhoo   |  23.45 |
        |   1 | goog   | 200.46 |
        |   2 | t      |   1.00 |
        +-----+--------+--------+
        
        
        Roadmap
        -------
        * Add option to display title in addition to column headings.
        * Add autonum column ability.
        * Add tb_html to format to a html table.
        * Add pre_html to format <pre> html </pre>.
        
        
        For additional information, please email:
        mike@taylortree.com
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
