In progress: Jeeves communication is now based on SQLAlchemy
This commit is contained in:
parent
0fdc029153
commit
28726fee01
21 changed files with 637 additions and 78 deletions
70
pyjeeves/config.py
Normal file
70
pyjeeves/config.py
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
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'])
|
||||
Loading…
Add table
Add a link
Reference in a new issue