"""Config. Contains essential constants for project functioning. """ import os import requests LOOKER_MAIN_INSTANCE_CLIENT_ID = os.environ.get('LOOKER_MAIN_INSTANCE_CLIENT_ID') LOOKER_MAIN_INSTANCE_CLIENT_SECRET = os.environ.get('LOOKER_MAIN_INSTANCE_CLIENT_SECRET') LOOKER_MAIN_INSTANCE_URL = 'https://theorchard.looker.com:19999/api/3.1' LOOKER_CLIENT_INSTANCE_CLIENT_ID = os.environ.get('LOOKER_CLIENT_INSTANCE_CLIENT_ID') LOOKER_CLIENT_INSTANCE_CLIENT_SECRET = os.environ.get('LOOKER_CLIENT_INSTANCE_CLIENT_SECRET') LOOKER_CLIENT_INSTANCE_URL = 'https://theorchardoem.looker.com:19999/api/3.1' def get_api3_key(client_id, client_secret, instance='main'): credentials = { 'client_id': client_id, 'client_secret': client_secret } url = f'{LOOKER_MAIN_INSTANCE_URL}/login' if instance == 'client': url = f'{LOOKER_CLIENT_INSTANCE_URL}/login' auth = requests.post(url, params=credentials) return auth.json()['access_token'] LOOKER_MAIN_AUTH_TOKEN = get_api3_key( LOOKER_MAIN_INSTANCE_CLIENT_ID, LOOKER_MAIN_INSTANCE_CLIENT_SECRET ) LOOKER_CLIENT_AUTH_TOKEN = get_api3_key( LOOKER_CLIENT_INSTANCE_CLIENT_ID, LOOKER_CLIENT_INSTANCE_CLIENT_SECRET, 'client' ) LOOKER_MAIN_VALIDATION = {'Authorization': f'token {LOOKER_MAIN_AUTH_TOKEN}'} LOOKER_CLIENT_VALIDATION = {'Authorization': f'token {LOOKER_CLIENT_AUTH_TOKEN}'} GITHUB_TOKEN = os.environ.get('GITHUB_TOKEN')