Automated experiment analysis.
Jetstream automatically calculates metrics and applies statistical treatments to collected experiment data for different analysis windows.
For more information, see the documentation.
# Create and activate a python virtual environment.
python3 -m venv venv/
source venv/bin/activate
# --no-deps to workaround https://github.com/pypa/pip/issues/9644
pip install --no-deps -r requirements.txt
pip install -e .
-
Install
tox
(included in requirements.txt) -
Run
tox
from wherever you cloned this repository. (You don't need to install jetstream first.)- To run integration tests, run
tox -e py310-integration
.
- To run integration tests, run
We use ruff
for linting and formatting:
- lint:
ruff check jetstream
- format:
ruff format --check jetstream
ruff
can also fix (some) issues:
- lint:
ruff check jetstream --fix
- format:
ruff format jetstream
We also use mypy
:
mypy -p jetstream
You can also run tox py310-format
to run all the ruff and mypy checks.
Jetstream uses pip-tools to manage dependencies, along with a script that runs the pip-tools commands. There are two requirements files auto-generated by script/update_deps
:
requirements.in
: Listing of dependencies and versions generated from the dependencies list inpyproject.toml
.requirements.txt
: Auto-generated by pip-tools (pip-compile
) from therequirements.in
file. Also contains the hashes of each package for verification by pip during installation, and comments showing lineage for each dependency.
- Add to
pyproject.toml
list of dependencies. - Generate new requirements files with
./script/update_deps
- Install with
python -m pip install -r requirements.txt
./script/update_deps
Be sure to run pip install --no-deps -r requirements.txt
and reinstall jetstream (pip install -e .
) afterwards, and test functionality!
-
Prefer to update all dependencies (see above)!
-
Edit
requirements.in
mypy==1.8.0
-->mypy==1.9.0
- Regenerate
requirements.txt
pip-compile --generate-hashes -o requirements.txt requirements.in
- (Note: this is the last line of
script/update_deps
)
- (Note: this is the last line of
- Install dependencies
pip install --no-deps -r requirements.txt
pip install -e .
- Test!