ITables ChangeLog#
2.2.4 (2024-12-07)#
Fixed
2.2.3 (2024-11-01)#
Fixed
Table footers continue to work when the notebook is exported to HTML (#331)
The dependencies of the Streamlit component have been updated (#327, #330)
Added
ITables is now tested with Python 3.13
2.2.2 (2024-09-29)#
Fixed
We have fixed a HTML pop up warning when displaying Pandas Style objects in Quarto (#317)
The dependencies of the Streamlit component have been updated (#323)
Added
We have documented how to use the
ITable
widget in a Shiny applicationWe have deployed a sample Shiny app (#276)
2.2.1 (2024-09-22)#
Fixed
We fixed an issue with the Streamlit component when
selected_rows
was not set.
2.2.0 (2024-09-22)#
Added
ITables has a Jupyter Widget (#267). Our widget was developed and packaged using AnyWidget which I highly recommend!
The selected rows are now available in the apps. Use either the
selected_rows
attribute of theITable
widget, the returned value of the Streamlitinteractive_table
component, or the{table_id}_selected_rows
input in Shiny (#208, #250)ITables works offline in Shiny applications too - just add
ui.HTML(init_itables())
to your application
Changed
The
tableId
argument ofto_html_datatable
has been renamed totable_id
Fixed
The dependencies of the Streamlit component have been updated (#320)
2.1.5 (2024-09-08)#
Fixed
DataTables was updated to its latest version (2.1.6)
We have added the DateTime extension, required by SearchTime when showing dates (#288)
We have improved the function that determines whether a dark theme is being used (#294)
We have adjusted the generation of the Polars sample dataframes to fix the CI (Polars-18130)
The test on the Shiny app fallbacks to
ui.nav_panel
whenui.nav
is not availableThe dependencies of the Streamlit component have been updated (#313, #315)
2.1.4 (2024-07-03)#
Fixed
We have fixed an OverflowError (can’t convert negative int to unsigned) when displaying Polars DataFrames that contain unsigned integers (#299)
2.1.3 (2024-06-22)#
Fixed
We have improved the detection of large integers in the context of Polars DataFrames (#291)
2.1.2 (2024-06-19)#
Changed
The default CSS contains now has
overflow:auto
ondiv.dt-layout-table>div
. Thanks to this we now get an automatic horizontal scrolling in Jupyter, Jupyter Book and also Streamlit if the table is too wide (#282).
Fixed
The dependencies of the Streamlit components have been updated to fix a vulnerability in
ws
(Alert 1)
2.1.1 (2024-06-08)#
Fixed
We have added an explicit
encoding
argument in the calls toread_text
to address an issue seen on Windows (#252).We have adjusted the codecov settings (#280)
Changed
We have added a default css on
dt-container
equal to{max-width:100%}
.We have updated
datatables.net-dt
to2.0.8
, and included the column visibility button in thedt_for_itables
package (#284)
2.1.0 (2024-05-27)#
Added
ITables works with Streamlit (#270)
Changed
ITables now uses the
src
layout (#246) - many thanks to Mahendra Paipuri for his help on this topic!We have updated
dt_for_itables
’ dependencies todatatables.net-dt==2.0.7
anddatatables.net-select-dt==2.0.2
(#273)We have updated the pre-commit hooks used in the project (#268)
2.0.1 (2024-04-30)#
Added
We have added a logo for ITables (#257)
The loading message gives more information, including the version of ITables and where DataTables is loaded from (#258)
Changed
We have updated
DataTables
to2.0.5
and its extensions to their latest version (#260)maxBytes
can now be a string. Its default value remains unchanged at64KB
(#239)
Fixed
2.0.0 (2024-03-16)#
Added
The CSV, Excel and Print buttons are now included (#50, #155)
We have included a few other extensions like SearchBuilder and SearchPanes and documented how to add more (#178, #207, #208, #231)
ITables is now tested with Python 3.12
Changed
1.7.1 (2024-03-05)#
Fixed
Added
We have added a check to make sure any
tableId
provided by the user is valid (#233)
1.7.0 (2024-02-09)#
Added
ITables works well with Quarto. We have added Quarto examples to the documentation. We set
data-quarto-disable-processing="true"
on the tables that are generated withuse_to_html=False
and thus can’t be processed by Quarto (#179)
Fixed
ITables works when you duplicate a notebook (#222)
We use
df.isetitem(i, ...)
rather thandf.iloc[:,i] = ...
to avoid a warning with Pandas 2.2.0 (#223)
Changed
We have changed how datatables.net is loaded. This is expected to improve the VSCode experience (#216)
We have removed legacy Python 2 code.
1.6.4 (2024-02-03)#
Fixed
Complex table footers are now in the correct order (#219)
We have adjusted the test suite for
pandas==2.2.0
(#223, pandas-57229, pandas-55080)
1.6.3 (2023-12-10)#
Changed
HTML in table columns is supported (#213)
1.6.2 (2023-10-07)#
Fixed
We have removed an indirect dependency on
jinja2
caused by the Pandas style objects (#202)
1.6.1 (2023-10-01)#
Fixed
We have fixed an issue when rendering Pandas style objects in Google Colab (#199)
1.6.0 (2023-09-30)#
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)
1.5.4 (2023-08-18)#
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.
1.5.3 (2023-06-11)#
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
1.5.2 (2023-03-26)#
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
1.5.1 (2023-03-12)#
Fixed
Empty Polars DataFrame are now rendered correctly (#167)
1.5.0 (2023-03-11)#
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
1.4.6 (2023-01-31)#
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).
1.4.5 (2023-01-23)#
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
1.4.4 (2023-01-15)#
Fixed
1.4.3 (2023-01-14)#
Changed
When a table is made of only a few rows, we display just the table (not the search box, pagination control, etc)
1.4.2 (2022-12-23)#
Fixed
1.4.1 (2022-12-04)#
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
1.4.0 (2022-12-04)#
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).
1.3.5 (2022-11-12)#
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).
1.3.4 (2022-11-07)#
Fixed
We have removed
scrollX = True
which was causing issues with non-wide tables (#110). Instead, we now usestyle = "width:auto"
.
1.3.3 (2022-11-06)#
Changed
We have added
scrollX = True
to the default options to make the rendering of wide tables more similar to Pandas.
1.3.2 (2022-11-06)#
Fixed
We have reimplemented the function that encodes the Pandas dataframes to JSON to avoid triggering FutureWarnings when using
pandas>=1.5
(#107).
1.3.1 (2022-11-05)#
Added
The
show
method has a newcss
argument (defaults toitables.options.css
) (#104).
1.3.0 (2022-09-04)#
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)
1.2.0 (2022-08-15)#
Added
1.1.3 (2022-08-11)#
Fixed
Tables with duplicated column names are now supported, thanks to Antonio Commisso’s fix (#89)
1.1.2 (2022-06-30)#
Changed
Tables with many rows are preferentially downsampled on rows, while tables with many columns are preferentially downsampled on columns (#84)
1.1.1 (2022-06-23)#
Fixed
Added missing
column_filters
package data.
1.1.0 (2022-06-23)#
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.
1.0.0 (2022-06-22)#
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
0.4.7 (2022-04-13)#
Added
Additional
tags
like e.g. captions are supported (#10).
0.4.6 (2022-03-29)#
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)
0.4.5 (2022-01-25)#
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%
.
0.4.4 (2022-01-10)#
Fixed
Add ‘require_config.js’ to the pip package (#48)
0.4.3 (2022-01-08)#
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.
0.4.2 (2022-01-07)#
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.
0.4.1 (2022-01-06)#
Fixed
Long column names don’t overlap anymore (#28)
0.4.0 (2022-01-06)#
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
0.3.1 (2021-12-24)#
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
0.3.0 (2020-12-14)#
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.
0.2.2 (2020-10-01)#
Fixed
Pandas’
display.max_columns
can beNone
, by Arthur Deygin (#14)
0.2.1 (2019-11-21)#
Added
Animated screenshot in README
Fixed
0.2.0 (2019-11-20)#
Added
Large tables are downsampled (#2)
Changed
Javascript code moved to Javascript files
Fixed
Tables with many columns are now well rendered (#5)
0.1.0 (2019-04-23)#
Initial release