-
Install pyenv to manage your Python versions and virtual environments:
curl -sSL https://pyenv.run | bash
- If you are on MacOS and experiencing errors on python install with pyenv, follow this comment
- Add these lines to your
~/.bashrc
or~/.zshrc
to be able to activatepyenv virtualenv
:eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" eval "$(pyenv init --path)"
- Restart your shell
-
Install the right version of
Python
withpyenv
:pyenv install 3.11.3
- Install Poetry to manage your dependencies and tooling configs:
If you have not previously installed any Python version, you may need to set your global Python version before installing Poetry:
curl -sSL https://install.python-poetry.org | python - --version 1.5.1
pyenv global 3.11.3
Install Docker Engine to build and run the API's Docker image locally.
Create your virtual environment and link it to your project folder:
pyenv virtualenv 3.11.3 genoss-gpt
pyenv local genoss-gpt
Now, every time you are in your project directory your virtualenv will be activated thanks to pyenv
!
poetry install --no-root
poetry run pre-commit install
To run unit tests, run pytest
with:
pytest tests --cov genoss
or
make test
To check code formatting, run black
with:
black . --check
or
make black_isort
You can also integrate it to your IDE to reformat your code each time you save a file. Isort which handles imports formatting can be run in the same way.
To run static analysis, run ruff
with:
ruff check genoss tests
or
make ruff
To run static analysis and to apply auto-fixes, run ruff
with:
make fix-ruff
To type check your code, run mypy
with:
mypy genoss --explicit-package-bases --namespace-packages
or
make mypy
The project includes an API built with FastAPI. Its code can be found at genoss
.
The API is containerized using a Docker image, built from the Dockerfile
and docker-compose.yml
at the root.
To build and start the API, use the following Makefile command:
make start-api
For more details on the API routes, check the automatically generated swagger at the /docs
url.