python-snippets/api-client/config.py

25 lines
832 B
Python

import os
from dotenv import load_dotenv
from types import MappingProxyType
def get_cfg(env='qa'):
environment_name = os.getenv('ENV_NAME', env)
dotenv_path = f'.env.{environment_name}'
if not os.path.exists(dotenv_path):
raise FileNotFoundError(f"{dotenv_path} does not exist")
load_dotenv(dotenv_path)
config_dict = {
'client_id': os.getenv('CLIENT_ID'),
'client_secret': os.getenv('CLIENT_SECRET'),
'token_url': os.getenv('TOKEN_FETCH_URL'),
'username': os.getenv('USERNAME'),
'password': os.getenv('PASSWORD'),
'audience': os.getenv('AUDIENCE'),
'scopes': os.getenv('SCOPES', '').split(','),
'api_url': os.getenv('API_URL')
}
config = MappingProxyType(config_dict) # immutable dict
return config