Skip to main content

Configuration file provider that uses pydantic and type hints.

Project description

Pydaconf

Modern python configuration file manager using Pydantic and python type hints.

GitHub Workflow Status GitHub last commit GitHub GitHub Docs

What is PydaConf

Pydaconf is a simple yet powerful open-source Python library for loading application configurations. It leverages modern Python features, including type hints and the awesome data validation Pydantic models for clarity and maintainability. Pydaconf provides seamless configuration loading from YAML, TOML, and JSON files while supporting dynamic secret injection via a pluggable architecture.

Installation

Install using pip install pydaconf[all]
For more installation options see the Install section in the documentation.

A Simple Example

  • Create config file in toml, yaml or json
domain: pydaconf.com
openai_token: ENV:///OPENAI_TOKEN
database:
  host: eu-central-db01.{{ domain }}
  username: svc_db01
  password: SEALED:///gAAAAABnpRqHdho_dFB7iMs_Ufv5nu59LwqQfE3YCjaDTyg-YrYsEpK8bfvdKsdrj6kCxrAjezCGAdVM0FhzwyfYFIgqnquw8w==
  • Create Pydantic Model and load the configuration
from pydaconf import PydaConf
from pydantic import BaseModel

class DbConfig(BaseModel):
    host: str
    username: str
    password: str

class Config(BaseModel):
    domain: str
    openai_token: str
    database: DbConfig

provider = PydaConf[Config]()
provider.from_file("config.yaml")
print(provider.config.database.password)

Help

See documentation for more details.

Interpolation

Templates Example
contact_email: user@{{ domain }}
db_server: {{ backend.server }}
first_username: {{ users[0].username }}

Builtin plugins

Plugin Description
ENV Inject secret from environment variable
SEALED Inject a sealed secret. Secrets can be encrypted with a symmetric key and stored in a file. The provider expects the key in the PYDACONF_SEALED_KEY environment variable.
FILE_CONTENT Inject content from a file. This is useful in scenarios where the secret is mounted on the file system, such as in k8s containers.

Official plugins

Plugin Description

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

pydaconf-0.1.0.tar.gz (71.3 kB view details)

Uploaded Source

Built Distribution

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

pydaconf-0.1.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file pydaconf-0.1.0.tar.gz.

File metadata

  • Download URL: pydaconf-0.1.0.tar.gz
  • Upload date:
  • Size: 71.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for pydaconf-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ffa369facdc067f01ca5171e019093f3e7b53308cc0241cc6f62b2075b217eed
MD5 b364a976de7798acc1d6e0eec0d8be3b
BLAKE2b-256 92cf489c6c70589f5254c9b2713a2b66e11926187fc88681b33d6347bdcf91f1

See more details on using hashes here.

File details

Details for the file pydaconf-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pydaconf-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for pydaconf-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4759d61a87081a515807cb54aba53b971bd4fd0316b63e1075c98f4ae04fbc5b
MD5 125cff5235bb56acc70d4ef04519033e
BLAKE2b-256 d94280d68bccbf710b206a071800b057b19fe51b4bb70a2fc123edd2a385acbc

See more details on using hashes here.

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