Installation

Curifactory can be installed from pip via:

pip install curifactory

Or from conda-forge with:

conda install -c conda-forge curifactory

Note that graphviz must be installed for certain reporting features to work. In conda, you can do this with:

conda install python-graphviz

Curifactory comes with a CLI curifactory runnable, which can bootstrap a curifactory-enabled project directory for you.

curifactory init

This command will step you through the process. You can run it either in a new folder or in an existing project, and it will create any necessary paths for curifactory to work. Descriptions of the various folders created in the initialization process are in the Configuration and directory structure section.

Important

It is strongly recommended to use curifactory from within a git repo to support experiment reproducibility and provenance (every run will record the current git commit hash.) The curifactory init command will prompt you to run git init if the .git folder is not detected. Any experiment runs executed outside of a git repo will carry an associated warning in the output log and report.

Tab completion

Curifactory comes with tab-completion in bash and zsh via the argcomplete package. (If you’re using curifactory from inside a conda environment, you’ll need to install it in your system python.)

pip install argcomplete

To enable the tab-completion, you can either use argcomplete’s global hook activate-global-python-argcomplete, which will enable tab complete on all argcomplete-enabled python packages (e.g. pytest), or you can add

eval "$(register-python-argcomplete experiment)"

to your shell’s rc file (~/.bashrc or ~/.zshrc). Curfiactory can add this line for you automatically with:

curifactory completion [--bash|--zsh]  # use the flag corresponding to your shell

Once enabled, the experiment CLI that curifactory provides will have tab completion for experiment names, parameter file names, and flags.