From 08ee73556aaceeedfa1103a7a5f67e2333c7f85f Mon Sep 17 00:00:00 2001 From: Ted Conbeer Date: Thu, 31 Oct 2024 19:02:10 +0000 Subject: [PATCH] fix: do not cast None to str in ArrowBackend --- CHANGELOG.md | 1 + src/textual_fastdatatable/backend.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50e5966..fc33a51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file. ## [Unreleased] - Adds an optional parameter to DataTable to disable rendering of string data as Rich Markup. +- Fixes a bug where None could be casted to a string and displayed as "None" ([tconbeer/harlequin#658](https://github.com/tconbeer/harlequin/issues/658)) ## [0.9.0] - 2024-07-23 diff --git a/src/textual_fastdatatable/backend.py b/src/textual_fastdatatable/backend.py index ff57908..39f5db3 100644 --- a/src/textual_fastdatatable/backend.py +++ b/src/textual_fastdatatable/backend.py @@ -252,7 +252,10 @@ def from_pydict( except (pal.ArrowInvalid, pal.ArrowTypeError): # one or more fields has mixed types, like int and # string. Cast all to string for safety - new_data = {k: [str(val) for val in v] for k, v in data.items()} + new_data = { + k: [str(val) if val is not None else None for val in v] + for k, v in data.items() + } tbl = pa.Table.from_pydict(new_data) return cls(tbl, max_rows=max_rows)