summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorHugo van Kemenade <hugovk@users.noreply.github.com>2019-10-03 12:13:13 +0300
committerClaude Paroz <claude@2xlibre.net>2019-10-03 11:13:13 +0200
commite8838b5ce626cbf33b864fb13a74958b964393ea (patch)
tree64c4351b7d2227e767a4d8ef70405b0efa388ba2 /README.md
parent923711d99a231ca64857dd0dc24a374c596a6c7b (diff)
downloadtablib-e8838b5ce626cbf33b864fb13a74958b964393ea.tar.gz
Converted README/HISTORY to Markdown format
Diffstat (limited to 'README.md')
-rw-r--r--README.md180
1 files changed, 180 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..09518b3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,180 @@
+# Tablib: format-agnostic tabular dataset library
+
+[![Jazzband](https://jazzband.co/static/img/badge.svg)](https://jazzband.co/)
+[![Build Status](https://travis-ci.org/jazzband/tablib.svg?branch=master)](https://travis-ci.org/jazzband/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)
+- Jira (Sets)
+- TSV (Sets)
+- ODS (Sets)
+- CSV (Sets)
+- DBF (Sets)
+
+Note that tablib *purposefully* excludes XML support. It always will. (Note: This is a
+joke. Pull requests are welcome.)
+
+If you're interested in financially supporting Kenneth Reitz open source, consider
+[visiting this link](https://cash.me/$KennethReitz>). Your support helps tremendously
+with sustainability of motivation, as Open Source is no longer part of my day job.
+
+
+## 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:
+
+```python
+headers = ('first_name', 'last_name')
+
+data = [
+ ('John', 'Adams'),
+ ('George', 'Washington')
+]
+
+data = tablib.Dataset(*data, headers=headers)
+```
+
+Intelligently add new rows:
+
+```python
+>>> data.append(('Henry', 'Ford'))
+```
+
+Intelligently add new columns:
+
+```python
+>>> data.append_col((90, 67, 83), header='age')
+```
+
+Slice rows:
+
+```python
+>>> print(data[:2])
+[('John', 'Adams', 90), ('George', 'Washington', 67)]
+```
+
+Slice columns by header:
+
+```python
+>>> print(data['first_name'])
+['John', 'George', 'Henry']
+```
+
+Easily delete rows:
+
+```python
+>>> del data[1]
+```
+
+
+## Exports
+
+Drumroll please...........
+
+### JSON!
+
+```python
+>>> print(data.export('json'))
+[
+ {
+ "last_name": "Adams",
+ "age": 90,
+ "first_name": "John"
+ },
+ {
+ "last_name": "Ford",
+ "age": 83,
+ "first_name": "Henry"
+ }
+]
+```
+
+### YAML!
+
+```python
+>>> print(data.export('yaml'))
+- {age: 90, first_name: John, last_name: Adams}
+- {age: 83, first_name: Henry, last_name: Ford}
+```
+
+### CSV...
+
+```python
+>>> print(data.export('csv'))
+first_name,last_name,age
+John,Adams,90
+Henry,Ford,83
+```
+
+### EXCEL!
+
+```python
+>>> with open('people.xls', 'wb') as f:
+... f.write(data.export('xls'))
+```
+
+### DBF!
+
+```python
+>>> with open('people.dbf', 'wb') as f:
+... f.write(data.export('dbf'))
+```
+
+### Pandas DataFrame!
+
+```python
+>>> 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:
+
+```console
+$ pip install tablib[pandas]
+```
+
+Make sure to check out [Tablib on PyPI](https://pypi.python.org/pypi/tablib/)!
+
+
+## Contribute
+
+Please see the [contributing guide](https://github.com/jazzband/tablib/blob/master/.github/CONTRIBUTING.md).