Metadata-Version: 2.4
Name: shepherd_client
Version: 2025.10.1
Summary: Web-Client for the Shepherd-Testbed
Author-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
Maintainer-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
Project-URL: Documentation, https://github.com/nes-lab/shepherd-webapi/blob/main/README.md
Project-URL: Issues, https://github.com/nes-lab/shepherd-webapi/issues
Project-URL: Source, https://github.com/nes-lab/shepherd-webapi
Keywords: testbed,beaglebone,pru,batteryless,energyharvesting,solar
Platform: unix
Platform: linux
Platform: osx
Platform: cygwin
Platform: win32
Platform: win64
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: English
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: shepherd_core==2025.8.1
Requires-Dist: requests
Requires-Dist: pydantic[email]>=2.11.5
Requires-Dist: exrex
Requires-Dist: pyaml
Requires-Dist: typer
Requires-Dist: certifi>=2025.6.15
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-click; extra == "test"
Requires-Dist: pytest-dependency; extra == "test"
Requires-Dist: pytest-timeout; extra == "test"
Requires-Dist: coverage; extra == "test"
Provides-Extra: all
Requires-Dist: shepherd-client[test]; extra == "all"

# Schepherd-Client

[![PyPIVersion](https://img.shields.io/pypi/v/shepherd_client.svg)](https://pypi.org/project/shepherd_client)
[![PyVers](https://img.shields.io/pypi/pyversions/shepherd_client.svg)](https://pypi.python.org/pypi/shepherd-client)
[![QA-Tests](https://github.com/nes-lab/shepherd-webapi/actions/workflows/quality_assurance.yaml/badge.svg)](https://github.com/nes-lab/shepherd-webapi/actions/workflows/quality_assurance.yaml)

**Shepherd Nova Testbed**: https://testbed.nes-lab.org/

**Testbed-WebAPI**: <https://shepherd.cfaed.tu-dresden.de:8000>

**Source Code**: <https://github.com/nes-lab/shepherd-webapi>

**Main Project**: <https://github.com/nes-lab/shepherd>

---

The Testbed-Client links the user to the testbed.
It's written in Python and uses http-requests to communicate with the web-API.
As the source is open, you can modify and extend it as you like.
You could also write your own tools based on these few hundred lines of code.

## Features

- register & delete an account
- query user information
- create, schedule, query state of experiments
- download results

In the near future, the functionality will be extended to:

- list content like available energy environments, firmwares, virtual power sources (currently hardcoded in shepherd-core)
- query the testbed data-model (currently hardcoded in shepherd-core)
- query state of the observers (last seen alive)
- query statistics on the scheduler-queue
- CLI

## Getting started

### Install

You can install the client by using the package-manager of your choice. In the following example we show pip and uv:

```Shell
pip3 install shepherd-client -U
# or modern uv with automatic virtual environment
uv pip install shepherd-client -U
```

Newest features can be obtained by directly installing from GitHub:

```shell
uv pip install git+https://github.com/nes-lab/shepherd-webapi.git@main#subdirectory=shepherd_client
```

### Usage

The current interface is introduced in 5 short examples in the example-directory.
