def _list(env, key, more, loader): """Lists all defined config values""" if env: env = env.strip() if key: key = key.strip() if loader: loader = loader.strip() if env: settings.setenv(env) cur_env = settings.current_env.lower() click.echo( click.style( 'Working in %s environment ' % cur_env, bold=True, bg='blue', fg='white' ) ) if not loader: data = settings.store else: identifier = '{}_{}'.format(loader, cur_env) data = settings._loaded_by_loaders.get(identifier, {}) data = data or settings._loaded_by_loaders.get(loader, {}) # remove to avoid displaying twice data.pop('SETTINGS_MODULE', None) def color(_k): if _k in dir(default_settings): return 'blue' return 'green' if not key: datalines = '\n'.join( '%s: %s' % (click.style(k, bg=color(k), fg='white'), pprint.pformat(v)) for k, v in data.items() ) (click.echo_via_pager if more else click.echo)(datalines) else: key = key.upper() value = data.get(key) if not value: click.echo(click.style('Key not found', bg='red', fg='white')) return click.echo( '%s: %s' % ( click.style(key.upper(), bg=color(key), fg='white'), pprint.pformat(value) ) ) if env: settings.setenv()
def __init__(self, dynaconf_file=None): try: self.dynaconf_file = dynaconf_file if self.dynaconf_file is not None: settings.load_file(path=dynaconf_file) if "ENV_FOR_DYNACONF" in os.environ: settings.setenv(os.environ["ENV_FOR_DYNACONF"]) else: settings.setenv("development") except Exception as error: logging.error( f"error in SecretsConnector __init__() " f"error = {error} at {datetime.now()}" ) raise
print("INIVAR", settings.INIVAR) print("JSONVAR", settings.JSONVAR) print("store:", settings.store) print("loaders:", settings.loaded_by_loaders) print("deleted:", settings._deleted) print("dotenv_override:", settings.DOTENV_OVERRIDE_FOR_DYNACONF) print("redis:", settings.REDIS_FOR_DYNACONF) print("PYVAR", settings.PYVAR) print("YAMLVAR", settings.YAMLVAR) print("TOMLVAR", settings.TOMLVAR) print("INIVAR", settings.INIVAR) print("JSONVAR", settings.JSONVAR) settings.setenv('staging') print("PYVAR", settings.PYVAR) print("YAMLVAR", settings.YAMLVAR) print("TOMLVAR", settings.TOMLVAR) print("INIVAR", settings.INIVAR) print("JSONVAR", settings.JSONVAR) print("store:", settings.store) print("loaders:", settings.loaded_by_loaders) print("deleted:", settings._deleted) print("dotenv_override:", settings.DOTENV_OVERRIDE_FOR_DYNACONF) print("redis:", settings.REDIS_FOR_DYNACONF) settings.setenv() print("PYVAR", settings.PYVAR) print("YAMLVAR", settings.YAMLVAR) print("TOMLVAR", settings.TOMLVAR)
print(settings.CUSTOM) print("* Switiching to production") # using [production] env values for context with settings.using_env("PRODUCTION"): print(settings.CUSTOM) print(settings.HOST) print("* Switiching to development") # back to default [development] env print(settings.get("CUSTOM")) print(settings.HOST) print("* Switiching to production") # set env to [production]: settings.setenv("production") print(settings.HOST) print(settings.CUSTOM) print("* Switiching to development") # back to [development] env again settings.setenv() print(settings.HOST) print(settings.get("INEXISTENT")) # None print(settings.WORKS) assertions = { "HOST": "dev_server.com from yaml", "PORT": 5000, "USERNAME": "******",
print("TOMLVAR", settings.TOMLVAR) print("INIVAR", settings.INIVAR) print("JSONVAR", settings.JSONVAR) print("store:", settings.store) print("loaders:", settings.loaded_by_loaders) print("deleted:", settings._deleted) print("dotenv_override:", settings.DOTENV_OVERRIDE_FOR_DYNACONF) print("redis:", settings.REDIS_FOR_DYNACONF) print("PYVAR", settings.PYVAR) print("YAMLVAR", settings.YAMLVAR) print("TOMLVAR", settings.TOMLVAR) print("INIVAR", settings.INIVAR) print("JSONVAR", settings.JSONVAR) settings.setenv("staging") print("PYVAR", settings.PYVAR) print("YAMLVAR", settings.YAMLVAR) print("TOMLVAR", settings.TOMLVAR) print("INIVAR", settings.INIVAR) print("JSONVAR", settings.JSONVAR) print("store:", settings.store) print("loaders:", settings.loaded_by_loaders) print("deleted:", settings._deleted) print("dotenv_override:", settings.DOTENV_OVERRIDE_FOR_DYNACONF) print("redis:", settings.REDIS_FOR_DYNACONF) settings.setenv() print("PYVAR", settings.PYVAR) print("YAMLVAR", settings.YAMLVAR) print("TOMLVAR", settings.TOMLVAR)
import os from dynaconf import settings # This is the main settings file os.environ["SETTINGS_FILE_FOR_DYNACONF"] = "default.toml" # To make dynaconf read more file we need to include it print("using config 1") os.environ["INCLUDES_FOR_DYNACONF"] = "./cfg/settings.toml" print("development") settings.setenv("development") print(settings.VAR_DFT) print(settings.VAR1) assert settings.VAR_DFT == "default_dev" assert settings.VAR1 == "config1_dev" print("changing to production") settings.setenv("production") print(settings.VAR_DFT) print(settings.VAR1) assert settings.VAR_DFT == "default_prod" assert settings.VAR1 == "config1_prod" print("----") # To make dynaconf a diferent file we need to include it # includes can be a toml-like list print("using config 2") os.environ["INCLUDES_FOR_DYNACONF"] = "['./cfg2/settings.toml']"
# Imports import time import os import board from pprint import pprint from datetime import datetime from dynaconf import settings import adafruit_dht import psycopg2 import subprocess import argparse import threading import paho.mqtt.publish as mqtt_publish # Load config settings.setenv("APP") USE_DOCKER = settings.USE_DOCKER GPIO_LIST = settings.GPIO_LIST USE_DATABASE = settings.USE_DATABASE USE_GPIO = settings.USE_GPIO USE_WEBCAM = settings.USE_WEBCAM USE_MQTT = settings.USE_MQTT WEBCAM_INTERVAL = settings.WEBCAM_INTERVAL WEBCAM_OUTPUT_PATH = os.getcwd( ) + os.path.sep + 'data' + os.path.sep + 'images' WEBCAM_DEVICE = settings.WEBCAM_DEVICE WEBCAM_USE_PNG = settings.WEBCAM_USE_PNG WEBCAM_RESOLUTION = settings.WEBCAM_RESOLUTION WEBCAM_EXTRA_ARGS = settings.WEBCAM_EXTRA_ARGS WEBCAM_TIMELAPSE = settings.WEBCAM_TIMELAPSE SLEEP = settings.as_float('SLEEP')
from dynaconf import settings print('development') print(settings.VAR1) print(settings.VAR2) print('production') settings.setenv('production') print(settings.VAR1) print(settings.VAR2)