Format agnostic tabular data library (XLS, JSON, YAML, CSV)
Project description
_____ ______ ___________ ______ __ /_______ ____ /_ ___ /___(_)___ /_ _ __/_ __ `/__ __ \__ / __ / __ __ \ / /_ / /_/ / _ /_/ /_ / _ / _ /_/ / \__/ \__,_/ /_.___/ /_/ /_/ /_.___/
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 Excel (XLS), JSON, YAML, and CSV.
- 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 Excel (XLS), 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!
>>> open('people.xls', 'wb').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.
Roadmap
- v1.0.0:
Add hooks system
Tablib.ext namespace
History
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file tablib-0.9.5.tar.gz
.
File metadata
- Download URL: tablib-0.9.5.tar.gz
- Upload date:
- Size: 144.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f64467961944ac2561d4b1f883ef50af598099f4ae25ca516b69d14c8ddfb7cb |
|
MD5 | 76a95980ef524838143ffa051e0a0501 |
|
BLAKE2b-256 | dcbedbf31d3fd90887ef2e2f4f9134a92fa5e6f4b3d1b03c20a98d4b54e7a16f |