This project has the following system level dependencies:

Python dependencies are listed in pyproject.toml


Arch Linux

$ paru -S gallia


$ pip install gallia


The poetry build system is used to manage dependencies.

Clone repository

$ git clone


Poetry will create a unique virtual python environment with all the required dependencies. All poetry commands must be invoked within the gallia repository.

$ poetry install

More poetry commands are documented upstream.


The created venv can be enabled via poetry with the shell command. A new shell will be spawned with the enabled environment.

$ poetry shell


Run a single command inside the venv without changing the shell environment:

$ poetry run gallia

Development with Plugins

If you want to develop gallia and plugins at the same time, then you need to manage your gallia (e.g. in ~/.venvs/gallia) virtual python environment by yourself. You can use poetry install to install multiple plugin repos into the gallia venv.

$ python -m venv ~/.venvs/gallia
$ source ~/.venvs/gallia/activate
$ cd /path/to/gallia && poetry install
$ cd /path/to/gallia-plugins && poetry install

If it does not work, you might try deleting the venvs managed by poetry via:

$ rm -rf ~/.cache/pypoetry/virtualenvs/*

Shell Completion


# register-python-argcomplete gallia > /etc/bash_completion.d/gallia


$ mkdir -p ~/.config/fish/completions
$ register-python-argcomplete --shell fish gallia > ~/.config/fish/completions/

IDE Integration


pycharm offers native support for the poetry build system. The src folder in the gallia repository needs to be configured as Sources Root in pycharm.


Most editors (e.g. neovim) support the Language Server Protocol. The required tools are listed as development dependencies in pyproject.toml and are installed automatically via poetry. Please refer to the documentation of your text editor of choice for configuring LSP support.