Skip to content

Instantly share code, notes, and snippets.

@lclpedro
Created November 26, 2021 21:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lclpedro/87c32370577d7cb8f1cdd1c5bb440daf to your computer and use it in GitHub Desktop.
Save lclpedro/87c32370577d7cb8f1cdd1c5bb440daf to your computer and use it in GitHub Desktop.
Dynaconf examples of use.
TOKEN = 123123
import os
from dynaconf import Dynaconf
# Init a config dynaconf.
# dynaconf init -f <toml> <json> <yaml,yml> <ini> <.env>
settings = Dynaconf(
settings_files=['settings.toml', '.secrets.toml'],
)
# For enable with POC.
os.environ['VAULT_ENABLED_FOR_DYNACONF']='false'
# No is case-sensitive
print(settings.ENV_STR)
print(settings.env_str)
'''
Uma string
Uma string
'''
#Type hints
print(settings.env_str)
print(type(settings.env_str))
print(settings.env_int)
print(type(settings.env_int))
print(settings.env_bool)
print(type(settings.env_bool))
print(settings.env_list)
print(type(settings.env_list))
print(settings.env_dict)
print(type(settings.env_dict))
print(settings.env_float)
print(type(settings.env_float))
'''
Uma string
<class 'str'>
100
<class 'int'>
True
<class 'bool'>
['uma', 'lista']
<class 'dynaconf.vendor.box.box_list.BoxList'>
{'firstName': 'Pedro', 'email': 'pedro.lima@faci.ly'}
<class 'dynaconf.utils.boxing.DynaBox'>
1.1
<class 'float'>
'''
# Using data list and dict
a_list = settings.env_list
print(a_list[0])
a_dict = settings.env_dict
print(a_dict)
print(a_dict['firstName'])
'''
uma
{'firstName': 'Pedro', 'email': 'pedro.lima@faci.ly'}
Pedro
'''
# Using Vault
# $ docker run -d -e 'VAULT_DEV_ROOT_TOKEN_ID=myroot' -p 8200:8200 vault
# $ pip install 'dynaconf[vault]'
settings = Dynaconf(
environment=True,
vault_enabled=True,
vault={'url': 'http://localhost:8200', 'token': 'myroot'} # recommended to keep as env var.
)
os.environ['VAULT_ENABLED_FOR_DYNACONF']='true'
# $ dynaconf -i config.settings write vault -s password=password_default
# $ dynaconf -i config.settings write vault -s password=password_dev -e development
# $ dynaconf -i config.settings write vault -s password=password_prod -e production
print(settings.password)
'''
$ password_default
'''
# Using variables by environments.
print(settings.from_env('development').password)
'''
$ password_dev
'''
print(settings.from_env('production').password)
'''
$ password_prod
'''
ENV_STR = 'Uma string'
ENV_INT = 100
ENV_BOOL = true
ENV_LIST = ['uma', 'lista']
ENV_DICT = {firstName='Pedro', email='pedro.lima@faci.ly'}
ENV_FLOAT = 1.10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment