Skip to main content

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


PyPi Version Python Version


Install

pip install dynamic-conf

Features

  • supports .env or .py files
  • supports casting with type annotations
  • You also don't need to include a sample file. Since the Config object would be able to generate .env.py itself.
  • 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 Config class.
  • 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.py just 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)

Source distribution for dynamic-conf 1.1.0
File Size Uploaded
dynamic_conf-1.1.0.tar.gz 9.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dynamic-conf 1.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.3

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page