Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
tablib / METADATA
Size: Mime:
Metadata-Version: 2.0
Name: tablib
Version: 0.11.2
Summary: Format agnostic tabular data library (XLS, JSON, YAML, CSV)
Home-page: http://python-tablib.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.5
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.0
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4

Tablib: format-agnostic tabular dataset library
===============================================

.. image:: https://travis-ci.org/kennethreitz/tablib.svg?branch=develop
    :target: https://travis-ci.org/kennethreitz/tablib

::

	_____         ______  ___________ ______
	__  /_______ ____  /_ ___  /___(_)___  /_
	_  __/_  __ `/__  __ \__  / __  / __  __ \
	/ /_  / /_/ / _  /_/ /_  /  _  /  _  /_/ /
	\__/  \__,_/  /_.___/ /_/   /_/   /_.___/



Tablib is a format-agnostic tabular dataset library, written in Python.

Output formats supported:

- Excel (Sets + Books)
- JSON (Sets + Books)
- YAML (Sets + Books)
- HTML (Sets)
- TSV (Sets)
- OSD (Sets)
- CSV (Sets)
- DBF (Sets)

Note that tablib *purposefully* excludes XML support. It always will. (Note: This is a joke. Pull requests are welcome.)

Overview
--------

`tablib.Dataset()`
	A Dataset is a table of tabular data. It may or may not have a header row. They can be build and manipulated as raw Python datatypes (Lists of tuples|dictionaries). Datasets can be imported from JSON, YAML, DBF, and CSV; they can be exported to XLSX, XLS, ODS, JSON, YAML, DBF, CSV, TSV, and HTML.

`tablib.Databook()`
	A Databook is a set of Datasets. The most common form of a Databook is an Excel file with multiple spreadsheets. Databooks can be imported from JSON and YAML; they can be exported to XLSX, XLS, ODS, JSON, and YAML.

Usage
-----


Populate fresh data files: ::

    headers = ('first_name', 'last_name')

    data = [
        ('John', 'Adams'),
        ('George', 'Washington')
    ]

    data = tablib.Dataset(*data, headers=headers)


Intelligently add new rows: ::

    >>> data.append(('Henry', 'Ford'))

Intelligently add new columns: ::

    >>> data.append_col((90, 67, 83), header='age')

Slice rows:  ::

    >>> print data[:2]
    [('John', 'Adams', 90), ('George', 'Washington', 67)]


Slice columns by header: ::

    >>> print data['first_name']
    ['John', 'George', 'Henry']

Easily delete rows: ::

    >>> del data[1]

Exports
-------

Drumroll please...........

JSON!
+++++
::

	>>> print data.json
	[
	  {
	    "last_name": "Adams",
	    "age": 90,
	    "first_name": "John"
	  },
	  {
	    "last_name": "Ford",
	    "age": 83,
	    "first_name": "Henry"
	  }
	]


YAML!
+++++
::

	>>> print data.yaml
	- {age: 90, first_name: John, last_name: Adams}
	- {age: 83, first_name: Henry, last_name: Ford}

CSV...
++++++
::

	>>> print data.csv
	first_name,last_name,age
	John,Adams,90
	Henry,Ford,83

EXCEL!
++++++
::

	>>> with open('people.xls', 'wb') as f:
	...     f.write(data.xls)

DBF!
++++
::

    >>> with open('people.dbf', 'wb') as f:
    ...     f.write(data.dbf)

It's that easy.


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

To install tablib, simply: ::

	$ pip install tablib

Make sure to check out `Tablib on PyPi <https://pypi.python.org/pypi/tablib/>`_!


Contribute
----------

If you'd like to contribute, simply fork `the repository`_, commit your
changes to the **develop** branch (or branch off of it), and send a pull
request. Make sure you add yourself to AUTHORS_.




.. _`the repository`: http://github.com/kennethreitz/tablib
.. _AUTHORS: http://github.com/kennethreitz/tablib/blob/master/AUTHORS


History
-------

0.11.2 (2016-02-16)
+++++++++++++++++++

**Bugfixes**

- Fix export only formats.
- Fix for xlsx output.

0.11.1 (2016-02-07)
+++++++++++++++++++

**Bugfixes**

- Fixed packaging error on Python 3.


0.11.0 (2016-02-07)
+++++++++++++++++++

**New Formats!**

- Added LaTeX table export format (``Dataset.latex``).
- Support for dBase (DBF) files (``Dataset.dbf``).

**Improvements**

