Configuration file provider that uses pydantic and type hints.
Project description
Modern python configuration file manager using Pydantic and python type hints.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffa369facdc067f01ca5171e019093f3e7b53308cc0241cc6f62b2075b217eed
|
|
| MD5 |
b364a976de7798acc1d6e0eec0d8be3b
|
|
| BLAKE2b-256 |
92cf489c6c70589f5254c9b2713a2b66e11926187fc88681b33d6347bdcf91f1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4759d61a87081a515807cb54aba53b971bd4fd0316b63e1075c98f4ae04fbc5b
|
|
| MD5 |
125cff5235bb56acc70d4ef04519033e
|
|
| BLAKE2b-256 |
d94280d68bccbf710b206a071800b057b19fe51b4bb70a2fc123edd2a385acbc
|