-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.py
More file actions
95 lines (79 loc) · 2.68 KB
/
config.py
File metadata and controls
95 lines (79 loc) · 2.68 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# flake8: noqa
from gevent import monkey
monkey.patch_all()
import os
from dotenv import load_dotenv
import redis
load_dotenv() # initialize dotenv
base_dir = os.path.abspath(os.getcwd())
class BaseConfig:
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY = os.getenv("APP_SECRET")
REDIS_PORT = os.getenv('REDIS_PORT', 6379)
REDIS_HOST = os.getenv('REDIS_HOST', '127.0.0.1')
REDIS_PASS = os.getenv('REDIS_PASS')
HUEY_CONFIG = dict(
connection_pool=redis.ConnectionPool(
host=REDIS_HOST, port=REDIS_PORT,
password=REDIS_PASS, db=0
)
)
ADMIN_EMAIL = os.getenv('ADMIN_EMAIL')
DB_USERNAME = os.getenv('DATABASE_USER')
DB_PASSPHRASE = os.getenv('DATABASE_PASSWORD')
F_KEY_PATH = os.path.join(
os.path.abspath(os.getcwd()),
os.getenv('F_KEY')
)
SQLALCHEMY_ECHO = False
SESSION_TYPE = 'redis'
SERVER_NAME = os.getenv('SERVER_NAME')
class DevConfig(BaseConfig):
DB_NAME = f"{os.getenv('DATABASE_HOST')}/{os.getenv('DATABASE_NAME')}"
URI = f"{BaseConfig.DB_USERNAME}:{BaseConfig.DB_PASSPHRASE}@{DB_NAME}"
SQLALCHEMY_DATABASE_URI = f"cockroachdb+psycopg2://{URI}"
FLASK_COVERAGE = True
SESSION_REDIS = redis.Redis(
host=BaseConfig.REDIS_HOST,
port=BaseConfig.REDIS_PORT,
password=BaseConfig.REDIS_PASS,
db=5
)
SQLALCHEMY_ENGINE_OPTIONS = {
'connect_args': {
'sslmode': "verify-full",
'sslrootcert': os.getenv('DATABASE_CERT_PATH')
}
}
class StagingConfig(BaseConfig):
DB_NAME = f"{os.getenv('DATABASE_HOST')}/{os.getenv('DATABASE_NAME')}"
DEBUG = True
URI = f"{BaseConfig.DB_USERNAME}:{BaseConfig.DB_PASSPHRASE}@{DB_NAME}"
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{URI}"
FLASK_COVERAGE = True
SESSION_REDIS = redis.Redis(
host=BaseConfig.REDIS_HOST,
port=BaseConfig.REDIS_PORT,
password=BaseConfig.REDIS_PASS,
db=5
)
class TestConfig(BaseConfig):
DB_NAME = os.getenv('TEST_DB', 'handeestestdb')
URI = f"{BaseConfig.DB_USERNAME}:{BaseConfig.DB_PASSPHRASE}@{DB_NAME}"
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{URI}"
ADMIN_EMAIL = os.getenv('ADMIN-EMAIL')
TESTING = True
FLASK_COVERAGE = True
class Production(BaseConfig):
DB_NAME = os.getenv('DATABASE-URL')
URI = f"{BaseConfig.DB_USERNAME}:{BaseConfig.DB_PASSPHRASE}@{DB_NAME}"
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{URI}"
config_options = {
"default": TestConfig,
"local": StagingConfig,
"staging": StagingConfig,
"development": DevConfig,
"dev": DevConfig,
"testing": TestConfig,
"production": Production
}