|
|
@@ -0,0 +1,366 @@
|
|
|
+Metadata-Version: 1.1
|
|
|
+Name: tablib
|
|
|
+Version: 0.10.0
|
|
|
+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=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)
|
|
|
+ - CSV (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, and CSV; they can be exported to XLSX, XLS, ODS, JSON, YAML, 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)
|
|
|
+
|
|
|
+ It's that easy.
|
|
|
+
|
|
|
+
|
|
|
+ Installation
|
|
|
+ ------------
|
|
|
+
|
|
|
+ To install tablib, simply: ::
|
|
|
+
|
|
|
+ $ pip install tablib
|
|
|
+
|
|
|
+ Or, if you absolutely must: ::
|
|
|
+
|
|
|
+ $ easy_install 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
|
|
|
+ -------
|
|
|
+
|
|
|
+ ++++
|
|
|
+
|
|
|
+ * Unicode Column Headers
|
|
|
+
|
|
|
+ 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.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
|