Using the command-line client#
For quick queries to a subscriber or for use in shell scripts, Caterva2 ships the cat2cli
program. To use it, you need to install Caterva2 with the clients
extra:
python -m pip install caterva2[clients]
Start test Caterva2 services (see Launching Caterva2 services) first. To ask the default subscriber about all roots known by the broker, use the roots
command:
cat2cli roots # -> foo (subscribed)
Note: To choose a different subscriber, you may use the --subscriber
command-line option. If the subscriber requires user authentication, use the --username
and --password
options. To learn about the options and arguments supported by any Caterva2 program, just invoke it with --help
, e.g. cat2cli --help
. You may also use a configuration file (see The caterva2.toml configuration file).
Though the previous command reports foo
as subscribed (from previous sections), you may still use subscribe
to subscribe to it (again):
cat2cli subscribe foo # -> Ok
Now, to get the list of datasets in the foo
root, use the list
command:
cat2cli list foo # -> foo/ds-1d.b2nd foo/ds-hello.b2frame ...
Please note that dataset names are already prefixed with the root name, so that you may copy them into other cat2cli
commands, for instance info
to get the metadata of a dataset:
cat2cli info foo/dir1/ds-2d.b2nd
This shows the familiar metadata, in Python format:
{'dtype': 'uint16',
'ndim': 2,
'shape': [10, 20],
# ...
'size': 400}
(Many cat2cli
commands like info
accept a --json
option after them to force JSON output, in case you prefer it.)
To show a (part of) a dataset, you may use the show
command, which accepts a Python-like slice after the dataset name (without spaces). For the same slice of ds-2d.b2nd
from previous examples, you may run:
cat2cli show foo/dir1/ds-2d.b2nd[0:2,4:8]
And you’ll get a textual representation of the slice:
[[ 4 5 6 7]
[24 25 26 27]]
Data retrieved by show
cannot be saved locally; for that you’ll need to get the whole dataset with download
:
cat2cli download foo/dir1/ds-2d.b2nd
Again, the program reports the path of the resulting local file.