Skip to content

Releases: posit-dev/great-tables

v0.21.0: add `cols_merge()`, `cols_label_with()`, `opt_css()`

03 Mar 18:21
9874b7c

Choose a tag to compare

Deprecations

  • The opt_all_caps() method now uses loc.column_labels, loc.stub, and loc.row_groups as arguments to locations=; 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 int to the RowSelectExpr definition by @tylerriccio33 in #800
  • Updated the Polars selector type annotation to use Selector by @schmidma in #770
  • Annotated the pipe method's first argument type as GT by @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 the fmt() 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

New Contributors

Full Changelog: v0.20.0...v0.21.0

v0.20.0

31 Oct 20:54
a59301b

Choose a tag to compare

Features

Full Changelog: v0.19.0...v0.20.0

v0.19.0

07 Oct 20:08
1624005

Choose a tag to compare

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= without rowname_col= in the GT constructor has been fixed by @juleswg23 in #756
  • Using row_group_as_column = True now 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 pyarrow float64 type 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 clear internally with Polars DFs, by @FBruzzesi in #729

Docs

Chores

  • Refactoring was done to better adhere to best practices and to improve code performance, by @FBruzzesi in #731

New Contributors

Full Changelog: v0.18.0...v0.19.0

v0.18.0

10 Jul 15:13
d163c3d

Choose a tag to compare

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 new format_str= parameter, by @rich-iannone in #645
  • GT tables can now be pickled, by @jrycw in #641
  • The fmt_currency() method gained a compact= parameter for display of compact currency values (e.g., $13.4M), by @rich-iannone in #664
  • Added the truncate= option to data_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 the fmt_scientific() method by @rich-iannone in #642
  • Fixed an off-by-one bug in the rescale_factor() utility function (which had an adverse effect on data_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

  • Added a no pandas dependency test of functions in the vals module by @machow in #689

New Contributors

Full Changelog: v0.17.0...v0.18.0

v0.17.0: unique html IDs, `css-inline` package optional

11 Mar 15:32
e01e682

Choose a tag to compare

Breaking changes

Features

Fixes

  • Ensure HTML ID attributes are unique by @BenGale93 in #607
  • Move css-inline pkg 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".
  • 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 in loc.body() by @jrycw in #589
  • Update the preview of year col in gtcars dataset by @jrycw in #587
  • Add examples to the documentation by @jrycw in #618
  • Add style.css entry 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

Full Changelog: v0.16.1...v0.17.0

v0.16.1

24 Jan 19:33
d9b4db6

Choose a tag to compare

Fixes

Full Changelog: v0.16.0...v0.16.1

v0.16.0

24 Jan 18:04
15b293e

Choose a tag to compare

Features

  • Add the mask= argument to LocBody to 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.UInt type in nanoplots by @jrycw in #577

Docs

  • Add pyOpenSci and DOI badges to README.md to 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

Full Changelog: v0.15.0...v0.16.0

v0.15.0: add Experimental support for using a `pyarrow.Table` as input

14 Dec 00:29
4043f14

Choose a tag to compare

Features

  • There is now experimental support for using a pyarrow.Table as 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() and fmt_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 new inline_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 support http/https schema in the columns= 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 mypy errors 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.cff file 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

Full Changelog: v0.14.0...v0.15.0

v0.14.0: add experimental support for LaTeX output

11 Nov 20:31
5913c57

Choose a tag to compare

Features

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`

04 Oct 19:45
e3acf4e

Choose a tag to compare

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

  • Resolve global locale not being respected in GT.fmt_*() functions by @jrycw in #473

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 GoogleFont in opt_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