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.1.3.tar.gz (50.1 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.1.3-cp312-cp312-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.12Windows x86-64

holoconf-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

holoconf-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

holoconf-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

holoconf-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

holoconf-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

holoconf-0.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

holoconf-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: holoconf-0.1.3.tar.gz
  • Upload date:
  • Size: 50.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for holoconf-0.1.3.tar.gz
Algorithm Hash digest
SHA256 685671a677340caaa9d320940b2143f1fe62e71275bf733630723a9de2babbb6
MD5 07f803ef66ab26272cc11a672209e6c7
BLAKE2b-256 95c0a9fb2ecf0ae1e3a164f40234a94d2ec530ece86b78d1b401d69675e18a12

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.1.3.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.1.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: holoconf-0.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for holoconf-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 00b992f6854a862dd790411cfd5ac637c574266bdd01946a87d8880440316b65
MD5 cce48e4cc6e70670482202fd4b2bbeda
BLAKE2b-256 797c14f1c356bc2b1775828314c02e843cd3cebb9f824e7b40877ab05e7c48b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.1.3-cp312-cp312-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.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for holoconf-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 149fc92b4605e4f013d317aa97bb00a5bfa1502bda30291df7b65563e33b0461
MD5 4afd4e40dc44502885833baac005f32d
BLAKE2b-256 c88d7863e3216e0761174ee2d71bd6fd96f1ed67d7941692830c931a5978c1c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_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.1.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for holoconf-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f36fbad7827730b2c9862b793fb76085eadff7ee3ff9e7066c002738fb6eb58
MD5 3f6ac3d07064e0f42e0ee54c58ba3c35
BLAKE2b-256 5e41e824dc7383aa8ab9291391204ab1742c2a39fd0b44b1020973c496da1b18

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.1.3-cp312-cp312-macosx_11_0_arm64.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.1.3-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for holoconf-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 987631e549092ce23dd6c37baaabf9cc5d3cd6f7c14b452989f4d8da90fecc28
MD5 7d9a45ca613551fa42dc6a961f8ede51
BLAKE2b-256 af85a70715250efcecf49bcc7f2fa73bdce82abfdecb7e3c43de8592d7783a8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.1.3-cp312-cp312-macosx_10_12_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.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for holoconf-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0d8dbedb456054616ea780750ea08d8c2b49dd48a6e6b4955e0e723adb56af22
MD5 e994541b0fc79b662c5dcc51a215b9e3
BLAKE2b-256 2b2b30abe37574cf62dd445cec900c8dbae45aef779fd0a7dcc03f25782e7760

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_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.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for holoconf-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 acf74b6d6ffc75b70e9bded8b52e2b207b9458e4f4f6f3bb51b574bf42d4131a
MD5 966278be8cc4d874963a81e89196d830
BLAKE2b-256 7541135a22f2489c9d3e63e0ea8afc77493276148c3fce8c876a90d29d6e1fcf

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_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.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for holoconf-0.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7fde06c5b419464ce6c3be13573b95737cb955209de5e1fd827221f53dbce293
MD5 ca5f807c3283be8d62775ab2f032d898
BLAKE2b-256 5579e864435eb8cd08b5ae684dffffe70f3b3a12909b8af844eb1c18317aebaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_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.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for holoconf-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06d5a825eac416c8ea3de54ec4bf4f36a0522e13ed7440deae908383f980494f
MD5 c304cb56dfc2d592cba80fad0ded6786
BLAKE2b-256 fc36a22f39cb68d2c75be8d7bd2873d37e87bee3950ecd10253eb86dc1aaa4aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for holoconf-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_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.

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