v0.9.0
Changelog
All notable changes to this project will be documented in this file.
Unreleased
0.9.0 - 2024-07-23
- Adds a PolarsBackend implementation of DataTableBackend. You must have
polars
installed to use the PolarsBackend. You can install it using thepolars
extra for this package. - Fixes a crash from the ArrowBackend when attempting to instantiate negative datetimes after a timezone conversion.
0.8.0 - 2024-07-10
- Fixes a crash when cell contents contained bad Rich Markdown (tconbeer/harlequin#569).
- Improves the appearance of data tooltips.
0.7.1 - 2024-02-09
- Adds a
backend.source_data
property to exposue the underlying Arrow table, before slicing.
0.7.0 - 2024-02-07
Breaking Changes
- Removes the NumpyBackend (#78).
Features
- Values are now formatted based on their type. Numbers have separators based on the locale, and numbers, dates/times/etc., and bools are right-aligned (#70).
Bug Fixes
- Fixes bug that caused either a crash or an empty table from initializing a table
from_records
orfrom_pydict
with mixed (widening or narrowing) types in one column.
0.6.3 - 2024-01-09
Bug Fixes
- Widens acceptable types for create_backend to accept a sequence of any iterable, not just iterables that are instances of typing.Iterable.
0.6.2 - 2024-01-08
Bug Fixes
- Adds the tzdata package as a dependency for Windows installs, since Windows does not ship with a built-in tzdata database.
0.6.1 - 2024-01-05
Bug Fixes
- Fixes the behavior of tab and shift+tab to cycle to the next/prev row if at the end/start of a row or table.
- Fixes a crash from pressing ctrl+c when the cursor type is column.
0.6.0 - 2024-01-05
Features
- Adds keybindings for navigating the cursor in the data table. ctrl+right/left/up/down/home/end (with shift variants), tab, shift+tab, ctrl+a now all do roughly what they do in Excel (if the cursor type is
range
).
0.5.1 - 2024-01-05
Bug Fixes
- Adds a dependency on pytz for Python <3.9 for timezone support.
- Fixes a bug where Arrow crashes while casting timestamptz to string (tconbeer/harlequin#382).
Performance
- Vectorizes fallback string casting for datatypes unsupported by
pc.cast
(#8)
0.5.0 - 2023-12-21
Features
- Adds a
range
cursor type that will highlight a range of selected cells, like Excel. - ctrl+c now posts a
SelectionCopied
message, with a values attribute that conttains a list of tuples of values from the data table. - Adds a
max_column_content_width
parameter to DataTable. If set, DataTable will truncate values longer than the width, but show the full value in a tooltip on hover.
0.4.1 - 2023-12-14
- Fixes a crash caused by calling
create_backend
with an empty sequence.
0.4.0 - 2023-11-14
Breaking API Changes
- When calling
create_backend
with a sequence of iterables, the default behavior now assumes the data does not contain headers. You can restore the old behavior withcreate_backend(has_headers=True)
. - When calling
DataTable(data=...)
with a sequence of iterables, the first row is treated as a header only ifcolumn_labels
is not provided.
0.3.0 - 2023-11-11
Features
- The DataTable now accepts a
max_rows
kwarg; if provided, backends will only store the firstmax_rows
and the DataTable will only presentmax_rows
. The original row count of the data source is available as DataTable().source_row_count (tconbeer/harlequin#281).
API Changes
- Backends must now accept a
max_rows
kwarg on initialization.
0.2.1 - 2023-11-10
Bug Fixes
- Tables with the ArrowBackend no longer display incorrect output when column labels are duplicated (#26).
0.2.0 - 2023-11-08
Features
- Adds a
null_rep: str
argument when initializing the data table; this string will be used to replace missing data. - Adds a
NumpyBackend
that uses Numpy Record Arrays; this backend is marginally slower than theArrowBackend
in most scenarios (#23).
Bug Fixes
- Fixes a crash when using
ArrowBackend.from_records(has_header=False)
.
Performance
- Drastically improves performance for tables that are much wider than the viewport (#12).
Benchmarks
- Improves benchmarks to exclude data load times, disable garbage collection, and include more information about first paint and scroll performance.
0.1.4 - 2023-11-06
- Fixes a crash when computing the widths of columns with no rows (#19).
0.1.3 - 2023-10-09
- Fixes a crash when creating a column from a null or complex type.
0.1.2 - 2023-10-02
0.1.1 - 2023-09-29
- Fixes a crash when rows were added to an empty table.
0.1.0 - 2023-09-29
- Initial release. Adds DataTable and ArrowBackend, which is 1000x faster for datasets of 500k records or more.