File size: 1,231 Bytes
7857874 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import torch
# Config that serves all environment
GLOBAL_CONFIG = {
"USE_CUDE_IF_AVAILABLE": True,
"ROUND_DIGIT": 6
}
# Environment specific config, or overwrite of GLOBAL_CONFIG
ENV_CONFIG = {
"development": {
"DEBUG": True
},
"staging": {
"DEBUG": True
},
"production": {
"DEBUG": False,
"ROUND_DIGIT": 3
}
}
def get_config() -> dict:
"""
Get config based on running environment
:return: dict of config
"""
# Determine running environment
ENV = os.environ['PYTHON_ENV'] if 'PYTHON_ENV' in os.environ else 'development'
ENV = ENV or 'development'
# raise error if environment is not expected
if ENV not in ENV_CONFIG:
raise EnvironmentError(f'Config for envirnoment {ENV} not found')
config = GLOBAL_CONFIG.copy()
config.update(ENV_CONFIG[ENV])
config['ENV'] = ENV
config['DEVICE'] = 'cuda' if torch.cuda.is_available() and config['USE_CUDE_IF_AVAILABLE'] else 'cpu'
return config
# load config for import
CONFIG = get_config()
if __name__ == '__main__':
# for debugging
import json
print(json.dumps(CONFIG, indent=4)) |