Metadata-Version: 2.1
Name: omnibench-cli
Version: 1.0.3
Summary: 
Home-page: https://renkulab.io/gitlab/btraven/omni-cli/
Author: btraven
Author-email: btraven@sdf.org
Requires-Python: >=3.8.1,<3.12
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: calamus (>=0.4.2,<0.5.0)
Requires-Dist: click (>=8.1.3,<9.0.0)
Requires-Dist: omnibenchmark (>=0.0.43,<0.0.44)
Requires-Dist: pydantic (>=1.10.2,<2.0.0)
Requires-Dist: pyyaml (>=6.0,<7.0)
Requires-Dist: renku (>=2.3.2,<3.0.0)
Requires-Dist: requests (<2.28.2)
Requires-Dist: sparqlwrapper (>=2.0.0,<3.0.0)
Project-URL: Repository, https://renkulab.io/gitlab/btraven/omni-cli/
Description-Content-Type: text/markdown

# omnibench-cli

A command line interface to query and access datasets and workflows project-wide across omnibenchmark.

## Install

Install via pip:

```
pip install omnibench-cli
```

While developing, you can use poetry:

```
pip install poetry
poetry shell
```

## Use


```zsh
❯ omni_cli
Usage: omni_cli [OPTIONS] COMMAND [ARGS]...

  Interact with omnibenchmark datasets and workflows.

Options:
  --help  Show this message and exit.

Commands:
  bench     Inspect benchmarks
  dataset   Inspect datasets
  docker    Manipulate local docker images used for workflow runs
  epoch     Query and manipulate Orchestrator Epochs in the Knowledge...
  graph     Local knowledge graph operations
  init      Initialize omnibenchmark cache
  query     Query the local graph
  update    Update omnibenchmark cache
  workflow  Interacts with workflows

❯ omni_cli bench ls
omni_clustering
spatial-clustering

❯ omni_cli bench stages omni_clustering
omni_clustering:build
omni_clustering:data_run
omni_clustering:process_run
omni_clustering:param_run
omni_clustering:method_run
omni_clustering:metric_run
omni_clustering:summary_run
```

## Local Graph Server

The local graph needs `oxigraph_server` to be installed.

You can install it with `cargo`:

```zsh
❯ cargo install oxigraph_server
    Updating crates.io index
  Downloaded oxigraph_server v0.3.18
  Downloaded 1 crate (34.4 KB) in 1.93s
  Installing oxigraph_server v0.3.18
    Updating crates.io index
    
[... long build follows ...]


```

Now you can start the graph server (which supports Federated SPARQL. You can
configure a different graph for annotations:

```zsh
❯ omni_cli graph enable
Enabling local SPARQL endpoint
❯ omni_cli graph run
Running local SPARQL endpoint
Running oxigraph_server with --location /home/user/OmniBenchmark/graph
Listening for requests at http://localhost:7878
❯ omni_cli graph run --annotations
Running local SPARQL endpoint
Running oxigraph_server with --location /home/user/OmniBenchmark/annotations
Listening for requests at http://localhost:8080
```

Do note, however, that no authentication or TLS endpoint is configured by
default. If you plan to deploy the graph in production, is up to you to make
sure you deploy an authentication frontend (support in the client is still
needed, see #2).

## Useful pointers

* [Initial Functionality Requests](https://hackmd.io/_1CE5qDTTH6Zdgu5iZwp6g)
* [omnibenchmark-py](https://github.com/omnibenchmark/omnibenchmark-py/), a `python` library to interact with omnibenchmark.
* [omnibus](https://github.com/shdam/omnibus), a `bash/R` tool to interact with `omnibenchmark` from the terminal.
* [omni_site](https://renkulab.io/gitlab/omnibenchmark/omni_site), the static site generator that powers [https://omnibenchmark.org/](https://omnibenchmark.org/).

