Python client for serval-dna REST interface
Project description
Python client for the serval-dna REST-interface
Provides a client to interact with serval-dna's REST-interface in python
Functionality
The following REST-functionality is supported:
- Keyring
- Rhizome
- MeshMS
- MeshMB
- Route
For documentation on the specific endpoints, please consult The serval-dna documentation
Dependencies
Up to v0.4
, the code is compatible with both Python 2.7 & 3.4+. As of v0.5
, you will need Python 3.6+
The only external runtime-dependency is requests. This should be automatically installed by pip based on the package metadata.
Development dependencies are the following:
Automatic format checking is done using black and pre-commit.
In order to run the tests, you will need hypothesis, pytest, and pytest-cov for coverage-reports.
To install all dependencies (both runtime and development/testing) run pip install -r requirements.txt
Installation
As of v0.4
, releases are uploaded to PyPi, so you can just install it by name
pip install pyserval
Development
In order to have reasonably well formatted code, a format-checking pre-commit hook is supplied. The tool used for checking/reformatting is black. Note that the hook itself does not do any reformatting, it merely informs you that a file is not properly formatted. You need to do the reformatting yourself using black $FILEPATH
.
The tests require you to have the servald
binary from serval-dna installed and available in your $PATH
. In order to have a consistent testing enviroment, /tmp/pyserval-tests/
will be used as the $SERVALINSTANCE_PATH
.
- Clone Project
- Install project to python-path
- You might want to use a virtualenv
- You might also want to do an editable install with
pip install -e .
- Install development dependencies with
pip install -r requirements.txt
- Install git pre-commit hook with
pre-commit install
- For testing: In the project root run
pytest --cov=pyserval
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.