A client CLI utility for Datasette instances
  • Python 99.7%
  • Just 0.3%
Find a file
Simon Willison d71919fe24
Release 0.1a1
Refs #2
2022-11-21 19:01:15 -08:00
.github/workflows Initial library structure 2022-11-22 01:57:06 +00:00
dclient alias remove command, alias list --json option - refs #2 2022-11-21 19:00:20 -08:00
tests alias remove command, alias list --json option - refs #2 2022-11-21 19:00:20 -08:00
.gitignore Initial library structure 2022-11-22 01:57:06 +00:00
LICENSE Initial library structure 2022-11-22 01:57:06 +00:00
README.md alias remove command, alias list --json option - refs #2 2022-11-21 19:00:20 -08:00
setup.py Release 0.1a1 2022-11-21 19:01:15 -08:00

dclient

PyPI Changelog Tests License

A client CLI utility for Datasette instances

Installation

Install this tool using pip:

pip install dclient

Running queries

You can run SQL queries against a Datasette instance like so:

$ dclient query https://latest.datasette.io/fixtures "select * from facetable limit 1"

Output:

[
  {
    "pk": 1,
    "created": "2019-01-14 08:00:00",
    "planet_int": 1,
    "on_earth": 1,
    "state": "CA",
    "_city_id": 1,
    "_neighborhood": "Mission",
    "tags": "[\"tag1\", \"tag2\"]",
    "complex_array": "[{\"foo\": \"bar\"}]",
    "distinct_some_null": "one",
    "n": "n1"
  }
]

dclient query --help

Usage: dclient query [OPTIONS] URL SQL

  Run a SQL query against a Datasette database URL

  Returns a JSON array of objects

Options:
  --help  Show this message and exit.

Aliases

You can assign an alias to a Datasette database using the dclient alias command:

dclient alias add content https://datasette.io/content

You can list aliases with dclient alias list:

$ dclient alias list
content = https://datasette.io/content

Once registered, you can pass an alias to commands such as dclient query:

dclient query content "select * from news limit 1"

dclient alias --help

Usage: dclient alias [OPTIONS] COMMAND [ARGS]...

  Manage aliases for different instances

Options:
  --help  Show this message and exit.

Commands:
  add     Add an alias
  list    List aliases
  remove  Remove an alias

dclient alias list --help

Usage: dclient alias list [OPTIONS]

  List aliases

Options:
  --json  Output raw JSON
  --help  Show this message and exit.

dclient alias add --help

Usage: dclient alias add [OPTIONS] NAME URL

  Add an alias

Options:
  --help  Show this message and exit.

dclient alias remove --help

Usage: dclient alias remove [OPTIONS] NAME

  Remove an alias

Options:
  --help  Show this message and exit.

Development

To contribute to this tool, first checkout the code. Then create a new virtual environment:

cd dclient
python -m venv venv
source venv/bin/activate

Now install the dependencies and test dependencies:

pip install -e '.[test]'

To run the tests:

pytest