Skip to main content

Library to easily interface with Vallen Systeme WaveLine™ devices

Project description

WaveLine

CI Documentation Status Coverage Status License: MIT PyPI PyPI - Python Version Code style: black Ruff

Documentation · Examples

Python library to easily interface with Vallen Systeme WaveLine™ devices using the public APIs:

  • linWave (prior names: conditionWave, FyrSonic)
  • spotWave

Getting started

Install the latest version from PyPI:

$ pip install waveline

Note: waveline requires Python 3.6 or newer. On Linux systems, pip is usually mapped to Python 2, so use pip<version> (e.g. pip3 or pip3.7) instead. Alternatively, you can run pip from your specific Python version with python<version> -m pip.

Run examples:

$ python examples/linwave_ae.py  # if you have a linWave device
$ python examples/spotwave_ae.py  # if you have a spotWave device

Explore further examples and have a look at the documentation.

Contributing

Feature requests, bug reports and fixes are always welcome!

Development setup

After cloning the repository, you can easily install the development environment and tools (pylint, mypy, pytest, tox) with. Using a virtual environment is strongly recommended.

$ git clone https://github.com/vallen-systems/pyWaveLine.git
$ cd pyWaveLine

# Create virtual environment in directory .venv
$ python -m venv .venv
# Activate virtual environment
$ source .venv/bin/activate  # Linux
$ .venv\Scripts\activate  # Windows

# Install package (editable) and all development tools
$ pip install -e .[dev]

# Run auto-formatter
$ black .

# Run linter
$ ruff check .

# Run the test suite in the current environment
$ pytest

# Run the CI pipeline (checks and tests) for all targeted (and installed) Python versions with tox
$ tox

# Build the documentation
$ cd docs
$ make html  # Linux
$ .\make.bat html  # Windows

Run system tests

System level tests are only available, if the targeted device can be discovered.

Run system tests with a spotWave device:

$ pytest tests/system/spotwave --duration-acq 1

Measurement durations for long-term acquisition tests can be specified with the --duration-acq parameter (default: 1 second).

Run system tests with a linWave device (a specific IP can be provided with the --linwave-ip argument, otherwise the first discovered device will be used):

$ pytest tests/system/linwave --duration-acq 1 --linwave-ip 192.168.0.100

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

waveline-0.8.0.tar.gz (36.5 kB view details)

Uploaded Source

Built Distribution

waveline-0.8.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file waveline-0.8.0.tar.gz.

File metadata

  • Download URL: waveline-0.8.0.tar.gz
  • Upload date:
  • Size: 36.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for waveline-0.8.0.tar.gz
Algorithm Hash digest
SHA256 9305a062b483b1857be14864ea13b0779d469f4425c90ffe12e32b32a126ccd3
MD5 98208f510d5ba426a668f5acf28d5570
BLAKE2b-256 c8fcdd269c081d5493c5b0a3e0fc637c21220bf0e14aa3416d210d8e6863ff4b

See more details on using hashes here.

File details

Details for the file waveline-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: waveline-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for waveline-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 082fe195cc0985eb329e849ddb38600edc3763ec7bdc627999244c5eda0f1beb
MD5 0cb211de4a65da5d1c7183fb53fb0353
BLAKE2b-256 40f7ff0642b715f90d010415d09655a1e6bc8b831337b02e89114a35f218fe49

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page