This project has the following system level dependencies:
Linux >= 5.10
Python >= 3.9
poetry (optional, for development)
Python dependencies are listed in
$ paru -S gallia
$ pip install gallia
The poetry build system is used to manage dependencies.
$ git clone https://github.com/Fraunhofer-AISEC/gallia.git
Poetry will create a unique virtual python environment with all the required dependencies.
All poetry commands must be invoked within the
$ poetry install
More poetry commands are documented upstream.
The created venv can be enabled via poetry with the
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
$ 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
$ rm -rf ~/.cache/pypoetry/virtualenvs/*
# register-python-argcomplete gallia > /etc/bash_completion.d/gallia
$ mkdir -p ~/.config/fish/completions $ register-python-argcomplete --shell fish gallia > ~/.config/fish/completions/gallia.fish
pycharm offers native support for the
poetry build system.
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.