Metadata-Version: 2.1
Name: table-logger
Version: 0.3.6
Summary: TableLogger is a handy Python utility for logging tabular data into a console or a file.
Home-page: https://github.com/AleksTk/table-logger
Author: Alexander Tkachenko
Author-email: alex.tk.fb@gmail.com
License: GNU GPL 2.0
Download-URL: https://github.com/AleksTk/table-logger/archive/v0.3.1.tar.gz
Keywords: tabular,structured,data,console,log
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Logging
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Requires-Dist: numpy

============
TableLogger
============

TableLogger is a handy Python utility for logging tabular data into a console 
or a text file with little overhead.


Usage
-----
.. code-block:: python

    from table_logger import TableLogger
    tbl = TableLogger(columns='a,b,c,d')

    tbl(1, 'Row1', datetime.now(), math.pi)
    tbl(2, 'Row2', datetime.now(), 1/3)
    tbl(3, 'Row3', datetime.now(), random.random())

Output::

    +----------------------+----------------------+---------------------+----------------------+
    |                    a | b                    | c                   |                    d |
    |----------------------+----------------------+---------------------+----------------------|
    |                    1 | Row1                 | 2015-12-28 21:13:46 |    3.141592653589793 |
    |                    2 | Row2                 | 2015-12-28 21:13:46 |    0.333333333333333 |
    |                    3 | Row3                 | 2015-12-28 21:13:46 |    0.854212894923849 |


Features
--------

* sane default formatting for basic python types
* row number, timestamp and time delta columns
* csv output
* allows to adjust column width and format
* python 2.7 and 3 support


Installation
------------

PyPI::

    $ pip install table-logger

GitHub::

    $ git clone https://github.com/AleksTk/table-logger
    $ cd table-logger
    $ python setup.py install


Examples
--------

Include row number, time-delta and timestamp columns

.. code-block:: python

    tbl = TableLogger(columns='data', rownum=True, time_delta=True, timestamp=True)
    for e in 'abcde':
        time.sleep(random.randint(0, 3))
        tbl(e)

Output::

    +-----------+----------------------------+-----------------+----------------------+
    |       row | timestamp                  |      time delta | data                 |
    |-----------+----------------------------+-----------------+----------------------|
    |         1 | 2016-01-01 21:40:35.956815 |     0.000000000 | a                    |
    |         2 | 2016-01-01 21:40:35.957315 |     0.000000000 | b                    |
    |         3 | 2016-01-01 21:40:37.957569 |     2.000253916 | c                    |
    |         4 | 2016-01-01 21:40:37.957569 |     0.000500202 | d                    |
    |         5 | 2016-01-01 21:40:39.958323 |     2.000253916 | e                    |



Write to csv file

.. code-block:: python

     with open('log.csv', 'wb') as csvfile:
        tbl = TableLogger(file=csvfile, csv=True, columns='a,b')
        tbl('John "Smith"',  1200000.890)
        tbl('Tommy,Cache',   70000.125)

Output::

    a,b
    "John ""Smith""",1200000.890000
    "Tommy,Cache",70000.125000



Specify custom column widths and formatters

.. code-block:: python

    tbl = TableLogger(columns='name,salary',
                      float_format='{:,.2f}'.format,
                      default_colwidth=15)
    tbl('John Smith',  1200000.890)
    tbl('Tommy Cache',   70000.125)

Output::

    +-----------------+-----------------+
    | name            |          salary |
    |-----------------+-----------------|
    | John Smith      |    1,200,000.89 |
    | Tommy Cache     |       70,000.12 |


