Added
- Added support for Ibis tables (#215)
Changed
- HTML in table columns is supported (#213)
Fixed
- We have removed an indirect dependency on
jinja2
caused by the Pandas style objects (#202)
Fixed
- We have fixed an issue when rendering Pandas style objects in Google Colab (#199)
Added
- We have added support for Pandas style (#194)
Fixed
- We do not generate timedeltas in the sample dataframes when using
pandas==2.1
as this fails (pandas-55080)
Fixed
- Fixed an OverflowError when displaying Polar tables containing unsigned integers (#192)
Changed
- We have refactored the GitHub Action workflows. Python 2 was removed since it is not supported anymore.
Fixed
- 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
Fixed
- Integers that are too big for Javascript are converted to str (#152)
- If a downsampling occurs, the downsampling message is displayed even if the table only has a few rows
Added
- We have added a CI configuration where we test
itables
againstpandas
in pre-release versions
Fixed
- Empty Polars DataFrame are now rendered correctly (#167)
Fixed
- We have addressed the
window.initializeDataTable
is not a function error when a notebook is reloaded (#160, #163). Many thanks again to François Wouts for providing the right fix!
Added
- Polars DataFrames are supported (#159)
- We have added an example to show how to include images in tables (#158)
- We have added links and images (flags from https://flagpedia.net) to the sample countries df (#158).
Changed
- We have updated the pre-commit hooks
Added
- We have added a new
JavascriptCode
class to encapsulate JS Code. This will let the user set JS values for some options likecolumnDefs.render
(#154).
Fixed
- Fixed an issue when
lengthMenu
is a 2D array (#151)
Changed
- We make sure that no argument passed to
show
is equal toNone
(for all tested options, passingNone
results in a datatable that never loads) - Running the test collection will not update the CSV files used for testing anymore
Fixed
- We have added
numpy
to the dependencies,pytz
is an optional dependency (used in the sample dataframes only), and we do not depend onsix
anymore (#149) The build time dependenciespathlib
andrequests
are listed inpyproject.toml
(since #123,itables==1.4.0
)
Changed
- When a table is made of only a few rows, we display just the table (not the search box, pagination control, etc)
Fixed
- We make sure that the table content has the same number of columns as the header (#141)
- We have updated the documentation on column widths (#145)
Fixed
- We have added
setuptools.build_meta
as the build backend inpyproject.toml
(#142) - We have fixed a typo in
itables.options.style
Changed
- We have updated the development status of the project to Production/Stable
Fixed
- We have improved the support for dark themes by using the CSS from datatables.net in version 1.13.1 (#103)
- We have fixed a compatibility issue with old versions of pandas
- We have added a test to make sure that timezones are preserved
requests
was added as a build dependency (#123)- and the
flake8
pre-commit hook was fixed (#124) - thanks to Anselm Hahn for these two contributions! - Duplicated column and index names are supported (#134)
Added
- The examples in the documentation are now executed as part of the test suite to increase the coverage.
- We have added a new
caption
argument to theshow
function to make it easier to add captions on tables.
Changed
- 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 (defaultstyle
waswidth:auto
previously) (#130) - The default classes applied to datatables are now
["display", "nowrap"]
- 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 = 0
and also increasedmaxColumns
to200
(instead of Pandas' default at 20).
Fixed
- We use
pandas.io.formats.format.format_array
to format non-trivial dtypes (as initables<=1.3.1
) (#112) - The downsampling of large tables is faster. We have also added a new function
generate_random_df
to 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)
Added
- We have added support for Python 2 (#115).
Fixed
- We have removed
scrollX = True
which was causing issues with non-wide tables (#110). Instead, we now usestyle = "width:auto"
.
Changed
- We have added
scrollX = True
to the default options to make the rendering of wide tables more similar to Pandas.
Fixed
- We have reimplemented the function that encodes the Pandas dataframes to JSON
to avoid triggering FutureWarnings when using
pandas>=1.5
(#107).
Added
- The
show
method has a newcss
argument (defaults toitables.options.css
) (#104).
Changed
- The order of rows is preserved by default (unless you explicitly pass an
order
parameter) (#99).
Fixed
- Nullable types (bool, int) are now supported (#98)
Added
- New
to_html_datatable
function to export a DataFrame to an HTML div (#88) - We have added examples on how to use
itables
in Shiny for Python (#86)
Fixed
- Tables with duplicated column names are now supported, thanks to Antonio Commisso's fix (#89)
Changed
- Tables with many rows are preferentially downsampled on rows, while tables with many columns are preferentially downsampled on columns (#84)
Fixed
- Added missing
column_filters
package data.
Added
itables.options
and theshow
function have a newcolumn_filters
argument to display individual column search boxes (#69)- We have documented DataTables'
dom
option. - We have introduced a new class
JavascriptFunction
to limit the evaluation of Javascript function to selected ones. - The documentation is formatted with
black
thanks to a Jupytext & Black pre-commit hook.
Added
- ITables works offline! (#8, #70). Marc would like to thank Allan Jardine, the author of the datatables library, and François Wouts for their precious help on the subject.
Changed
- ITables uses the ESM version 1.12.1 of datatables.net
Added
- Additional
tags
like e.g. captions are supported (#10).
Changed
- We have removed the default column width at 70 pixels (#61, #62, #66)
- We now use
pyupgrade
in our pre-commit hooks
Fixed
- We have improved the rendering of multiindex columns (#63)
Changed
- The
itables
documentation now uses Jupyter Book (#56) - We have added a new
style
option initables.options
and inshow
, with a default value equal tomax-width:100%
.
Fixed
- Add 'require_config.js' to the pip package (#48)
Changed
- 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.
Fixed
- Fix the HTML output when
eval_functions=True
- 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.
Fixed
- Long column names don't overlap anymore (#28)
rFixed
- Now
itables
also works in Jupyter Lab, Colab, VS Code and PyCharm (#3, #4, #26, #40), as we load thedatatables.net
library with an ES import whenrequire.js
is not available. Many thanks to François Wouts for his precious help!
Changed
- The
show
function (anditables.options
) has a new argumenteval_functions
. When set toTrue
, the nested strings passed todatatables.net
that start withfunction
are converted to Javascript functions. - 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
Fixed
- We fixed an issue (
jquery
not found) with the HTML export when usingnbconvert>=6.0
(#21) - We documented how to change the default ordering of rows - with the
order
option (#30) - We documented how to load
require
in Jupyter Lab (#3)
Changed
- The main branch for the project is
main
rather thanmaster
- Updated
datatables
to 1.11.3 andjquery
to 3.5.1
Fixed
itables
now has an explicitinit_notebook_mode
function, which inserts the datatables.net library in the notebook. Useinit_notebook_mode(all_interactive=True)
to display all the pandas object as interactive tables. This fixes (#6) and (#17).
Changed
itables
uses GitHub Actions for the CI.
Added
itables
is tested with Python 3.9 as well.
Fixed
- Pandas'
display.max_columns
can beNone
, by Arthur Deygin (#14)
Added
- Animated screenshot in README
Fixed
- Add IPython to setup.py install_requires, by Jon Shao (#9)
Added
- Large tables are downsampled (#2)
Changed
- Javascript code moved to Javascript files
Fixed
- Tables with many columns are now well rendered (#5)
Initial release