Configurize
A Python library for hierarchical configuration management with inheritance, cross-references, and diffing support.
Installation
pip install configurize
for development
pip install .
Features
- Hierarchical configs: Nest configs within configs with automatic parent-child relationships
- Inheritance: Extend configs like regular Python classes
- Cross-references: Use
Ref()to reference values from other parts of the config tree - Diffing: Compare two configs and see what changed
- Merge: Apply updates from dicts or other configs
- Validation: Define
critical_keysfor consistency checks
Quick Start
from configurize import Config, Ref
class ModelConfig(Config):
in_channels = 32
out_channels = 64
class TrainerConfig(Config):
train_iters = 100
batch_size = 16
class Exp(Config):
model = ModelConfig
trainer = TrainerConfig
# Create and use
exp = Exp()
print(exp.model.in_channels) # 32
print(exp.trainer.train_iters) # 100
Cross-References with Ref
Use Ref() to reference values from other parts of the config tree:
class ModelConfig(Config):
hidden_dim = Ref('..hidden_dim') # Reference parent's hidden_dim
class Exp(Config):
hidden_dim = 256
model = ModelConfig
exp = Exp()
print(exp.model.hidden_dim) # 256 (resolved from parent)
Reference syntax:
.attr- self.attr..attr- parent.attr...sub.attr- grandparent.sub.attr
Merging and Overrides
exp = Exp()
# Merge from dict (supports dot notation)
exp.merge({'model.in_channels': 64, 'trainer.train_iters': 200})
# Temporary modifications
with exp.trainer.modify(batch_size=32):
print(exp.trainer.batch_size) # 32
print(exp.trainer.batch_size) # 16 (restored)
Diffing Configs
exp1 = Exp()
exp2 = Exp()
exp2.model.in_channels = 128
diff = exp1.diff(exp2)
print(diff) # Shows differences with colors
CLI Tool
After installation, use cfshow to inspect and compare config files:
# Show a config
cfshow examples/train_example.py
# Compare two configs
cfshow base_exp.py new_exp.py
# Inspect a sub-config
cfshow my_exp.py --key=model
Example
See examples/train_example.py for a complete example showing:
- Nested config structure (logger, model, trainer)
- Builder pattern with
build_*methods - Running an experiment from config
Release files for configurize 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| configurize-0.2.0.tar.gz | 19.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| configurize-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.5 kB
Release files / configurize-0.2.0.tar.gz
| Download URL | configurize-0.2.0.tar.gz |
|---|---|
| Size | 19.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
37268bd45549afb911c00ef60e6e9c78155e06abef52057d3eb28f53089d00db
|
|
BLAKE2b-256 checksum How to use checksums |
670199b885ed1d892a45d72a363d900034b27560b98cfb7e02ae90ed5fa9b327
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency logRelease files / configurize-0.2.0-py3-none-any.whl
| Download URL | configurize-0.2.0-py3-none-any.whl |
|---|---|
| Size | 20.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2bd3f259b8c044e939b555f602d5bfd16082b543dd4399bc0e4e2f9b3cb35054
|
|
BLAKE2b-256 checksum How to use checksums |
2ef7b212b1ffce43954d0afe3da50fa9e9742ed6841a9b8689620b3efadeaec8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency log