Skip to main content

Enrich data using datasette and arbitrary commands on your local machine

Project description

datasette-enrichments-shell

Something I've always wanted to do is to be able to easily run a map reduce operation on a CSV. This is something that all the nifty command line tools (zq, jq, etc) don't allow you to do.

However, I noticed that Datasette recently added the ability to write enrichment plugins. I hacked together this enrichment plugin that allows you to run an arbitrary shell script and if the script was successful, save the resulting output to a new column.

Installation

Install this plugin in the same environment as Datasette.

datasette install -U datasette-enrichments-shell

Or, if you are hacking on this locally:

datasette install -U ~/Projects/python/datasette-enrichments-shell

Usage

After installing the plugin, you'll see the shell enrichment option in the UI. You can use this to run a shell command and save the output to a new column.

Examples

Here's how to test a shell script before plugging it into the web UI:

echo '{"rowid": 1, "firstName": "Forest", "lastName": "Tree"}' | \
jq -r '"-p firstName \(.firstName) -p lastName \(.lastName)"' | \
xargs -I {} /Users/mike/.asdf/shims/sqlite-utils query email_personal.db "SELECT * FROM address_book WHERE first_name = :firstName AND last_name = :lastName LIMIT 1" {}

Development

To set up this plugin locally, first checkout the code. Then create a new virtual environment:

cd datasette-enrichments-shell
poetry install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

datasette_enrichments_shell-0.3.0.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file datasette_enrichments_shell-0.3.0.tar.gz.

File metadata

  • Download URL: datasette_enrichments_shell-0.3.0.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.5.0-1024-azure

File hashes

Hashes for datasette_enrichments_shell-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e0b175c2962c358ab8fbdb27c24b9e575cd6e43bbdefafb91fddbb4f6d3d0219
MD5 026e93d55094bd43bcabb7e36b8de6a5
BLAKE2b-256 240ebbe7eb305b1830b61b09d40abd7867a8b5fb988a3d5249e0240819f5ec8d

See more details on using hashes here.

File details

Details for the file datasette_enrichments_shell-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for datasette_enrichments_shell-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8c113d25be7447e74db419301d7fc7b4635818c5e190b404db9af2aa88e648b6
MD5 52ea3d54c31be322c0ba3516b0f72f90
BLAKE2b-256 e08241b9e339542cb36425ab265a741bde83ece3a3d88d51bd06da67b1bca523

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page