Configuration Management for Python.
Project description
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"])
]
)
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
confoid-0.2.0.tar.gz
(9.7 kB
view hashes)