diff options
| author | Hugo van Kemenade <hugovk@users.noreply.github.com> | 2019-10-03 12:13:13 +0300 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2019-10-03 11:13:13 +0200 |
| commit | e8838b5ce626cbf33b864fb13a74958b964393ea (patch) | |
| tree | 64c4351b7d2227e767a4d8ef70405b0efa388ba2 | |
| parent | 923711d99a231ca64857dd0dc24a374c596a6c7b (diff) | |
| download | tablib-e8838b5ce626cbf33b864fb13a74958b964393ea.tar.gz | |
Converted README/HISTORY to Markdown format
| -rw-r--r-- | HISTORY.md (renamed from HISTORY.rst) | 147 | ||||
| -rw-r--r-- | README.md | 180 | ||||
| -rw-r--r-- | README.rst | 182 | ||||
| -rwxr-xr-x | setup.py | 5 |
4 files changed, 241 insertions, 273 deletions
@@ -1,120 +1,105 @@ -History -------- +# History -0.11.5 (2017-06-13) -+++++++++++++++++++ +## 0.11.5 (2017-06-13) -- Use ``yaml.safe_load`` for importing yaml. +- Use `yaml.safe_load` for importing yaml. -0.11.4 (2017-01-23) -+++++++++++++++++++ +## 0.11.4 (2017-01-23) - Use built-in `json` package if available - Support Python 3.5+ in classifiers -** Bugfixes ** +### Bugfixes - Fixed textual representation for Dataset with no headers - Handle decimal types -0.11.3 (2016-02-16) -+++++++++++++++++++ +## 0.11.3 (2016-02-16) - Release fix. -0.11.2 (2016-02-16) -+++++++++++++++++++ +## 0.11.2 (2016-02-16) -**Bugfixes** +### Bugfixes - Fix export only formats. - Fix for xlsx output. -0.11.1 (2016-02-07) -+++++++++++++++++++ +## 0.11.1 (2016-02-07) -**Bugfixes** +### Bugfixes - Fixed packaging error on Python 3. -0.11.0 (2016-02-07) -+++++++++++++++++++ +## 0.11.0 (2016-02-07) -**New Formats!** +### New Formats! -- Added LaTeX table export format (``Dataset.latex``). -- Support for dBase (DBF) files (``Dataset.dbf``). +- Added LaTeX table export format (`Dataset.latex`). +- Support for dBase (DBF) files (`Dataset.dbf`). -**Improvements** +### 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. +- 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** +### Breaking Changes -- ``detect()`` function removed. +- `detect()` function removed. -**Bugfixes** +### Bugfixes - Fix XLSX import. -- Bugfix for ``Dataset.transpose().transpose()``. +- Bugfix for `Dataset.transpose().transpose()`. -0.10.0 (2014-05-27) -+++++++++++++++++++ +## 0.10.0 (2014-05-27) * Unicode Column Headers * ALL the bugfixes! -0.9.11 (2011-06-30) -+++++++++++++++++++ +## 0.9.11 (2011-06-30) * Bugfixes -0.9.10 (2011-06-22) -+++++++++++++++++++ +## 0.9.10 (2011-06-22) * Bugfixes -0.9.9 (2011-06-21) -++++++++++++++++++ +## 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`` +* `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) -++++++++++++++++++ +## 0.9.8 (2011-05-22) * OpenDocument Spreadsheet support (.ods) * Full Unicode TSV support -0.9.7 (2011-05-12) -++++++++++++++++++ +## 0.9.7 (2011-05-12) * Full XLSX Support! * Pickling Bugfix * Compat Module -0.9.6 (2011-05-12) -++++++++++++++++++ +## 0.9.6 (2011-05-12) -* ``seperators`` renamed to ``separators`` +* `seperators` renamed to `separators` * Full unicode CSV support -0.9.5 (2011-03-24) -++++++++++++++++++ +## 0.9.5 (2011-03-24) * Python 3.1, Python 3.2 Support (same code base!) * Formatter callback support @@ -122,8 +107,7 @@ History -0.9.4 (2011-02-18) -++++++++++++++++++ +## 0.9.4 (2011-02-18) * Python 2.5 Support! * Tox Testing for 2.5, 2.6, 2.7 @@ -132,16 +116,14 @@ History * Caved to community pressure (spaces) -0.9.3 (2011-01-31) -++++++++++++++++++ +## 0.9.3 (2011-01-31) * Databook duplication leak fix. * HTML Table output. * Added column sorting. -0.9.2 (2010-11-17) -++++++++++++++++++ +## 0.9.2 (2010-11-17) * Transpose method added to Datasets. * New frozen top row in Excel output. @@ -149,14 +131,12 @@ History * Support for row/column stacking. -0.9.1 (2010-11-04) -++++++++++++++++++ +## 0.9.1 (2010-11-04) * Minor reference shadowing bugfix. -0.9.0 (2010-11-04) -++++++++++++++++++ +## 0.9.0 (2010-11-04) * Massive documentation update! * Tablib.org! @@ -166,56 +146,48 @@ History * Internal Changes (Row object and use thereof) -0.8.5 (2010-10-06) -++++++++++++++++++ +## 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) -++++++++++++++++++ +## 0.8.4 (2010-10-04) * Updated XLS output: Only wrap if '\\n' in cell. -0.8.3 (2010-10-04) -++++++++++++++++++ +## 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) -++++++++++++++++++ +## 0.8.2 (2010-10-04) * Added alignment wrapping to written cells. * Added separator support to XLS. -0.8.1 (2010-09-28) -++++++++++++++++++ +## 0.8.1 (2010-09-28) * Packaging Fix -0.8.0 (2010-09-25) -++++++++++++++++++ +## 0.8.0 (2010-09-25) * New format plugin system! * Imports! ELEGANT Imports! * Tests. Lots of tests. -0.7.1 (2010-09-20) -++++++++++++++++++ +## 0.7.1 (2010-09-20) * Reverting methods back to properties. * Windows bug compensated in documentation. -0.7.0 (2010-09-20) -++++++++++++++++++ +## 0.7.0 (2010-09-20) * Renamed DataBook Databook for consistency. * Export properties changed to methods (XLS filename / StringIO bug). @@ -223,32 +195,29 @@ History * Added utf-8 on the worksheet level. -0.6.4 (2010-09-19) -++++++++++++++++++ +## 0.6.4 (2010-09-19) * Updated unicode export for XLS. * More exhaustive unit tests. -0.6.3 (2010-09-14) -++++++++++++++++++ +## 0.6.3 (2010-09-14) + * Added Dataset.append() support for columns. -0.6.2 (2010-09-13) -++++++++++++++++++ +## 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) -++++++++++++++++++ +## 0.6.1 (2010-09-12) * Packaging hotfixes. -0.6.0 (2010-09-11) -++++++++++++++++++ +## 0.6.0 (2010-09-11) * Public Release. * Export Support for XLS, JSON, YAML, and CSV. 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 + +[](https://jazzband.co/) +[](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). diff --git a/README.rst b/README.rst deleted file mode 100644 index 96344dc..0000000 --- a/README.rst +++ /dev/null @@ -1,182 +0,0 @@ -Tablib: format-agnostic tabular dataset library -=============================================== - -.. image:: https://jazzband.co/static/img/badge.svg - :target: https://jazzband.co/ - :alt: Jazzband - -.. image:: https://travis-ci.org/jazzband/tablib.svg?branch=master - :target: 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: :: - - 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[pandas] - -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/jazzband/tablib -.. _AUTHORS: http://github.com/jazzband/tablib/blob/master/AUTHORS @@ -48,8 +48,9 @@ setup( name='tablib', version=version, description='Format agnostic tabular data library (XLS, JSON, YAML, CSV)', - long_description=(open('README.rst').read() + '\n\n' + - open('HISTORY.rst').read()), + long_description=(open('README.md').read() + '\n\n' + + open('HISTORY.md').read()), + long_description_content_type="text/markdown", author='Kenneth Reitz', author_email='me@kennethreitz.org', url='http://python-tablib.org', |
