dynamic-config
Project configuration variables are declared beforehand and inferred from environment variables or configuration files. Useful while developing and deploying( CI/CD) django web-apps
Install
pip install dynamic-conf
Features
- supports
.envor.pyfiles - supports casting with type annotations
- You also don't need to include a sample file. Since the
Configobject would be able to generate.env.pyitself. - It also loads Configuration variables from environment variables.
The order of preference is
env variables>env.py - Attributes are lazily evaluated.
Getting Started
- You need to subclass the
Configclass. - The config file should define all the variables needed for a project.
# project/conf.py
from dynamic_conf import Config
class CONFIG(Config):
"""singleton to be used for configuring from os.environ and env.py"""
SECRET_KEY:str # required value
# default settings
ENV = "prod" # optional field with a default value
DB_NAME = "db"
DB_HOST = "127.0.0.1"
DB_USER = "postgres"
DB_PASS = None # even None could be given as default value
- to create
project/env.pyjust run with the path to CONFIG class's module
# you could pass environment variables or set already with export
env DB_PASS='123' dynamic-conf project/conf.py
dynamic-conf project/conf.py DB_USER='user-1' DB_PASS='123' # pass as list of key-value pair
#to filter environment variables with a prefix
env VARS_PREFIX="PROD_" dynamic-conf project/conf.py PROD_DB_USER="user-2"
Usage
- To use the config simply import and use particular attribute
# project/settings.py
from conf import CONFIG
DATABASES = {
"default": {
"ENGINE": "django.contrib.gis.db.backends.postgis",
"HOST": CONFIG.DB_HOST,
"NAME": CONFIG.DB_NAME,
"USER": CONFIG.DB_USER,
"PASSWORD": CONFIG.DB_PASSWORD,
"PORT": "5432",
}
}
New release
- create a new release from Github web interface. The package is published to PyPI using Github Actions.
Metadata
Release files for dynamic-conf 1.1.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 | |
|---|---|---|---|
| dynamic_conf-1.1.0.tar.gz | 9.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dynamic_conf-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.3 kB
Release files / dynamic_conf-1.1.0.tar.gz
| Download URL | dynamic_conf-1.1.0.tar.gz |
|---|---|
| Size | 9.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6cbfd22b483a3a411fab2aaedb594bc0bd38dbbf4be9a57edab38983850009c
|
|
BLAKE2b-256 checksum How to use checksums |
91ef2d995e338f0eec9ed5ca8b9308d4d9c4464ff1d685c2b283bde56d550656
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 11, 2025.
Transparency logRelease files / dynamic_conf-1.1.0-py3-none-any.whl
| Download URL | dynamic_conf-1.1.0-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
540b995717e6fb62b94e8f97835045ca987fb5448f93ab0a86b145937f4243f8
|
|
BLAKE2b-256 checksum How to use checksums |
0fdcd20e92df2b9276a736a8451878ba9e37cbb0f2783460607895ae3bda44c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 11, 2025.
Transparency log