Package: printio
printiois 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-languageFeaturesAlign 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.OverviewThe 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.LicenseMade available under the MIT License.UsageFirst, some housekeeping items…Import the library>>> from printio import PrettyValue
>>> from printio import PrettyValuesCreate 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 |
+-----+--------+--------+RoadmapAdd 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