Skip to main content

Configurable, reproducible, and scalable workflows in Python, via Hydra

Project description

hydra-zen

image

PyPI Python version support GitHub Actions Code Coverage Type-Completeness Score Tested with Hypothesis Cite Us

A library that facilitates configurable, reproducible, and scalable workflows, using Hydra.

Check out our documentation for more information.

Interested in machine learning? Check out our guide for using PyTorch Lightning with hydra-zen.⚡

hydra-zen is a Python library that simplifies the process of writing code (research-grade or production-grade) that is:

  • Configurable: you can configure all aspects of your code from a single interface (the command line or a single Python function).
  • Repeatable: each run of your code will be self-documenting; the full configuration of your software is saved alongside your results.
  • Scalable: launch multiple runs of your software, be it on your local machine or across multiple nodes on a cluster.

hydra-zen eliminates all hand-written yaml configs from your Hydra project. It does so by providing functions that dynamically and automatically generate dataclass-based configs for your code. It also provides a custom config-store API and task-function wrapper, which help to eliminate most of the Hydra-specific boilerplate from your project.

Learn about hydra-zen at a glance.

Installation

hydra-zen is lightweight: its only dependencies are hydra-core and typing-extensions.

pip install hydra-zen

Contributing

Before opening a PR to this repo, consider posting an issue or a discussion topic to share your ideas with us. We will work with you to ensure your feature is well-scoped and that your hard work goes to good use.

(See an obvious bug or typo? Go ahead and just open a PR :) )

For further details refer to these docs.

Join the Discussion

Share ideas, ask questions, and chat with us over at hydra-zen's discussion board.

Citation

Using hydra-zen for your research? Please cite the following publication:

@article{soklaski2022tools,
  title={Tools and Practices for Responsible AI Engineering},
  author={Soklaski, Ryan and Goodwin, Justin and Brown, Olivia and Yee, Michael and Matterer, Jason},
  journal={arXiv preprint arXiv:2201.05647},
  year={2022}
}

Disclaimer

DISTRIBUTION STATEMENT A. Approved for public release: distribution unlimited.

© 2024 MASSACHUSETTS INSTITUTE OF TECHNOLOGY

Subject to FAR 52.227-11 – Patent Rights – Ownership by the Contractor (May 2014)
SPDX-License-Identifier: MIT

This material is based upon work supported by the Under Secretary of Defense for Research and Engineering under Air Force Contract No. FA8702-15-D-0001. Any opinions, findings, conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the Under Secretary of Defense for Research and Engineering.

A portion of this research was sponsored by the United States Air Force Research Laboratory and the United States Air Force Artificial Intelligence Accelerator and was accomplished under Cooperative Agreement Number FA8750-19-2-1000. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the United States Air Force or the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints for Government purposes notwithstanding any copyright notation herein.

The software/firmware is provided to you on an As-Is basis

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

hydra_zen-0.13.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

hydra_zen-0.13.0-py3-none-any.whl (103.8 kB view details)

Uploaded Python 3

File details

Details for the file hydra_zen-0.13.0.tar.gz.

File metadata

  • Download URL: hydra_zen-0.13.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for hydra_zen-0.13.0.tar.gz
Algorithm Hash digest
SHA256 1b53d74aa1f0baa04fafdac6aba7a94ae40929e7b0a5a5081d8740f74322052d
MD5 efcb3c5d0ca05060573a9f138af766fe
BLAKE2b-256 83a9747cd74012a33f61fbe7b079e91385214d0d0dc707721cd95afb2c823a75

See more details on using hashes here.

File details

Details for the file hydra_zen-0.13.0-py3-none-any.whl.

File metadata

  • Download URL: hydra_zen-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 103.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for hydra_zen-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6050b62be96d2a47b2abf0e9c0ebcce1e9a4e259e173870338ab049b833f26cf
MD5 4a5e79c3b689a9aeb36e26a02e6ea450
BLAKE2b-256 33ca8f984e7a8e39ed2bf1622a1ae0fe26e65011fed150548a9319217e92925f

See more details on using hashes here.

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