Installation#

ppbcc requires Python 3.12 or newer (it uses tomllib and modern typing syntax).

From source with pip#

git clone https://github.com/schuhmaj/performance-portability-code-complexity.git
cd performance-portability-code-complexity
pip install .

For development, install in editable mode together with the test extra:

pip install -e ".[test]"
pytest

With conda#

The repository ships a conda environment file that pulls all runtime and test dependencies from conda-forge:

conda env create -f environment.yaml
conda activate ppbcc
pip install -e .

Dependencies#

Package

Used for

pandas

result tables and CSV export

numpy

numerical metric and plot processing

matplotlib

plot rendering

seaborn

heatmap and boxplot styling

loguru

logging

tabulate

pretty-printing result tables on stdout

Note

The code-complexity workflow is stand-alone — it only needs pandas, loguru, and tabulate. The plotting dependencies are only exercised by ppbcc p2analysis and ppbcc p3analysis.

Verifying the installation#

ppbcc --version
ppbcc code-complexity --list-dialects

Building the documentation#

pip install -r docs/requirements.txt
cd docs
make html
# open _build/html/index.html