Metadata-Version: 2.1
Name: tablib
Version: 0.14.0
Summary: Format agnostic tabular data library (XLS, JSON, YAML, CSV)
Home-page: https://tablib.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
Maintainer: Jazzband
Maintainer-email: roadies@jazzband.co
License: MIT
Description: # 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)
        [![codecov](https://codecov.io/gh/jazzband/tablib/branch/master/graph/badge.svg)](https://codecov.io/gh/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.)
        
        
        ## 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.org/project/tablib/)!
        
        
        ## Contribute
        
        Please see the [contributing guide](https://github.com/jazzband/tablib/blob/master/.github/CONTRIBUTING.md).
        
        
        # History
        
        ## 0.14.0 (2019-10-19)
        
        ### Deprecations
        
        - The 0.14.x series will be the last to support Python 2
        
        ### Breaking changes
        
        - Dropped Python 3.4 support
        
        ### Improvements
        
        - Added Python 3.7 and 3.8 support
        - The project is now maintained by the Jazzband team, https://jazzband.co
        - Improved format autodetection and added autodetection for the odf format.
        - Added search to all documentation pages
        - Open xlsx workbooks in read-only mode (#316)
        - Unpin requirements
        - Only install backports.csv on Python 2
        
        ### Bugfixes
        
        - Fixed `DataBook().load` parameter ordering (first stream, then format).
        - Fixed a regression for xlsx exports where non-string values were forced to
          strings (#314)
        - Fixed xlsx format detection (which was often detected as `xls` format)
        
        ## 0.13.0 (2019-03-08)
        
        - Added reStructuredText output capability (#336)
        - Added Jira output capability
        - Stopped calling openpyxl deprecated methods (accessing cells, removing sheets)
          (openpyxl minimal version is now 2.4.0)
        - Fixed a circular dependency issue in JSON output (#332)
        - Fixed Unicode error for the CSV export on Python 2 (#215)
        - Removed usage of optional `ujson` (#311)
        - Dropped Python 3.3 support
        
        ## 0.12.1 (2017-09-01)
        
        - Favor `Dataset.export(<format>)` over `Dataset.<format>` syntax in docs
        - Make Panda dependency optional
        
        ## 0.12.0 (2017-08-27)
        
        - Add initial Panda DataFrame support
        - Dropped Python 2.6 support
        
        ## 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
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
Description-Content-Type: text/markdown
Provides-Extra: pandas
