Cross-language configuration library with resolver support
Project description
holoconf
A Python configuration library with hierarchical merging, interpolation, and schema validation. Built on a high-performance Rust core.
Installation
pip install holoconf
Quick Start
from holoconf import Config
# Load from YAML string
config = Config.loads("""
database:
host: ${env:DB_HOST,localhost}
port: 5432
url: postgresql://${.host}:${.port}/mydb
""")
# Access values with type coercion
print(config.get("database.host")) # Uses DB_HOST env var or "localhost"
print(config.get_int("database.port")) # 5432
print(config.get("database.url")) # Resolves self-references
# Load from file
config = Config.load("config.yaml")
# Merge multiple configs (later files override earlier)
config = Config.load("base.yaml", "override.yaml")
# Export resolved configuration
print(config.to_yaml())
print(config.to_json())
Features
- Environment variables:
${env:VAR}or${env:VAR,default} - Self-references:
${path.to.value}or${.sibling}for relative paths - File includes:
${file:./other.yaml} - Type coercion:
get_int(),get_bool(),get_float(),get_list(),get_dict() - Lazy resolution: Values resolved on access, cached for efficiency
- Schema validation: Validate against JSON Schema
- Escape sequences:
\${literal}for literal${
Interpolation Syntax
| Syntax | Description | Example |
|---|---|---|
${env:VAR} |
Environment variable | ${env:HOME} |
${env:VAR,default} |
Env var with default | ${env:PORT,8080} |
${path.to.value} |
Self-reference | ${database.host} |
${.sibling} |
Relative reference | ${.port} |
${file:path} |
Include file | ${file:./secrets.yaml} |
\${literal} |
Escape (literal ${) |
\${not_interpolated} |
CLI
holoconf includes a command-line interface:
# Get a configuration value
holoconf get database.host --config config.yaml
# Dump resolved configuration
holoconf dump --config config.yaml --format json
Documentation
- User Guide - Full documentation
- API Reference - Python API docs
- GitHub - Source code and issues
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
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
Built Distributions
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 holoconf-0.2.0.tar.gz.
File metadata
- Download URL: holoconf-0.2.0.tar.gz
- Upload date:
- Size: 94.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a82e94d209d7a00745787555ee2116737918f33e3807e150450ee2045dd40a11
|
|
| MD5 |
5706d3581cc444aa6531867da5990c67
|
|
| BLAKE2b-256 |
d6ad3d58d13069e5090e4dd25cdb942176b574c37ccd6522fb8707896d4a6ed5
|
Provenance
The following attestation bundles were made for holoconf-0.2.0.tar.gz:
Publisher:
release.yml on rfestag/holoconf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
holoconf-0.2.0.tar.gz -
Subject digest:
a82e94d209d7a00745787555ee2116737918f33e3807e150450ee2045dd40a11 - Sigstore transparency entry: 832775807
- Sigstore integration time:
-
Permalink:
rfestag/holoconf@8837bfddde422c6117966346137ebcd534a52cd5 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/rfestag
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8837bfddde422c6117966346137ebcd534a52cd5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file holoconf-0.2.0-cp38-abi3-win_amd64.whl.
File metadata
- Download URL: holoconf-0.2.0-cp38-abi3-win_amd64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.8+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d25f85a42a8ca7098a2c50c619260bfdeb6b05a25bfaa1979684c8c7f3f5bcdd
|
|
| MD5 |
9d46cac157dfb6490f66928bf8bb1a75
|
|
| BLAKE2b-256 |
b9decd439b0b6d338a83cb8d5b82346cff5babd4d0bf28915bcd44ff76e4ba04
|
Provenance
The following attestation bundles were made for holoconf-0.2.0-cp38-abi3-win_amd64.whl:
Publisher:
release.yml on rfestag/holoconf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
holoconf-0.2.0-cp38-abi3-win_amd64.whl -
Subject digest:
d25f85a42a8ca7098a2c50c619260bfdeb6b05a25bfaa1979684c8c7f3f5bcdd - Sigstore transparency entry: 832775811
- Sigstore integration time:
-
Permalink:
rfestag/holoconf@8837bfddde422c6117966346137ebcd534a52cd5 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/rfestag
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8837bfddde422c6117966346137ebcd534a52cd5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file holoconf-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: holoconf-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.7 MB
- Tags: CPython 3.8+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05a7df4c33099ceedf9ec17fcb3838ba92950c6a29da50a7e08ee99c59ab8da2
|
|
| MD5 |
e9f4f45639734993a54e999f56bdff0d
|
|
| BLAKE2b-256 |
34a5e3ecc7dbcbefcae3c3eace12fa6183848f48e7bf774b513cf6bfd7b2938f
|
Provenance
The following attestation bundles were made for holoconf-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl:
Publisher:
release.yml on rfestag/holoconf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
holoconf-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl -
Subject digest:
05a7df4c33099ceedf9ec17fcb3838ba92950c6a29da50a7e08ee99c59ab8da2 - Sigstore transparency entry: 832775810
- Sigstore integration time:
-
Permalink:
rfestag/holoconf@8837bfddde422c6117966346137ebcd534a52cd5 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/rfestag
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8837bfddde422c6117966346137ebcd534a52cd5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file holoconf-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: holoconf-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.8+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
585e0da47b41433a3599ef54b08014dedd69e5bbe0d78d379bcc6dbbacb28c32
|
|
| MD5 |
600737e7fe3efc7a2262311c6f9567f3
|
|
| BLAKE2b-256 |
567f226e1d77f3e6f45d7533aca0dd2a4be614bf69062761fbe9b3592e63505e
|
Provenance
The following attestation bundles were made for holoconf-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl:
Publisher:
release.yml on rfestag/holoconf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
holoconf-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl -
Subject digest:
585e0da47b41433a3599ef54b08014dedd69e5bbe0d78d379bcc6dbbacb28c32 - Sigstore transparency entry: 832775814
- Sigstore integration time:
-
Permalink:
rfestag/holoconf@8837bfddde422c6117966346137ebcd534a52cd5 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/rfestag
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8837bfddde422c6117966346137ebcd534a52cd5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file holoconf-0.2.0-cp38-abi3-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: holoconf-0.2.0-cp38-abi3-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.8+, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59c4211e1db44dd4dafc99bf87c30728e1812d98238f8f475872c4bf75fcbe63
|
|
| MD5 |
8f7311fc99e22c3d81b88ad61a3799f6
|
|
| BLAKE2b-256 |
526f7b38bd9f39183b9aaee25eb43507d4b63c5dde1d93784ef9f47798dc992a
|
Provenance
The following attestation bundles were made for holoconf-0.2.0-cp38-abi3-manylinux_2_28_x86_64.whl:
Publisher:
release.yml on rfestag/holoconf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
holoconf-0.2.0-cp38-abi3-manylinux_2_28_x86_64.whl -
Subject digest:
59c4211e1db44dd4dafc99bf87c30728e1812d98238f8f475872c4bf75fcbe63 - Sigstore transparency entry: 832775808
- Sigstore integration time:
-
Permalink:
rfestag/holoconf@8837bfddde422c6117966346137ebcd534a52cd5 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/rfestag
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8837bfddde422c6117966346137ebcd534a52cd5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file holoconf-0.2.0-cp38-abi3-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: holoconf-0.2.0-cp38-abi3-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.8+, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb2518ace9a9d737a7a2656dc5eb36b26ee7465bdc7722305273c04b4f5b802d
|
|
| MD5 |
e26221426737c923a01f4f250e9292a8
|
|
| BLAKE2b-256 |
630e9aea03673382f541514aca2ea64153a4b5044998c4ae83d416582f639cd0
|
Provenance
The following attestation bundles were made for holoconf-0.2.0-cp38-abi3-manylinux_2_28_aarch64.whl:
Publisher:
release.yml on rfestag/holoconf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
holoconf-0.2.0-cp38-abi3-manylinux_2_28_aarch64.whl -
Subject digest:
fb2518ace9a9d737a7a2656dc5eb36b26ee7465bdc7722305273c04b4f5b802d - Sigstore transparency entry: 832775809
- Sigstore integration time:
-
Permalink:
rfestag/holoconf@8837bfddde422c6117966346137ebcd534a52cd5 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/rfestag
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8837bfddde422c6117966346137ebcd534a52cd5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file holoconf-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: holoconf-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 8.1 MB
- Tags: CPython 3.8+, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca10e0aafa108839e2199060589c6a83c6b5dbf8eab670dc00e5fe57c97d6af0
|
|
| MD5 |
fd96753fa394b787ce009ac458c3ca12
|
|
| BLAKE2b-256 |
aca4743904df9ab185cb0abd09efde12cd59eeb6a47220be24b6b0b7c691bd3e
|
Provenance
The following attestation bundles were made for holoconf-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
release.yml on rfestag/holoconf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
holoconf-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
ca10e0aafa108839e2199060589c6a83c6b5dbf8eab670dc00e5fe57c97d6af0 - Sigstore transparency entry: 832775812
- Sigstore integration time:
-
Permalink:
rfestag/holoconf@8837bfddde422c6117966346137ebcd534a52cd5 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/rfestag
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8837bfddde422c6117966346137ebcd534a52cd5 -
Trigger Event:
push
-
Statement type: