Metadata-Version: 2.4
Name: shepherd_client
Version: 2025.6.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: 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: requests
Requires-Dist: pydantic[email]>=2.11.0
Requires-Dist: shepherd_core>=2025.6.1
Requires-Dist: exrex
Requires-Dist: pyaml
Requires-Dist: typer
Provides-Extra: dev
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: bump2version; extra == "dev"
Requires-Dist: pyright; extra == "dev"
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"

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

While the client is not yet available on PyPI

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

# or modern venv
uv pip install git+https://github.com/nes-lab/shepherd-webapi.git@main

# or old pipenv
git clone https://github.com/nes-lab/shepherd-webapi.git
cd shepherd-webapi
pipenv install
pipenv shell
```

###

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