For developers

Dependency management

We use mamba to manage the project’s underlying dependencies. Notably, to update the dependencies listed in a particular environments/*_environment.yml file:

mamba env export > env.yaml # e.g., run this after installing new dependencies locally within a given `conda` environment
diff environments/posebench_environment.yaml env.yaml # note the differences and copy accepted changes back into e.g., `environments/posebench_environment.yaml`
rm env.yaml # clean up temporary environment file

Code formatting

We use pre-commit to automatically format the project’s code. To set up pre-commit (one time only) for automatic code linting and formatting upon each execution of git commit:

pre-commit install

To manually reformat all files in the project as desired:

pre-commit run -a

Documentation

We sphinx to maintain the project’s code documentation. To build a local version of the project’s sphinx documentation web pages:

# assuming you are located in the `PoseBench` top-level directory
pip install -r docs/.docs.requirements # one-time only
rm -rf docs/build/ && sphinx-build docs/source/ docs/build/ # NOTE: errors can safely be ignored