Confoid
Configuration Management for Python.
Install
$ pip install confoid
Loading a single config file
import confoid
new_settings = confoid.Config("application.yml")
Loading multiple config file
Multiple files can be provided in order and will merge with the previous configuration.
import confoid
config_files = ["application.yml", "application.development.yml"]
new_settings = confoid.Config(
config_files,
base_dir="config",
)
Autoload based on provided environment
import confoid
new_settings = confoid.Config("application.yml", current_env="development")
# this will load application.yml and application.{current_env}.yml
Reading the settings
settings.username == "admin" # dot notation with multi nesting support
settings['password'] == "secret123" # dict like access
settings.get("nonexisting", "default value") # Default values just like a dict
settings.databases.name == "mydb" # Nested key traversing
Config merging
application.yml
default:
prefix:
otp: "user-otp"
auth: "auth-tokens"
type: inmemory
redis:
url:
application.development.yml
default:
type: redis
redis:
url: redis://saviof.com
encoding: "utf8"
Will resolve to the following final config
default:
prefix:
otp: "user-otp"
auth: "auth-tokens"
type: redis
redis:
url: redis://saviof.com
encoding: "utf8"
Config environment vars
All fields can use environment variables with a fallback default value
password: ${TEST_SERVICE_DEFAULT_PASSWORD:test}
Validators can be added for pre checks on loaded config
from confoid import Validator
config_files = ["application.yml", "application.development.yml"]
new_settings = confoid.Config(
config_files,
base_dir="config",
validators=[
Validator("default", "default.redis.password", must_exist=True)
Validator("otp.length", gte=6, lte=20)
Validator("default.type", values=["inmemory", "redis"])
]
)
Release files for confoid 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| confoid-0.2.0.tar.gz | 9.7 kB | Details |
Release files / confoid-0.2.0.tar.gz
| Download URL | confoid-0.2.0.tar.gz |
|---|---|
| Size | 9.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
185c77b98d54567ac71f8d71a79ff1c989c8548446d37e5483b5d1a2c36e0804
|
|
BLAKE2b-256 checksum How to use checksums |
0a1d932f45670f6108bff2df778e94fff07dc04e203be11c2b0aab8e3641c289
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.6
|