Configure your virtual environment of choice with Python >=3.11.
Install the project and its dependencies to your virtual environment with pip:
pip install -r requirements.txt
pip install -e '.[dev]'
Run pre-commit install to enable the pre-commit configuration:
pre-commit install
The pre-commit hooks will be run against all files during a git commit, or
you can run it explicitly with:
pre-commit run --all-files
If for some reason, you wish to commit code that does not pass the pre-commit checks, this can be done with:
git commit -m "message" --no-verify
Start the swoop api by running:
uvicorn swoop.api.main:app --host 0.0.0.0 --port 8000 --reload
Tests are run using pytest. Put pytest python modules and other resource in
the /tests directory. Run postgres for testing using the docker compose as
documented in the database README.md. Ensure to source
./.env before running the tests.
All dependencies should be specified in the project's pyproject.toml. The
frozen requirements.txt file is generated from that list using the
pip-compile utility (from the dev dependency pip-tools). Simply run:
pip-compile
To change a package minimum or maximum version, edit the pinning specified in
pyproject.toml then run pip-compile as above.
To add a new package as a project dependency, edit the pyproject.toml and add
it to the corresponding dependeny list. Run pip-compile as above to update
requirements.txt with the new package.