A client CLI utility for Datasette instances
  • Python 99.7%
  • Just 0.3%
Find a file
2022-11-21 22:59:12 -08:00
.github/workflows cache-dependency-path: setup.py 2022-11-21 22:59:12 -08:00
dclient Register as a Datasette plugin too, refs #4 2022-11-21 21:33:24 -08:00
tests Test for datasette plugin registration, refs #4 2022-11-21 22:31:48 -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 Docs for "datasette client" plugin mode 2022-11-21 21:38:14 -08:00
setup.py Test for datasette plugin registration, refs #4 2022-11-21 22:31:48 -08:00

dclient

PyPI Changelog Tests License

A client CLI utility for Datasette instances

Installation

Install this tool using pip:

pip install dclient

If you want to install it in the same virtual environment as Datasette (to use it as a plugin) you can instead run:

datasette install dclient

Standalone v.s. plugin

Once installed you can use this tool like so:

dclient --help

If you also have Datasette installed in the same environment it will register itself as a command plugin.

This means you can run any of these commands using datasette client instead, like this:

datasette client --help
datasette client query https://latest.datasette.io/fixtures "select * from facetable limit 1"

Running queries

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

$ 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