Tools for making configurable Python classes for A/B experiements.
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
License
Apache License 2.0
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file configgle-0.1.1.tar.gz.
File metadata
- Download URL: configgle-0.1.1.tar.gz
- Upload date:
- Size: 108.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7efb1211ab8a8fb2807090ec6b796973ebcd0c303eb3c0419164077f00a58655
|
|
| MD5 |
0df04e7343ab2dfa370d419c3e492ab7
|
|
| BLAKE2b-256 |
bccbc5aa305046fbf18bde0b2c0bc6c99824863957ec4e10a129aaaa109894f6
|
File details
Details for the file configgle-0.1.1-py3-none-any.whl.
File metadata
- Download URL: configgle-0.1.1-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2244bb93f490aa45e1b2375b9b53a9542c0973a5f37976a49f5ae75a9d364c2
|
|
| MD5 |
629d18b7875ca420d30c3f681fce031a
|
|
| BLAKE2b-256 |
96a943c1eb25cac42c87362fab49c830caeb323010400e17d85818e3e616c841
|