This release focuses on performance, in particular against large tables, and introduces some minor breaking changes for CSS styling in Datasette plugins.
- Removed the unit conversions feature and its dependency, Pint. This means Datasette is now compatible with the upcoming Python 3.13. (#2400, #2320)
- The
datasette --pdb
option now uses the ipdb debugger if it is installed. You can install it usingdatasette install ipdb
. Thanks, Tiago Ilieve. (#2342) - Fixed a confusing error that occurred if
metadata.json
contained nested objects. (#2403) - Fixed a bug with
?_trace=1
where it returned a blank page if the response was larger than 256KB. (#2404) - Tracing mechanism now also displays SQL queries that returned errors or ran out of time. datasette-pretty-traces 0.5 includes support for displaying this new type of trace. (#2405)
- Fixed a text spacing with table descriptions on the homepage. (#2399)
- Performance improvements for large tables:
- Suggested facets now only consider the first 1000 rows. (#2406)
- Improved performance of date facet suggestion against large tables. (#2407)
- Row counts stop at 10,000 rows when listing tables. (#2398)
- On table page the count stops at 10,000 rows too, with a "count all" button to execute the full count. (#2408)
- New
.dicts()
internal method on Results that returns a list of dictionaries representing the results from a SQL query: (#2414)rows = (await db.execute("select * from t")).dicts()
- Default Datasette core CSS that styles inputs and buttons now requires a class of
"core"
on the element or a containing element, for example<form class="core">
. (#2415) - Similarly, default table styles now only apply to
<table class="rows-and-columns">
. (#2420)