Skip to main content

An experiment workflow and organization tool

Project description

Curifactory

Code style: black PyPI version tests

Curifactory is a library and CLI tool designed to help organize and manage research experiments in python.

screenshot flow

Experiment management must fulfill several tasks, including experiment orchestration, parameterization, caching, reproducibility, reporting, and parallelization. Existing projects such as MLFlow, MetaFlow, Luigi, and Pachyderm support these tasks in several different ways and to various degrees. Curifactory provides a different opinion, with a heavier focus on supporting general research experiment workflows for individuals or small teams working primarily in python.

Features

  • Adds a CLI layer on top of your codebase, a single entrypoint for running experiments
  • Automatic caching of intermediate data and lazy loading of stored objects
  • Jupyter notebook output for further exploration of an experiment run
  • Docker container output with copy of codebase, conda environment, full experiment run cache, and jupyter run notebook
  • HTML report output from each run with graphviz-rendered diagram of experiment
  • Easily report plots and values to HTML report
  • Configuration files are python scripts, allowing programmatic definition, parameter composition, and parameter inheritance
  • Output logs from every run
  • Run experiments directly from CLI or other python code, notebooks, etc.

Installation

pip install curifactory

Graphviz is required for certain features and can be installed through conda via:

conda install python-graphviz

Documentation

The documentation for the latest version of Curifactory can be found at: https://ornl.github.io/curifactory/latest/index.html.

Examples

Several small example projects can be found in the examples folder. examples/notebook-based includes notebooks demonstrating usage of curifactory solely in Jupyter. examples/minimal shows a basic single-file experiment script.

Citation

Please see the following DOI if citing this project: 10.11578/dc.20220208.1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

curifactory-0.7.0.tar.gz (68.1 kB view hashes)

Uploaded Source

Built Distribution

curifactory-0.7.0-py3-none-any.whl (61.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page