- New import/export interface (``Dataset.export()``, ``Dataset.load()``).
- CSV custom delimiter support (``Dataset.export('csv', delimiter='$')``).
- Adding ability to remove duplicates to all rows in a dataset (``Dataset.remove_duplicates()``).
- Added a mechanism to avoid ``datetime.datetime`` issues when serializing data.
- New ``detect_format()`` function (mostly for internal use).
- Update the vendored unicodecsv to fix ``None`` handling.
- Only freeze the headers row, not the headers columns (xls).

**Breaking Changes**

- ``detect()`` function removed.

**Bugfixes**

- Fix XLSX import.
- Bugfix for ``Dataset.transpose().transpose()``.


0.10.0 (2014-05-27)
+++++++++++++++++++

* Unicode Column Headers
* ALL the bugfixes!

0.9.11 (2011-06-30)
+++++++++++++++++++

* Bugfixes

0.9.10 (2011-06-22)
+++++++++++++++++++

* Bugfixes

0.9.9 (2011-06-21)
++++++++++++++++++

* Dataset API Changes
* ``stack_rows`` => ``stack``, ``stack_columns`` => ``stack_cols``
* column operations have their own methods now (``append_col``, ``insert_col``)
* List-style ``pop()``
* Redis-style ``rpush``, ``lpush``, ``rpop``, ``lpop``, ``rpush_col``, and ``lpush_col``

0.9.8 (2011-05-22)
++++++++++++++++++

* OpenDocument Spreadsheet support (.ods)
* Full Unicode TSV support


0.9.7 (2011-05-12)
++++++++++++++++++

* Full XLSX Support!
* Pickling Bugfix
* Compat Module


0.9.6 (2011-05-12)
++++++++++++++++++

* ``seperators`` renamed to ``separators``
* Full unicode CSV support


0.9.5 (2011-03-24)
++++++++++++++++++

* Python 3.1, Python 3.2 Support (same code base!)
* Formatter callback support
* Various bug fixes



0.9.4 (2011-02-18)
++++++++++++++++++

* Python 2.5 Support!
* Tox Testing for 2.5, 2.6, 2.7
* AnyJSON Integrated
* OrderedDict support
* Caved to community pressure (spaces)


0.9.3 (2011-01-31)
++++++++++++++++++

* Databook duplication leak fix.
* HTML Table output.
* Added column sorting.


0.9.2 (2010-11-17)
++++++++++++++++++

* Transpose method added to Datasets.
* New frozen top row in Excel output.
* Pickling support for Datasets and Rows.
* Support for row/column stacking.


0.9.1 (2010-11-04)
++++++++++++++++++

* Minor reference shadowing bugfix.


0.9.0 (2010-11-04)
++++++++++++++++++

* Massive documentation update!
* Tablib.org!
* Row tagging and Dataset filtering!
* Column insert/delete support
* Column append API change (header required)
* Internal Changes (Row object and use thereof)


0.8.5 (2010-10-06)
++++++++++++++++++

* New import system. All dependencies attempt to load from site-packages,
  then fallback on tenderized modules.


0.8.4 (2010-10-04)
++++++++++++++++++

* Updated XLS output: Only wrap if '\\n' in cell.


0.8.3 (2010-10-04)
++++++++++++++++++

* Ability to append new column passing a callable
  as the value that will be applied to every row.


0.8.2 (2010-10-04)
++++++++++++++++++

* Added alignment wrapping to written cells.
* Added separator support to XLS.


0.8.1 (2010-09-28)
++++++++++++++++++

* Packaging Fix


0.8.0 (2010-09-25)
++++++++++++++++++

* New format plugin system!
* Imports! ELEGANT Imports!
* Tests. Lots of tests.


0.7.1 (2010-09-20)
++++++++++++++++++

* Reverting methods back to properties.
* Windows bug compensated in documentation.


0.7.0 (2010-09-20)
++++++++++++++++++

* Renamed DataBook Databook for consistency.
* Export properties changed to methods (XLS filename / StringIO bug).
* Optional Dataset.xls(path='filename') support (for writing on windows).
* Added utf-8 on the worksheet level.


0.6.4 (2010-09-19)
++++++++++++++++++

* Updated unicode export for XLS.
* More exhaustive unit tests.


0.6.3 (2010-09-14)
++++++++++++++++++
* Added Dataset.append() support for columns.


0.6.2 (2010-09-13)
++++++++++++++++++
* Fixed Dataset.append() error on empty dataset.
* Updated Dataset.headers property w/ validation.
* Added Testing Fixtures.

0.6.1 (2010-09-12)
++++++++++++++++++

* Packaging hotfixes.


0.6.0 (2010-09-11)
++++++++++++++++++

* Public Release.
* Export Support for XLS, JSON, YAML, and CSV.
* DataBook Export for XLS, JSON, and YAML.
* Python Dict Property Support.