- Add support for Python 3.13 (#592)
- Drop support for EOL Python 3.8 (#598)
- Add styling to datetime, date and time values for ODS (#594)
- Add styling for date/time types for XLS (#596)
- Fix time and datetime export in ODS format (#595)
- Avoid normalizing input twice in
import_set
/book
(#591)
- Fix broken installs with pip failing to resolve the request for
tablib[html]
in some cases (#588).
- It's now possible to access a dataset row using its index without slicing (#24).
- The dataset
transpose()
method can be called on datasets without headers. - The html format now supports importing from HTML content (#243)
- The ODS format now supports importing from .ods files (#567). The support is still a bit experimental.
- When adding rows to a dataset with dynamic columns, it's now possible to provide only static values, and dynamic column values will be automatically calculated and added to the row (#572).
- The html export format does not depend on MarkupPy any longer, therefore the tablib[html] install target was removed also.
- Fix crash when loading a databook from an XLS file (#522).
None
Python values are now converted to the empty string by the ODS formatter.- When applying formatters, the internal data is no longer mutated (#578).
- Columns can be inserted even when a dataset has headers but no values (#583).
- Add support for Python 3.12 (#550)
- Drop support for EOL Python 3.7 (#551)
- Allow importing 'ragged' .xlsx files through dataset (#547)
- Release: replace deprecated
repository_url
withrepository-url
(#545)
- Move setup to
pyproject.toml
(#542) - xlsx export: remove redundant code (#541)
- xlsx export: support escape of formulae (#540)
- Add <tbody> tags to HTML output (#539)
- Check for type list and improve error msg (#524)
- Fix bug when yaml file is empty (#535)
- Fix linting issues raised by Flake8 (#536)
- Add support for Python 3.11 (#525).
- ODS export: integers/floats/decimals are exported as numbers (#527).
- Support solo CR in text input imports (#518).
- Dropped Python 3.6 support (#513).
- Corrected order of arguments to a regex call in
safe_xlsx_sheet_title
(#510).
- Add support for Python 3.10 (#504).
- The csv, xls, and xlsx formats gained support for the
skip_lines
keyword argument for theirimport_set()
method to be able to skip the nth first lines of a read file (#497).
- Avoided mutable parameter defaults (#494).
- Specify build backend for editable installs (#501).
- Doubled sample size passed to
csv.Sniffer()
in_csv.detect()
(#503).
- Dropped Python 3.5 support.
- JSON-exported data is no longer forced to ASCII characters.
- YAML-exported data is no longer forced to ASCII characters.
- Added Python 3.9 support.
- Added read_only option to xlsx file reader (#482).
- Prevented crash in rst export with only-space strings (#469).
- The
Row.lpush/rpush
logic was reversed.lpush
was appending whilerpush
andappend
were prepending. This was fixed (reversed behavior). If you counted on the broken behavior, please update your code (#453).
- Fixed minimal openpyxl dependency version to 2.6.0 (#457).
- Dates from xls files are now read as Python datetime objects (#373).
- Allow import of "ragged" xlsx files (#465).
- When importing an xlsx file, Tablib will now read cell values instead of formulas (#462).
- Upcoming breaking change in Tablib 2.0.0: the
Row.lpush/rpush
logic is reversed.lpush
is appending whilerpush
andappend
are prepending. The broken behavior will remain in Tablib 1.x and will be fixed (reversed) in Tablib 2.0.0 (#453). If you count on the broken behavior, please update your code when you upgrade to Tablib 2.x.
- Tablib is now able to import CSV content where not all rows have the same length. Missing columns on any line receive the empty string (#226).
- Dropped Python 2 support
- Dependencies are now all optional. To install
tablib
as before with all possible supported formats, runpip install tablib[all]
- Formats can now be dynamically registered through the
tablib.formats.registry.refister
API (#256). - Tablib methods expecting data input (
detect_format
,import_set
,Dataset.load
,Databook.load
) now accepts file-like objects in addition to raw strings and bytestrings (#440).
- Fixed a crash when exporting an empty string with the ReST format (#368)
- Error cells from imported .xls files contain now the error string (#202)
- The 0.14.x series will be the last to support Python 2
- Dropped Python 3.4 support
- 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
- 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)
- 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
- Favor
Dataset.export(<format>)
overDataset.<format>
syntax in docs - Make Panda dependency optional
- Add initial Panda DataFrame support
- Dropped Python 2.6 support
- Use
yaml.safe_load
for importing yaml.
- Use built-in
json
package if available - Support Python 3.5+ in classifiers
- Fixed textual representation for Dataset with no headers
- Handle decimal types
- Release fix.
- Fix export only formats.
- Fix for xlsx output.
- Fixed packaging error on Python 3.
- Added LaTeX table export format (
Dataset.latex
). - Support for dBase (DBF) files (
Dataset.dbf
).
- 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).
detect()
function removed.
- Fix XLSX import.
- Bugfix for
Dataset.transpose().transpose()
.
- Unicode Column Headers
- ALL the bugfixes!
- Bugfixes
- Bugfixes
- 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
, andlpush_col
- OpenDocument Spreadsheet support (.ods)
- Full Unicode TSV support
- Full XLSX Support!
- Pickling Bugfix
- Compat Module
seperators
renamed toseparators
- Full unicode CSV support
- Python 3.1, Python 3.2 Support (same code base!)
- Formatter callback support
- Various bug fixes
- Python 2.5 Support!
- Tox Testing for 2.5, 2.6, 2.7
- AnyJSON Integrated
- OrderedDict support
- Caved to community pressure (spaces)
- Databook duplication leak fix.
- HTML Table output.
- Added column sorting.
- Transpose method added to Datasets.
- New frozen top row in Excel output.
- Pickling support for Datasets and Rows.
- Support for row/column stacking.
- Minor reference shadowing bugfix.
- 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)
- New import system. All dependencies attempt to load from site-packages, then fallback on tenderized modules.
- Updated XLS output: Only wrap if '\n' in cell.
- Ability to append new column passing a callable as the value that will be applied to every row.
- Added alignment wrapping to written cells.
- Added separator support to XLS.
- Packaging Fix
- New format plugin system!
- Imports! ELEGANT Imports!
- Tests. Lots of tests.
- Reverting methods back to properties.
- Windows bug compensated in documentation.
- 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.
- Updated unicode export for XLS.
- More exhaustive unit tests.
- Added Dataset.append() support for columns.
- Fixed Dataset.append() error on empty dataset.
- Updated Dataset.headers property w/ validation.
- Added Testing Fixtures.
- Packaging hotfixes.
- Public Release.
- Export Support for XLS, JSON, YAML, and CSV.
- DataBook Export for XLS, JSON, and YAML.
- Python Dict Property Support.