Metadata-Version: 2.4
Name: shepherd-client
Version: 2026.4.2
Summary: Web-Client for the Shepherd-Testbed
Keywords: testbed,beaglebone,pru,batteryless,energyharvesting,solar
Author: Ingmar Splitt
Author-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
License-Expression: MIT
License-File: LICENSE
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: Operating System :: OS Independent
Classifier: Natural Language :: English
Requires-Dist: shepherd-core==2026.4.2
Requires-Dist: requests
Requires-Dist: pydantic[email]>=2.11.5
Requires-Dist: exrex
Requires-Dist: typer
Requires-Dist: certifi>=2025.6.15
Requires-Dist: ryaml
Requires-Dist: typing-extensions
Requires-Dist: pandas ; extra == 'admin'
Requires-Dist: isodate ; extra == 'admin'
Requires-Dist: trafficbench ; extra == 'admin'
Requires-Dist: shepherd-client[admin,test,dev] ; extra == 'all'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-click ; extra == 'test'
Requires-Dist: pytest-async ; extra == 'test'
Requires-Dist: pytest-dependency ; extra == 'test'
Requires-Dist: pytest-timeout ; extra == 'test'
Requires-Dist: coverage ; extra == 'test'
Requires-Dist: shepherd-server ; extra == 'test'
Maintainer: Ingmar Splitt
Maintainer-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
Requires-Python: >=3.10
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
Provides-Extra: admin
Provides-Extra: all
Provides-Extra: dev
Provides-Extra: test
Description-Content-Type: text/markdown

# 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.
