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.gitThe command line interface (CLI) can then be accessed via:
gateway --helpUsage: 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-gatewayThen 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 installThis 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.txtThis 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 installEvery time you enter the repo over powershell again, make sure to activate the venv using
./venv/Scripts/activateIf 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-devThese 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
toxTake a look at our contributing page.