Releases: posit-dev/great-tables
Releases ยท posit-dev/great-tables
v0.21.0: add `cols_merge()`, `cols_label_with()`, `opt_css()`
Deprecations
- The
opt_all_caps()method now usesloc.column_labels,loc.stub, andloc.row_groupsas arguments tolocations=; using strings to represent the locations still works but triggers a deprecation warning (#436)
Features
- Added the
cols_merge()method for combining cell contents across two or more columns by @rich-iannone in #780 - Added the
cols_label_with()method for function-based column relabeling by @machow in #816 - Added the
fmt_engineering()method by @rich-iannone in #786 - The new
opt_css()method lets you define arbitrary CSS rules for an HTML table by @rich-iannone in #775 - Added the ability to define container padding in
tab_options()by @thriller08 in #802
Fixes
- Refactored internal auto-align code for compatibility with Pandas 3.0.0 by @machow in #810
- Added
intto theRowSelectExprdefinition by @tylerriccio33 in #800 - Updated the Polars selector type annotation to use
Selectorby @schmidma in #770 - Annotated the
pipemethod's first argument type asGTby @FBruzzesi in #757 - We now correctly handle the
interactive_data_values=properly in Nanoplots by @lorenzo-w in #792 - Group labels are now modified when
render_formats()is called by @juleswg23 in #769 - The
opt_all_caps()method has been refactored by @jrycw in #436
Docs
- Docs for the
val_fmt_engineering()were added to the project website docs by @jrycw in #808 - Corrected the
fns=parameter docs in thefmt()method by @rich-iannone in #818 - Improved the docs for the
from_column()function by @jrycw in #766 - Added a gt-extras example to the project website's Examples page by @juleswg23 in #759
- Added an example demonstrating usage of the
define_units()function by @jrycw in #446
Chores
- Updated the copyright end year to 2026 by @rich-iannone in #804
- Several typos were fixed by @kianmeng in #798
- Added Plausible analytics to the project website by @rich-iannone in #806
- Added several tests for the
opt_all_caps()method by @rich-iannone in #812 - Fixed the checkout version tag by @juleswg23 in #768
New Contributors
- @kianmeng made their first contribution in #798
- @thriller08 made their first contribution in #802
- @schmidma made their first contribution in #770
- @lorenzo-w made their first contribution in #792
Full Changelog: v0.20.0...v0.21.0
v0.20.0
Features
- Add
grand_summary_rows()method by @juleswg23 in #765 - Support polars expressions in vals functions by @machow in #793
Full Changelog: v0.19.0...v0.20.0
v0.19.0
Fixes
- Code using the NumPy library was replaced with standard Python to enable the removal of NumPy from the dependencies list, by @tylerriccio33 in #749
- An error when setting
groupname_col=withoutrowname_col=in theGTconstructor has been fixed by @juleswg23 in #756 - Using
row_group_as_column = Truenow structures row groups as a column in the stub (previously, this was a no-op), by @juleswg23 in #754 - The
data_color()method now takes the alpha value for the cell background color into account when choosing the foreground text color (fixes the internal_ideal_fgnd_color()util function), by @juleswg23 in #747 - When enabling row striping, there is now better color contrast between the text and the underlying cell background, by @juleswg23 in #745
- We now internally access column names consistently through
get_column_names()instead of.columns, by @FBruzzesi in #736 - Column values with the
pyarrowfloat64type are now right-aligned to match the default behavior when using Pandas and Polars DFs, by @FBruzzesi in #734 - We now avoid the double use of
clearinternally with Polars DFs, by @FBruzzesi in #729
Docs
- Various typos were corrected by @FBruzzesi in #730
- We now include a Posit badge in the header of the project website, by @rich-iannone in #777
Chores
- Refactoring was done to better adhere to best practices and to improve code performance, by @FBruzzesi in #731
New Contributors
- @FBruzzesi made their first contribution in #731
Full Changelog: v0.18.0...v0.19.0
v0.18.0
What's Changed
Features
- The new
tab_spanner_delim()method allows for quick creation of spanners through delimited column names, by @machow in #647 - Added the
cols_label_rotate()method for rotating column label text 90 degrees, by @juleswg23 in #696 - We can now easily format boolean values with the new
fmt_tf()formatting method, by @rich-iannone (#665, #704) - The
fmt_datetime()method now lets you perform custom datetime formatting with the newformat_str=parameter, by @rich-iannone in #645 - GT tables can now be pickled, by @jrycw in #641
- The
fmt_currency()method gained acompact=parameter for display of compact currency values (e.g.,$13.4M), by @rich-iannone in #664 - Added the
truncate=option todata_color()by @mahdibaghbanzadeh in #673 - The Pandas dependency in
vals.fmt_integer()was removed by @machow in #719
Fixes
- Remove unused
sep_mark=parameter from thefmt_scientific()method by @rich-iannone in #642 - Fixed an off-by-one bug in the
rescale_factor()utility function (which had an adverse effect ondata_color()), by @juleswg23 in #718 - When using Google Fonts in an HTML table there will no longer be any duplicated font import statements, by @rich-iannone in #708
- An issue with row striping (due to incorrect indexing) was resolved by @juleswg23 in #701
- Spanners can now be correctly styled with
tab_style(), by @ChristopherRussell in #695
Docs
- Added note about using
.show("browser")when in VS Code by @rich-iannone in #643 - A warning message from
cols_width()that appeared in the docs is now suppressed, by @jrycw in #659 - Updated docstrings for date/time formatting methods, by @rich-iannone in #658
- We now use improved the interlinking functionality available in quartodoc, by @rich-iannone in #697
- In the documentation site, added an underline to active link in top navigation bar by @rich-iannone in #706
- Improved the documentation for the
as_raw_html()method by @rich-iannone in #707 - We now better introduce the use of
show()method in the docs through a callout, by @rich-iannone in #712
Chores
New Contributors
- @dpprdan made their first contribution in #670
- @juleswg23 made their first contribution in #696
- @ChristopherRussell made their first contribution in #695
- @mahdibaghbanzadeh made their first contribution in #673
Full Changelog: v0.17.0...v0.18.0
v0.17.0: unique html IDs, `css-inline` package optional
Breaking changes
- Ensure HTML ID attributes are unique by @BenGale93 in #607
- Move
css-inlinepkg to extra group by @rich-iannone in #634
Features
- Quarto option to disable table processing, warn on render by @machow in #611
- Add
cols_unhide()method by @jrycw in #629 - Add
inline_css=argument by @tylerriccio33 in #633
Fixes
- Ensure HTML ID attributes are unique by @BenGale93 in #607
- Move
css-inlinepkg to extra group by @rich-iannone in #634 - Do not always save screenshot as png by @machow in #599
- Resolve encoding issue in
GT.save()by @jrycw in #609 - Correctly pass non-ints to nanoplot options by @tylerriccio33 in #608
- Scientific notation zero padding when
exp_style=used by @rich-iannone in #622- e.g. numbers like
"2.3E-03"were incorrectly displayed as"2.3Eโ30".
- e.g. numbers like
- Update conditional statement in nanoplot code to guard against string values (single string or list containing any strings) by @rich-iannone in #623
Docs
- Update the related docs about
mask=parameter inloc.body()by @jrycw in #589 - Update the preview of
yearcol ingtcarsdataset by @jrycw in #587 - Add examples to the documentation by @jrycw in #618
- Add
style.cssentry to API reference docs by @rich-iannone in #624 - Align getting started guide with readme by @zachvalenta in #627
Chores
- Use deploy-pypi environment by @machow in #590
- Added a environment deployment protection rule. We now have to review the release workflow.
New Contributors
- @tylerriccio33 made their first contribution in #608
- @BenGale93 made their first contribution in #607
- @zachvalenta made their first contribution in #627
Full Changelog: v0.16.1...v0.17.0
v0.16.1
Fixes
- Update dtype of
yearcol ingtcarsdataset by @rich-iannone in #586
Full Changelog: v0.16.0...v0.16.1
v0.16.0
Features
- Add the
mask=argument toLocBodyto enable enhanced body cell targeting by @jrycw in #566 - Include
write_raw_html()as a helper function for easier HTML output by @jrycw in #485
Fixes
- Fix the deprecation warning in
as_raw_html()for Python 3.13 by @stinodego in #563 - Support the
pl.UInttype in nanoplots by @jrycw in #577
Docs
- Add pyOpenSci and DOI badges to
README.mdto acknowledge the successful peer-review of the package by @rich-iannone in #576 - Update images and text around included datasets in the package by @rich-iannone in #562
- Replace JSON dataset with .ndjson file in coffee sales examples to sidestep a serialization error by @rich-iannone in #580
New Contributors
- @stinodego made their first contribution in #563
Full Changelog: v0.15.0...v0.16.0
v0.15.0: add Experimental support for using a `pyarrow.Table` as input
Features
- There is now experimental support for using a
pyarrow.Tableas input by @amol- in #487 - The
fmt_flag()method has been added so that you can display flag icons based on country codes by @rich-iannone in #523 - With the new
fmt_icon()method, it's possible to have FontAwesome icons within table cells by @rich-iannone in #515 - The
fmt_number(),fmt_percent(),fmt_integer()andfmt_currency()methods can now format values in accounting notation by @rich-iannone in #513 - Tables can be written as CSS-inlined HTML strings via
as_raw_html()with the newinline_css=argument by @rich-iannone in #557 - The
save()method has been greatly enhanced and includes the ability to perform intermediate saves (since the method returns itself) by @jrycw in #499 - Enhance the
fmt_image()method to supporthttp/httpsschema in thecolumns=parameter by @jrycw in #520 - The
pipe()method has been added and it operates similarly to that of the Pandas and Polars APIs, by @jrycw in #363
Fixes
- Improve detection of Polars installation by @lukemanley in #505
- Add CI build for testing Python 3.13 by @glemaitre in #514
- Having hidden columns along with column width definitions no longer mangles HTML table output by @rich-iannone in #509
- Some
mypyerrors were fixed and the project was switched to ruff linting and formatting by @jrycw in #511 - The CI README badge now properly reports build status by @rich-iannone in #553
- Fix missing exception raise in
_val_is_numeric()and_val_is_str()by @jrycw in #510 - Standardize imports by converting absolute imports to relative imports by @jrycw in #521
- Exclude
if TYPE_CHECKING:lines from coverage reports by @rich-iannone in #556
Docs
- Include the
vals.fmt_image()function in the API reference by @jrycw in #486 - Make spelling fixes in the contributing guide by @glemaitre in #516
- Add information about Pandas requirement when using internal datasets by @rich-iannone (#549, #559)
- Add a
CITATION.cfffile and provide citation information in README by @rich-iannone in #551 - Update README with conda install instructions and some clarity on which environments Great Tables can be used in, by @rich-iannone in #552
- Improve presentation of Contributing Guidelines by @rich-iannone in #550
New Contributors
- @lukemanley made their first contribution in #505
- @glemaitre made their first contribution in #514
- @amol- made their first contribution in #487
Full Changelog: v0.14.0...v0.15.0
v0.14.0: add experimental support for LaTeX output
Features
- Experimental support for LaTeX-table rendering with new
.as_latex()method (see important information on current limitations in API reference at https://posit-dev.github.io/great-tables/reference/GT.as_latex.html) by @rich-iannone in #481
Docs
- The Reference API docs now have an improved presentation when viewed on lower-width devices by @machow (#427, #492)
- Preview sections have been added for the built-in datasets by @jrycw in #453
Full Changelog: v0.13.0...v0.14.0
v0.13.0: add more location specifiers to `loc`
Features
- Include
google_font()helper fn in API reference by @rich-iannone and @jrycw in (#464, #471) - Allow for granular section restyling via convenience api by @timkpaine in #341
- Add
val_fmt_image()to enable image rendering in various components by @jrycw in #451 - Allow passing a webdriver instance to save by @machow in #478
Fixes
Docs
- Do not document GT members inline on its reference page by @machow in #475
- Fix deprecated warning for
pl.DataFrame.pivot()by @jrycw in #472 - Update docs and code to support
GoogleFontinopt_table_font()and add tests by @jrycw in #470 - Fix in headers causing their css classes get printed out by @machow in #477
- Add docstrings for new location methods by @rich-iannone in #474
Full Changelog: v0.12.0...v0.13.0