Skip to main content

A package to share config accross modules

Project description

Introduction

config_bat is a package helps developers easily config the app using config.json file.

Getting Started

  1. Installation process:
pip install config_bat
  1. Usage:

Getting config: if there is no config in config.json, return default_value

from config_bat import config
your_config = config.get("config_key",default_value)

# Get nested config data
# You can get nested dict data for cases that you have many value spread out for the same master key
# Example dict: two mongodb master key config, but only username is different from dev and prod
# The "common" key is readed by default.
# If the config apears both in "common" and other stages, the stage config will be used.

nestedConfig = {
  "common":{
    "mongodb":{
      "host":"localhost"
    },
    "development":{
      "mongodb":{
        "username":"test"
      }
    }
  }
}

host = config.get("mongodb",default_value)["host"] # Return KeyError
host = config.get("mongodb.host",default_value) # Return "test"

The default_value is optional, if default_value is not provided, the function will return None.

  1. API references:

Environment variables:

The package behavior can be overrided by export these environment variables:

CONFIG_PATH: the path to config file. Default: "/config/config.json".

APP_STAGE: define in config.json.

config.json file:

The first level key is the stage of the app. You can define the config nested in those keys.

The "common" key is readed by default. If the config apears both in "common" and other stages, the stage config will be used.

If you want to use environmen variables, place a "$" character before you variable name.

Example of config.json:

{
  "common": {
    // Environmental variables
    "JWT_SECRET": "$SEC_KEY",
    "port": 8080
  },
  "development": {
   // Nested config
    "mongodb": {
      "host": "localhost",
      "user": "dev_user",
      "pass": "dev_pass"
    }
  },
  "production": {
    "mongodb": {
      "host": "your.domain",
      "user": "prod_user",
      "pass": "prod_pass"
    }
  }
}

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

config_bat-0.4.0.tar.gz (2.7 kB view hashes)

Uploaded Source

Built Distribution

config_bat-0.4.0-py3-none-any.whl (3.7 kB view hashes)

Uploaded Python 3

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