Skip to main content

Cross-language configuration library with resolver support

Project description

holoconf

PyPI Python License: MIT

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

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

holoconf-0.2.0.tar.gz (94.0 kB view details)

Uploaded Source

Built Distributions

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

holoconf-0.2.0-cp38-abi3-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.8+Windows x86-64

holoconf-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

holoconf-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

holoconf-0.2.0-cp38-abi3-manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ x86-64

holoconf-0.2.0-cp38-abi3-manylinux_2_28_aarch64.whl (4.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARM64

holoconf-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (8.1 MB view details)

Uploaded CPython 3.8+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

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

Hashes for holoconf-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a82e94d209d7a00745787555ee2116737918f33e3807e150450ee2045dd40a11
MD5 5706d3581cc444aa6531867da5990c67
BLAKE2b-256 d6ad3d58d13069e5090e4dd25cdb942176b574c37ccd6522fb8707896d4a6ed5

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.2.0.tar.gz:

Publisher: release.yml on rfestag/holoconf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for holoconf-0.2.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d25f85a42a8ca7098a2c50c619260bfdeb6b05a25bfaa1979684c8c7f3f5bcdd
MD5 9d46cac157dfb6490f66928bf8bb1a75
BLAKE2b-256 b9decd439b0b6d338a83cb8d5b82346cff5babd4d0bf28915bcd44ff76e4ba04

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.2.0-cp38-abi3-win_amd64.whl:

Publisher: release.yml on rfestag/holoconf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file holoconf-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for holoconf-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 05a7df4c33099ceedf9ec17fcb3838ba92950c6a29da50a7e08ee99c59ab8da2
MD5 e9f4f45639734993a54e999f56bdff0d
BLAKE2b-256 34a5e3ecc7dbcbefcae3c3eace12fa6183848f48e7bf774b513cf6bfd7b2938f

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file holoconf-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for holoconf-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 585e0da47b41433a3599ef54b08014dedd69e5bbe0d78d379bcc6dbbacb28c32
MD5 600737e7fe3efc7a2262311c6f9567f3
BLAKE2b-256 567f226e1d77f3e6f45d7533aca0dd2a4be614bf69062761fbe9b3592e63505e

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file holoconf-0.2.0-cp38-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for holoconf-0.2.0-cp38-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59c4211e1db44dd4dafc99bf87c30728e1812d98238f8f475872c4bf75fcbe63
MD5 8f7311fc99e22c3d81b88ad61a3799f6
BLAKE2b-256 526f7b38bd9f39183b9aaee25eb43507d4b63c5dde1d93784ef9f47798dc992a

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file holoconf-0.2.0-cp38-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for holoconf-0.2.0-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb2518ace9a9d737a7a2656dc5eb36b26ee7465bdc7722305273c04b4f5b802d
MD5 e26221426737c923a01f4f250e9292a8
BLAKE2b-256 630e9aea03673382f541514aca2ea64153a4b5044998c4ae83d416582f639cd0

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

File hashes

Hashes for holoconf-0.2.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 ca10e0aafa108839e2199060589c6a83c6b5dbf8eab670dc00e5fe57c97d6af0
MD5 fd96753fa394b787ce009ac458c3ca12
BLAKE2b-256 aca4743904df9ab185cb0abd09efde12cd59eeb6a47220be24b6b0b7c691bd3e

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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