GeniePy requires a few prerequisites to be installed on your system before initializing a new project.

Git

Please make sure that you have the git SCM installed on your machine.

The installation instructions depend on the operating system you're using.

Docker Compose

GeniePy uses docker-compose for local development, which is a CLI-driven tool that makes it easy to run applications involving multiple containers.

Consult the Docker and Docker Compose documentation for installation instructions for your operating system.

Python 3.7+ and Virtualenv

GeniePy is written in Python using the Starlette web framework.

Please make sure that you have a working Python installation on your machine. Any version higher than 3.7 should work.

Note that the main application runs inside a Docker container, which removes the need for your host machine to have a Python installation.

Regardless, we use a variety of pre-commit hooks for git to ensure that any code being checked in follows a specific style. These hooks rely on the pre-commit framework, which in turn requires a working Python installation.

Please also make sure that you are able to create virtual environments. As of Python 3.3, the in-built venv module can be used to do this:

$ python -m venv venv

While this should work, our general recommendation is to use pyenv to manage different Python versions and virtual environments.

Pre-commit (optional)

We use the pre-commit framework to run lint commands every time you run git commit.

Any violations reported by any of the linting tools prevent the code from being committed to the codebase. These violations need to be fixed before code can be committed. Over time, this keeps the health of the codebase high.