Usage: Read the documentation here.
Note that the test coverage figure is more like 90% - the recent addition of multiprocessing has made it difficult to measure the true coverage across multiple processes.
To install, run:
pip install git+https://github.com/aerosense-ai/data-gateway.git
The command line interface (CLI) can then be accessed via:
gateway --help
Usage: gateway [OPTIONS] COMMAND [ARGS]...
Enter the Aerosense Gateway CLI. Run the on-tower gateway service to read
data from the bluetooth receivers and send it to Aerosense Cloud.
Options:
--logger-uri TEXT Stream logs to a websocket at the given URI
(useful for monitoring what's happening
remotely).
--log-level [debug|info|warning|error]
Set the log level. [default: info]
--version Show the version and exit.
-h, --help Show this message and exit.
Commands:
add-sensor-type Add a sensor type to the BigQuery dataset.
create-installation Create an installation representing a collection of...
start Begin reading and persisting data from the serial...
supervisord-conf Print conf entry for use with supervisord.
We're using poetry
instead of pip
to manage the package to take advantage of the poetry.lock
file among other
useful features. In terms of developer experience, this just means there are some slightly
different commands to run than usual. data-gateway
can still be pip
-installed by anyone anywhere, but dependency
resolution and dependency specification for data-gateway
developers is improved by using poetry
locally.
Due to some (most likely temporary) constraints with poetry
and the need to run and develop the gateway on Linux,
Windows, M1 Macs, and Raspberry Pis, the need has arisen for some slightly different installation procedures on these
different architectures/platforms. click here
to read more.
For Raspberry Pis, overwhelmingly the simple thing to do is use balena instead (see the docs).
First, clone the repository and cd
into it:
git clone https://github.com/aerosense-ai/data-gateway.git
cd data-gateway
Then follow the instructions for your platform below.
Run the following from the repository root:
pip install poetry
# Editably install data-gateway, including its development dependencies.
poetry install
This will editably install data-gateway
in a poetry
-managed virtual environment, meaning:
- Any local changes you make to it will be automatically used when running it locally
- It won't be affected by changes to other python packages you have installed on your system, making development much easier and more deterministic
It's best to use balena but if you do need to run the install, do the following from the repository root:
pip install -r requirements-pi-dev.txt
This workflow works for Windows using Powershell, if you're the most masochistic of people.
Prerequisites:
- Make sure to have python not installed from python.org
- Install pyenv-win via pip method
- Execute
pip install virtualenv
Installation:
pyenv install 3.8.0 # (or higher)
pyenv local 3.8.0
pyenv rehash
virtualenv venv
./venv/Scripts/activate
pip install poetry
poetry install
Every time you enter the repo over powershell again, make sure to activate the venv using
./venv/Scripts/activate
If there are problems reading the serial port, try running this (or the equivalent on non-Linux platforms) and retrying:
sudo apt-get update
sudo apt-get install libhdf5-dev libhdf5-serial-dev
These environment variables need to be set to run the tests:
GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service/account/file.json
Then, from the repository root, run
tox
Take a look at our contributing page.