Storey is an async streaming library for real-time event processing and feature extraction, part of the mlrun ecosystem.
- Python 3.11+
- On macOS, you may also need:
brew install lua— required to installlupa, which is used byfakeredisto run Redis Lua scripts in unit testsbrew install postgresql— required to installpsycopg, which is used byTimescaleDBTarget
Install runtime and dev dependencies:
make dev-envOr manually:
pip install -r requirements.txt
pip install -r dev-requirements.txtmake test # unit tests (tests/)
make integration # integration tests (integration/)Or directly:
python -m pytest --ignore=integration -rf -v .Integration tests require external services and corresponding environment variables:
| Service | Environment Variables |
|---|---|
| V3IO | V3IO_API, V3IO_ACCESS_KEY |
| Kafka | KAFKA_BROKERS |
| Redis | MLRUN_REDIS_URL |
| S3 | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_BUCKET |
| Azure Blob | AZURE_ACCOUNT_NAME, AZURE_ACCOUNT_KEY, AZURE_BLOB_STORE |
| TimescaleDB | TIMESCALEDB_DSN |
Tests for services whose env vars are not set will be skipped.
make fmt # auto-format with black + isort
make lint # check with flake8 + black + isortSettings: black (line-length 120), isort (profile black), flake8 (max-line-length 120).
| Directory | Contents |
|---|---|
storey/ |
Library source code |
tests/ |
Unit tests |
integration/ |
Integration tests (require external services) |
bench/ |
Benchmarks |
docs/ |
Sphinx documentation |
The default development branch is development.