Simon Willison’s Weblog

Subscribe
Atom feed for datasette Random

1,535 posts tagged “datasette”

Datasette is an open source tool for exploring and publishing data.

2024

Datasette Public Office Hours, Friday Nov 8th at 2pm PT. Tomorrow afternoon (Friday 8th November) at 2pm PT we'll be hosting the first Datasette Public Office Hours - a livestream video session on Discord where Alex Garcia and myself will live code on some Datasette projects and hang out to chat about the project.

This is our first time trying this format. If it works out well I plan to turn it into a series.

Discord event card promoting Datasette Public Office Hours

# 7th November 2024, 7:10 pm / open-source, datasette, discord, alex-garcia, datasette-public-office-hours

Release datasette-examples 0.1a0 — Load example SQL scripts into Datasette on startup

Datasette 0.65. Python 3.13 was released today, which broke compatibility with the Datasette 0.x series due to an issue with an underlying dependency. I've fixed that problem by vendoring and fixing the dependency and the new 0.65 release works on Python 3.13 (but drops support for Python 3.8, which is EOL this month). Datasette 1.0a16 added support for Python 3.13 last month.

# 7th October 2024, 6:07 pm / projects, python, datasette

Release datasette 0.65 — An open source multi-tool for exploring and publishing data

django-plugin-datasette. I did some more work on my DJP plugin mechanism for Django at the DjangoCon US sprints today. I added a new plugin hook, asgi_wrapper(), released in DJP 0.3 and inspired by the similar hook in Datasette.

The hook only works for Django apps that are served using ASGI. It allows plugins to add their own wrapping ASGI middleware around the Django app itself, which means they can do things like attach entirely separate ASGI-compatible applications outside of the regular Django request/response cycle.

Datasette is one of those ASGI-compatible applications!

django-plugin-datasette uses that new hook to configure a new URL, /-/datasette/, which serves a full Datasette instance that scans through Django’s settings.DATABASES dictionary and serves an explore interface on top of any SQLite databases it finds there.

It doesn’t support authentication yet, so this will expose your entire database contents - probably best used as a local debugging tool only.

I did borrow some code from the datasette-mask-columns plugin to ensure that the password column in the auth_user column is reliably redacted. That column contains a heavily salted hashed password so exposing it isn’t necessarily a disaster, but I like to default to keeping hashes safe.

# 26th September 2024, 9:57 pm / django, plugins, projects, sqlite, datasette, djp

Release django-plugin-datasette 0.2 — Django plugin to run Datasette inside of Django
Release django-plugin-datasette 0.1 — Django plugin to run Datasette inside of Django
Release datasette-acl 0.4a4 — Advanced permission management for Datasette
Release datasette-acl 0.4a3 — Advanced permission management for Datasette

Datasette 1.0a16. This latest release focuses mainly on performance, as discussed here in Optimizing Datasette a couple of weeks ago.

It also includes some minor CSS changes that could affect plugins, and hence need to be included before the final 1.0 release. Those are outlined in detail in issues #2415 and #2420.

# 6th September 2024, 5:55 am / projects, datasette

Release datasette 1.0a16 — An open source multi-tool for exploring and publishing data
Release datasette-search-all 1.1.4 — Datasette plugin for searching all searchable tables at once

Calling LLMs from client-side JavaScript, converting PDFs to HTML + weeknotes

Visit Calling LLMs from client-side JavaScript, converting PDFs to HTML + weeknotes

I’ve been having a bunch of fun taking advantage of CORS-enabled LLM APIs to build client-side JavaScript applications that access LLMs directly. I also span up a new Datasette plugin for advanced permission management.

[... 2,050 words]

Release datasette-import 0.1a5 — Tools for importing data into Datasette
Release datasette-search-all 1.1.3 — Datasette plugin for searching all searchable tables at once
Release datasette-write 0.4 — Datasette plugin providing a UI for executing SQL writes against the database
Release datasette-debug-events 0.1a0 — Print Datasette events to standard error
Release datasette-auth-passwords 1.1.1 — Datasette plugin for authentication using passwords
Release datasette-enrichments 0.4.3 — Tools for running enrichments against data stored in Datasette
Release datasette-configure-fts 1.1.4 — Datasette plugin for enabling full-text search against selected table columns
Release datasette-auth-tokens 0.4a10 — Datasette plugin for authenticating access using API tokens
Release datasette-edit-schema 0.8a3 — Datasette plugin for modifying table schemas
Release datasette-pins 0.1a4 — Pin databases, tables, and other items to the Datasette homepage
Release datasette-acl 0.4a2 — Advanced permission management for Datasette
Release datasette-acl 0.4a1 — Advanced permission management for Datasette
Release datasette-acl 0.4a0 — Advanced permission management for Datasette
Release datasette-acl 0.3a0 — Advanced permission management for Datasette
Release datasette-acl 0.2a0 — Advanced permission management for Datasette
Release datasette-acl 0.1a0 — Advanced permission management for Datasette

Optimizing Datasette (and other weeknotes)

Visit Optimizing Datasette (and other weeknotes)

I’ve been working with Alex Garcia on an experiment involving using Datasette to explore FEC contributions. We currently have a 11GB SQLite database—trivial for SQLite to handle, but at the upper end of what I’ve comfortably explored with Datasette in the past.

[... 2,069 words]