Simon Willison’s Weblog

Subscribe
Atom feed for datasette Random

1,521 posts tagged “datasette”

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

2024

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]

datasette-checkbox. I built this fun little Datasette plugin today, inspired by a conversation I had in Datasette Office Hours.

If a user has the update-row permission and the table they are viewing has any integer columns with names that start with is_ or should_ or has_, the plugin adds interactive checkboxes to that table which can be toggled to update the underlying rows.

This makes it easy to quickly spin up an interface that allows users to review and update boolean flags in a table.

Animated demo showing checkboxes in columns for is_done, should_be_deleted and is_happy - checking the checkboxes shows an updated message next to each one which then fades away.

I have ambitions for a much more advanced version of this, where users can do things like add or remove tags from rows directly in that table interface - but for the moment this is a neat starting point, and it only took an hour to build (thanks to help from Claude to build an initial prototype, chat transcript here).

# 16th August 2024, 9:28 pm / plugins, projects, prototyping, datasette, claude-3-5-sonnet

Release datasette-checkbox 0.1a2 — Add interactive checkboxes to columns in Datasette
Release datasette-checkbox 0.1a1 — Add interactive checkboxes to columns in Datasette
Release datasette-checkbox 0.1a0 — Add interactive checkboxes to columns in Datasette

Datasette 1.0a15. Mainly bug fixes, but a couple of minor new features:

  • Datasette now defaults to hiding SQLite "shadow" tables, as seen in extensions such as SQLite FTS and sqlite-vec. Virtual tables that it makes sense to display, such as FTS core tables, are no longer hidden. Thanks, Alex Garcia. (#2296)
  • The Datasette homepage is now duplicated at /-/, using the default index.html template. This ensures that the information on that page is still accessible even if the Datasette homepage has been customized using a custom index.html template, for example on sites like datasette.io. (#2393)

Datasette also now serves more user-friendly CSRF pages, an improvement which required me to ship asgi-csrf 0.10.

# 16th August 2024, 5:06 am / csrf, projects, releases, datasette

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

Using sqlite-vec with embeddings in sqlite-utils and Datasette. My notes on trying out Alex Garcia's newly released sqlite-vec SQLite extension, including how to use it with OpenAI embeddings in both Datasette and sqlite-utils.

# 11th August 2024, 11:37 pm / sqlite, datasette, sqlite-utils, openai, alex-garcia, embeddings

Weeknotes: a staging environment, a Datasette alpha and a bunch of new LLMs

My big achievement for the last two weeks was finally wrapping up work on the Datasette Cloud staging environment. I also shipped a new Datasette 1.0 alpha and added support to the LLM ecosystem for a bunch of newly released models.

[... 1,465 words]

Datasette 1.0a14: The annotated release notes

Visit Datasette 1.0a14: The annotated release notes

Released today: Datasette 1.0a14. This alpha includes significant contributions from Alex Garcia, including some backwards-incompatible changes in the run-up to the 1.0 release.

[... 1,424 words]

Release datasette-remote-metadata 0.2a0 — Periodically refresh Datasette metadata from a remote URL
Release datasette 1.0a14 — An open source multi-tool for exploring and publishing data
Release datasette-extract 0.1a8 — Import unstructured data (text and images) into structured tables

Announcing our DjangoCon US 2024 Talks! I'm speaking at DjangoCon in Durham, NC in September.

My accepted talk title was How to design and implement extensible software with plugins. Here's my abstract:

Plugins offer a powerful way to extend software packages. Tools that support a plugin architecture include WordPress, Jupyter, VS Code and pytest - each of which benefits from an enormous array of plugins adding all kinds of new features and expanded capabilities.

Adding plugin support to an open source project can greatly reduce the friction involved in attracting new contributors. Users can work independently and even package and publish their work without needing to directly coordinate with the project's core maintainers. As a maintainer this means you can wake up one morning and your software grew new features without you even having to review a pull request!

There's one catch: information on how to design and implement plugin support for a project is scarce.

I now have three major open source projects that support plugins, with over 200 plugins published across those projects. I'll talk about everything I've learned along the way: when and how to use plugins, how to design plugin hooks and how to ensure your plugin authors have as good an experience as possible.

I'm going to be talking about what I've learned integrating Pluggy with Datasette, LLM and sqlite-utils. I've been looking for an excuse to turn this knowledge into a talk for ages, very excited to get to do it at DjangoCon!

# 17th July 2024, 3:20 am / django, djangocon, plugins, python, speaking, datasette, sqlite-utils, llm

datasette-python. I just released a small new plugin for Datasette to assist with debugging. It adds a python subcommand which runs a Python process in the same virtual environment as Datasette itself.

I built it initially to help debug some issues in Datasette installed via Homebrew. The Homebrew installation has its own virtual environment, and sometimes it can be useful to run commands like pip list in the same environment as Datasette itself.

Now you can do this:

brew install datasette
datasette install datasette-python
datasette python -m pip list

I built a similar plugin for LLM last year, called llm-python - it's proved useful enough that I duplicated the design for Datasette.

# 12th July 2024, 11:17 pm / plugins, projects, python, datasette