Skip to main content

Hierarchical experiment configuration and dependency injection using pure Python dataclass factories.

Project description

configgle🤭

Tools for making configurable Python classes for A/B experiements.

Installation

python -m pip install configgle

Example

from configgle import Fig

class Model:
    class Config(Fig):
        hidden_size: int = 256
        num_layers: int = 4

    def __init__(self, config: Config):
        self.config = config

# Create and modify config
config = Model.Config(hidden_size=512)

# Instantiate the parent class
model = config.setup()
print(model.config.hidden_size)  # 512

Or use @autofig to auto-generate the Config from __init__:

from configgle import autofig

@autofig
class Model:
    def __init__(self, hidden_size: int = 256, num_layers: int = 4):
        self.hidden_size = hidden_size
        self.num_layers = num_layers

# Config is auto-generated from __init__ signature
model = Model.Config(hidden_size=512).setup()
print(model.hidden_size)  # 512

References

configgle combines Python standard patterns (dataclasses) with hierarchical, class-local configuration.

The following libraries span these ideas but none wholly combine them:

  • Confugue - Hierarchical configuration with YAML-based object instantiation (most similar to configgle, but uses YAML rather than pure Python)
  • Fiddle - Python-first configuration library for ML
  • Gin Config - Lightweight configuration framework for Python
  • Sacred - Tool to configure, organize, log and reproduce experiments
  • Hydra - Framework for elegantly configuring complex applications
  • ml_collections - Python collections designed for ML use cases
  • OmegaConf - Flexible hierarchical configuration system

Citing

If you find our work useful, please consider citing:

@misc{dillon2026configgle,
      title={Configgle - Hierarchical experiment configuration and dependency injection using pure Python dataclass factories.},
      author={Joshua V. Dillon},
      year={2026},
      howpublished={Github},
      url={https://github.com/jvdillon/configgle},
}

License

Apache License 2.0

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

configgle-0.1.3.tar.gz (149.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

configgle-0.1.3-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

Details for the file configgle-0.1.3.tar.gz.

File metadata

  • Download URL: configgle-0.1.3.tar.gz
  • Upload date:
  • Size: 149.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for configgle-0.1.3.tar.gz
Algorithm Hash digest
SHA256 438b5d1c2427a7588a53f705b530a5f909f44aa883a6b7e781144c87702aec42
MD5 1d5de83a699227df0bcf725186b09e52
BLAKE2b-256 e74aa1a968729f3f5239d6943242dc65b79320d04c668415aeb998b21e0bd321

See more details on using hashes here.

File details

Details for the file configgle-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: configgle-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 26.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for configgle-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5e4db47521801edf93a36eb1531e2696ed35db9430a26a56a1fcf4b49c30070b
MD5 94bba30580f13e463a9b3f44e6ffc5bc
BLAKE2b-256 a252d3f822d98d1ff81fef78f9c130700b68623745ba880ed40bc25ca7cc996d

See more details on using hashes here.

Supported by

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