Skip to main content

Easy to manage Config variables separate from App code. Useful while developing and deploying( CI/CD) django web-apps

Project description

dynamic-config

Easy to manage Config variables separate from App code. Useful while developing and deploying( CI/CD) django web-apps

Usage

  • You need to subclass the Config class.
  • Any configuration would be loaded from python config file (default: env.py) from the same folder where library is inherited. This file should not be committed to version history.
  • 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 preference is env variables > env.py
  • The config file should define all the variables needed for a project.
  • It can also define a prefix to limit environment variables searched.
# project/conf.py

from dynamic_conf import Config

class CONFIG(Config):
    """singleton to be used for configuring from os.environ and env.py"""

    # 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

    SECRET_KEY:str # required field. Note: it will not work in Python 2 because
  • to create project/env.py just run
# you could pass environment variables or set already with export
env DB_PASS='123' dynamic-conf

# or you could pass as list of key-value pair
dynamic-conf DB_USER='user-1' DB_PASS='123'

# to filter environment variables with a prefix
env VARS_PREFIX="PROD_" dynamic-conf PROD_DB_USER="user-2"
  • 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",
    }
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynamic-conf-0.1.2.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

dynamic_conf-0.1.2-py2.py3-none-any.whl (5.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file dynamic-conf-0.1.2.tar.gz.

File metadata

  • Download URL: dynamic-conf-0.1.2.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.4 Linux/5.3.5-1-MANJARO

File hashes

Hashes for dynamic-conf-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d49f75c809024a24d607ceeedbf286b35a773b461481e362727739a985fa2be8
MD5 58f2534bd9015ca130ce8170d3fe1615
BLAKE2b-256 8dda7d1464164b955f281c11a7bf64fd23fd2cf6a87ca2cf3eb3380bf2e61e98

See more details on using hashes here.

File details

Details for the file dynamic_conf-0.1.2-py2.py3-none-any.whl.

File metadata

  • Download URL: dynamic_conf-0.1.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.4 Linux/5.3.5-1-MANJARO

File hashes

Hashes for dynamic_conf-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 10fc8c0dd4f137311c89d38fe45d3df65bdbc0fcab6dce9a60ad342718829c07
MD5 a1977df845ca675bd9725e3ca592fbdc
BLAKE2b-256 805ed84abf8da8ebda601dfd1e445b8c58d12e6319512610bf0d39147e8a10c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page