70 lines
2.4 KiB
Python
70 lines
2.4 KiB
Python
from logging.config import dictConfig
|
|
import os
|
|
import yaml
|
|
|
|
|
|
defaults = {
|
|
'alembic': {
|
|
'script_location': 'migrations',
|
|
'sqlalchemy.url': ''},
|
|
'databases': {
|
|
'meta': {},
|
|
'raw': {}},
|
|
'logging': {
|
|
'formatters': {
|
|
'simpleFormatter': {
|
|
'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s'}},
|
|
'handlers': {
|
|
'consoleHandler': {
|
|
'class': 'logging.StreamHandler',
|
|
'formatter': 'simpleFormatter',
|
|
'level': 'DEBUG',
|
|
'stream': 'ext://sys.stdout'},
|
|
'fileHandler': {
|
|
'class': 'logging.FileHandler',
|
|
'filename': 'pyjeeves.log',
|
|
'formatter': 'simpleFormatter',
|
|
'level': 'INFO'}},
|
|
'loggers': {
|
|
'PyJeeves': {'handlers': ['fileHandler'],
|
|
'level': 'DEBUG'},
|
|
'alembic': {'handlers': ['fileHandler'],
|
|
'level': 'INFO'},
|
|
'sqlalchemy': {'handlers': ['fileHandler'],
|
|
'level': 'WARN',
|
|
'qualname': 'sqlalchemy.engine'}},
|
|
'root': {'handlers': ['consoleHandler'], 'level': 'DEBUG'},
|
|
'version': 1},
|
|
'sync_interval': 60}
|
|
|
|
|
|
try:
|
|
with open("config.yml", 'r') as ymlfile:
|
|
file_config = yaml.load(ymlfile, Loader=yaml.FullLoader)
|
|
config = {**defaults, **file_config} # Syntax introduced in Python 3.5
|
|
except IOError as e:
|
|
pass
|
|
|
|
dictConfig(config['logging'])
|
|
|
|
config['debug'] = os.getenv('ENVIRONEMENT') == 'DEV'
|
|
|
|
DB_CONTAINER = os.getenv('APPLICATION_DB_CONTAINER', 'db')
|
|
config['databases']['raw'] = {
|
|
'user': os.getenv('JEEVES_USER', 'jvsdbo'),
|
|
'pw': os.getenv('JEEVES_PW', ''),
|
|
'host': os.getenv('JEEVES_HOST', ''),
|
|
'port': os.getenv('JEEVES_PORT', 1433),
|
|
'db': os.getenv('JEEVES_DB', ''),
|
|
}
|
|
config['databases']['meta'] = {
|
|
'user': os.getenv('META_MYSQL_USER', 'pyjeeves'),
|
|
'pw': os.getenv('META_MYSQL_PW', ''),
|
|
'host': os.getenv('META_MYSQL_HOST', DB_CONTAINER),
|
|
'port': os.getenv('META_MYSQL_PORT', 3306),
|
|
'db': os.getenv('META_MYSQL_DB', 'pyjeeves'),
|
|
}
|
|
# DB_URI = 'postgresql://%(user)s:%(pw)s@%(host)s:%(port)s/%(db)s' % POSTGRES
|
|
config['alembic']['sqlalchemy.url'] = (
|
|
'mysql+pymysql://%(user)s:%(pw)s@%(host)s:%(port)s/%(db)s?charset=utf8mb4' %
|
|
config['databases']['meta'])
|