Metadata-Version: 1.1 Name: tablib Version: 0.12.1 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 Description: Tablib: format-agnostic tabular dataset library =============================================== .. image:: https://travis-ci.org/kennethreitz/tablib.svg?branch=master :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) - Pandas DataFrames (Sets) - 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.export('json')) [ { "last_name": "Adams", "age": 90, "first_name": "John" }, { "last_name": "Ford", "age": 83, "first_name": "Henry" } ] YAML! +++++ :: >>> print(data.export('yaml')) - {age: 90, first_name: John, last_name: Adams} - {age: 83, first_name: Henry, last_name: Ford} CSV... ++++++ :: >>> print(data.export('csv')) first_name,last_name,age John,Adams,90 Henry,Ford,83 EXCEL! ++++++ :: >>> with open('people.xls', 'wb') as f: ... f.write(data.export('xls')) DBF! ++++ :: >>> with open('people.dbf', 'wb') as f: ... f.write(data.export('dbf')) Pandas DataFrame! +++++++++++++++++ :: >>> print(data.export('df')): first_name last_name age 0 John Adams 90 1 Henry Ford 83 It's that easy. Installation ------------ To install tablib, simply: :: $ pip install tablib Make sure to check out `Tablib on PyPi `_! 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.5 (2017-06-13) +++++++++++++++++++ - Use ``yaml.safe_load`` for importing yaml. 0.11.4 (2017-01-23) +++++++++++++++++++ - Use built-in `json` package if available - Support Python 3.5+ in classifiers ** Bugfixes ** - Fixed textual representation for Dataset with no headers - Handle decimal types 0.11.3 (2016-02-16) +++++++++++++++++++ - Release fix. 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. 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.7 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6