1
- import sys
2
1
import logging
3
- import urlparse
2
+ import os
3
+ import sys
4
4
import urllib
5
+ import urlparse
5
6
6
7
import redis
7
- from flask import Flask , current_app
8
- from werkzeug .contrib .fixers import ProxyFix
9
- from werkzeug .routing import BaseConverter
10
- from statsd import StatsClient
11
8
from flask_mail import Mail
12
9
from flask_limiter import Limiter
13
10
from flask_limiter .util import get_ipaddr
14
11
from flask_migrate import Migrate
12
+ from statsd import StatsClient
15
13
16
- from redash import settings
17
- from redash .query_runner import import_query_runners
18
- from redash .destinations import import_destinations
19
-
14
+ from . import settings
15
+ from .app import create_app # noqa
20
16
21
17
__version__ = '7.0.0'
22
18
23
19
24
- import os
25
20
if os .environ .get ("REMOTE_DEBUG" ):
26
21
import ptvsd
27
22
ptvsd .enable_attach (address = ('0.0.0.0' , 5678 ))
@@ -36,10 +31,8 @@ def setup_logging():
36
31
37
32
# Make noisy libraries less noisy
38
33
if settings .LOG_LEVEL != "DEBUG" :
39
- logging .getLogger ("passlib" ).setLevel ("ERROR" )
40
- logging .getLogger ("requests.packages.urllib3" ).setLevel ("ERROR" )
41
- logging .getLogger ("snowflake.connector" ).setLevel ("ERROR" )
42
- logging .getLogger ('apiclient' ).setLevel ("ERROR" )
34
+ for name in ["passlib" , "requests.packages.urllib3" , "snowflake.connector" , "apiclient" ]:
35
+ logging .getLogger (name ).setLevel ("ERROR" )
43
36
44
37
45
38
def create_redis_connection ():
@@ -67,69 +60,13 @@ def create_redis_connection():
67
60
68
61
69
62
setup_logging ()
63
+
70
64
redis_connection = create_redis_connection ()
71
65
72
66
mail = Mail ()
73
- migrate = Migrate ()
74
- mail .init_mail (settings .all_settings ())
75
- statsd_client = StatsClient (host = settings .STATSD_HOST , port = settings .STATSD_PORT , prefix = settings .STATSD_PREFIX )
76
- limiter = Limiter (key_func = get_ipaddr , storage_uri = settings .LIMITER_STORAGE )
77
-
78
- import_query_runners (settings .QUERY_RUNNERS )
79
- import_destinations (settings .DESTINATIONS )
80
67
81
- from redash .version_check import reset_new_version_status
82
- reset_new_version_status ()
83
-
84
-
85
- class SlugConverter (BaseConverter ):
86
- def to_python (self , value ):
87
- # This is ay workaround for when we enable multi-org and some files are being called by the index rule:
88
- # for path in settings.STATIC_ASSETS_PATHS:
89
- # full_path = safe_join(path, value)
90
- # if os.path.isfile(full_path):
91
- # raise ValidationError()
92
-
93
- return value
94
-
95
- def to_url (self , value ):
96
- return value
97
-
98
-
99
- def create_app ():
100
- from redash import authentication , extensions , handlers , security
101
- from redash .handlers .webpack import configure_webpack
102
- from redash .handlers import chrome_logger
103
- from redash .models import db , users
104
- from redash .metrics import request as request_metrics
105
- from redash .utils import sentry
106
-
107
- sentry .init ()
108
-
109
- app = Flask (__name__ ,
110
- template_folder = settings .STATIC_ASSETS_PATH ,
111
- static_folder = settings .STATIC_ASSETS_PATH ,
112
- static_url_path = '/static' )
113
-
114
- # Make sure we get the right referral address even behind proxies like nginx.
115
- app .wsgi_app = ProxyFix (app .wsgi_app , settings .PROXIES_COUNT )
116
- app .url_map .converters ['org_slug' ] = SlugConverter
117
-
118
- # configure our database
119
- app .config ['SQLALCHEMY_DATABASE_URI' ] = settings .SQLALCHEMY_DATABASE_URI
120
- app .config .update (settings .all_settings ())
68
+ migrate = Migrate ()
121
69
122
- security .init_app (app )
123
- request_metrics .init_app (app )
124
- db .init_app (app )
125
- migrate .init_app (app , db )
126
- mail .init_app (app )
127
- authentication .init_app (app )
128
- limiter .init_app (app )
129
- handlers .init_app (app )
130
- configure_webpack (app )
131
- extensions .init_app (app )
132
- chrome_logger .init_app (app )
133
- users .init_app (app )
70
+ statsd_client = StatsClient (host = settings .STATSD_HOST , port = settings .STATSD_PORT , prefix = settings .STATSD_PREFIX )
134
71
135
- return app
72
+ limiter = Limiter ( key_func = get_ipaddr , storage_uri = settings . LIMITER_STORAGE )
0 commit comments