We have removed an indirect dependency on
jinja2caused by the Pandas style objects (#202)
We have fixed an issue when rendering Pandas style objects in Google Colab (#199)
We do not generate timedeltas in the sample dataframes when using
pandas==2.1as this fails (pandas-55080)
Fixed an OverflowError when displaying Polar tables containing unsigned integers (#192)
We have refactored the GitHub Action workflows. Python 2 was removed since it is not supported anymore.
We fixed an interaction issue with other ui elements in Shiny apps - use
from itables.shiny import DT(#181)
We fixed the rendering of some empty dataframes
If a downsampling occurs, the downsampling message is displayed even if the table only has a few rows
We have added a CI configuration where we test
pandasin pre-release versions
Empty Polars DataFrame are now rendered correctly (#167)
Polars DataFrames are supported (#159)
We have added an example to show how to include images in tables (#158)
We have updated the pre-commit hooks
We have added a new
Fixed an issue when
lengthMenuis a 2D array (#151)
We make sure that no argument passed to
showis equal to
None(for all tested options, passing
Noneresults in a datatable that never loads)
Running the test collection will not update the CSV files used for testing anymore
When a table is made of only a few rows, we display just the table (not the search box, pagination control, etc)
We have added
setuptools.build_metaas the build backend in
We have fixed a typo in
We have updated the development status of the project to Production/Stable
We have fixed a compatibility issue with old versions of pandas
We have added a test to make sure that timezones are preserved
requestswas added as a build dependency (#123)
Duplicated column and index names are supported (#134)
The examples in the documentation are now executed as part of the test suite to increase the coverage.
We have added a new
captionargument to the
showfunction to make it easier to add captions on tables.
We have changed the default table to
style = "table-layout:auto;width:auto;margin:auto"to fix an issue on the width of index columns (default
The default classes applied to datatables are now
We have changed the default order to
order = i.e. we don’t sort anymore the table, even when the index is monotonic, to fix an issue in the order of categories (#135)
We have set an explicit
maxRows = 0and also increased
200(instead of Pandas’ default at 20).
pandas.io.formats.format.format_arrayto format non-trivial dtypes (as in
The downsampling of large tables is faster. We have also added a new function
generate_random_dfto generate large tables on demand (#113)
We don’t raise a warning anymore when a table is downsampled. Instead, we add this information to the table summary (#114)
We have added support for Python 2 (#115).
We have removed
scrollX = Truewhich was causing issues with non-wide tables (#110). Instead, we now use
style = "width:auto".
We have added
scrollX = Trueto the default options to make the rendering of wide tables more similar to Pandas.
We have reimplemented the function that encodes the Pandas dataframes to JSON to avoid triggering FutureWarnings when using
showmethod has a new
cssargument (defaults to
The order of rows is preserved by default (unless you explicitly pass an
Nullable types (bool, int) are now supported (#98)
Tables with duplicated column names are now supported, thanks to Antonio Commisso’s fix (#89)
Tables with many rows are preferentially downsampled on rows, while tables with many columns are preferentially downsampled on columns (#84)
showfunction have a new
column_filtersargument to display individual column search boxes (#69)
We have documented DataTables’
We have introduced a new class
The documentation is formatted with
blackthanks to a Jupytext & Black pre-commit hook.
ITables uses the ESM version 1.12.1 of datatables.net
tagslike e.g. captions are supported (#10).
We now use
pyupgradein our pre-commit hooks
We have improved the rendering of multiindex columns (#63)
itablesdocumentation now uses Jupyter Book (#56)
We have added a new
show, with a default value equal to
Add ‘require_config.js’ to the pip package (#48)
When a JS function is created on the Python side, we export it as-is (without quotes) in the HTML file and don’t use JS eval anymore.
Fix the HTML output when
Display “Loading…” under the table header until the table is displayed with datatables.net
init_notebook_mode(all_interactive=False)restores the original Pandas HTML representation.
Long column names don’t overlap anymore (#28)
itablesalso works in Jupyter Lab, Colab, VS Code and PyCharm (#3, #4, #26, #40), as we load the
datatables.netlibrary with an ES import when
require.jsis not available. Many thanks to François Wouts for his precious help!
itables.options) has a new argument
eval_functions. When set to
True, the nested strings passed to
datatables.netthat start with
The HTML code for the datatables.net representation of the table is generated with an HTML template.
We use f-strings and thus require Python >= 3.6
We fixed an issue (
jquerynot found) with the HTML export when using
We documented how to change the default ordering of rows - with the
We documented how to load
requirein Jupyter Lab (#3)
The main branch for the project is
datatablesto 1.11.3 and
itablesnow has an explicit
init_notebook_modefunction, which inserts the datatables.net library in the notebook. Use
init_notebook_mode(all_interactive=True)to display all the pandas object as interactive tables. This fixes (#6) and (#17).
itablesuses GitHub Actions for the CI.
itablesis tested with Python 3.9 as well.
None, by Arthur Deygin (#14)
Animated screenshot in README
Large tables are downsampled (#2)
Tables with many columns are now well rendered (#5)