lesscode-flask 0.0.31__tar.gz → 0.0.33__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/PKG-INFO +10 -18
  2. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/__init__.py +1 -1
  3. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/app.py +83 -47
  4. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/db/datasource.py +4 -4
  5. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask.egg-info/PKG-INFO +10 -18
  6. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask.egg-info/requires.txt +9 -17
  7. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/query_runner/__init__.py +7 -7
  8. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/query_runner/kingbase.py +3 -2
  9. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/query_runner/mysql.py +4 -3
  10. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/query_runner/pg.py +3 -2
  11. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/settings/__init__.py +1 -1
  12. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/utils/requests_session.py +5 -5
  13. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/README.md +0 -0
  14. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/db/__init__.py +0 -0
  15. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/db/executor.py +0 -0
  16. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/log/access_log_handler.py +0 -0
  17. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/model/access_log.py +0 -0
  18. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/model/auth_client.py +0 -0
  19. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/model/auth_permission.py +0 -0
  20. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/model/base_model.py +0 -0
  21. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/model/parameterized_query.py +0 -0
  22. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/model/response_result.py +0 -0
  23. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/model/user.py +0 -0
  24. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/service/access_log_service.py +0 -0
  25. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/service/auth_client_service.py +0 -0
  26. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/service/auth_permission_service.py +0 -0
  27. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/service/authentication_service.py +0 -0
  28. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/service/base_service.py +0 -0
  29. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/setting/__init__.py +0 -0
  30. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/setup/__init__.py +0 -0
  31. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/__init__.py +0 -0
  32. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/decorator/__init__.py +0 -0
  33. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/decorator/cache.py +0 -0
  34. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/decorator/swagger.py +0 -0
  35. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/file/file_exporter.py +0 -0
  36. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/helpers.py +0 -0
  37. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
  38. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/oss/__init__.py +0 -0
  39. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
  40. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/redis/redis_helper.py +0 -0
  41. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/request/request.py +0 -0
  42. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
  43. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
  44. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask/wsgi.py +0 -0
  45. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask.egg-info/SOURCES.txt +0 -0
  46. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask.egg-info/dependency_links.txt +0 -0
  47. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/lesscode_flask.egg-info/top_level.txt +0 -0
  48. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/query_runner/clickhouse.py +0 -0
  49. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/query_runner/elasticsearch.py +0 -0
  50. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/settings/helpers.py +0 -0
  51. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/redash/utils/__init__.py +0 -0
  52. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/setup.cfg +0 -0
  53. {lesscode_flask-0.0.31 → lesscode_flask-0.0.33}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.0.31
3
+ Version: 0.0.33
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -10,27 +10,19 @@ Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.9
12
12
  Description-Content-Type: text/markdown
13
- Requires-Dist: blinker==1.6.2
14
13
  Requires-Dist: Flask==3.0.3
15
- Requires-Dist: itsdangerous==2.2.0
16
- Requires-Dist: Jinja2==3.1.4
17
- Requires-Dist: MarkupSafe==2.1.3
18
- Requires-Dist: Werkzeug==3.0.3
19
- Requires-Dist: zipp==3.17.0
20
- Requires-Dist: gunicorn==23.0.0
14
+ Requires-Dist: lesscode-utils==0.0.61
15
+ Requires-Dist: Flask-Login==0.6.3
16
+ Requires-Dist: redis==5.1.1
17
+ Requires-Dist: flask-swagger-ui==4.11.1
18
+ Requires-Dist: pystache==0.6.5
21
19
  Requires-Dist: python-dateutil==2.9.0.post0
22
- Requires-Dist: sqlparse==0.5.1
20
+ Requires-Dist: funcy==2.0
23
21
  Requires-Dist: Flask-SQLAlchemy==3.1.1
24
- Requires-Dist: sqlalchemy_utils==0.41.2
22
+ Requires-Dist: sqlparse==0.5.1
25
23
  Requires-Dist: requests==2.32.3
26
- Requires-Dist: advocate==1.0.0
27
- Requires-Dist: rq==1.16.2
28
- Requires-Dist: sshtunnel==0.4.0
29
- Requires-Dist: funcy==2.0
30
- Requires-Dist: pystache==0.6.5
31
- Requires-Dist: flask-swagger-ui==4.11.1
32
- Requires-Dist: lesscode-utils==0.0.61
33
- Requires-Dist: Flask-Login==0.6.3
24
+ Requires-Dist: gunicorn==23.0.0
25
+ Requires-Dist: gevent==24.10.2
34
26
 
35
27
  # lesscode-flask
36
28
 
@@ -1,4 +1,4 @@
1
- __version__ = '0.0.31'
1
+ __version__ = '0.0.33'
2
2
 
3
3
  import functools
4
4
  import logging
@@ -1,10 +1,12 @@
1
+ from __future__ import annotations
2
+
1
3
  import json
2
4
  import logging
3
5
  import os
4
6
  import time
5
7
  import traceback
6
8
 
7
- from flask import Flask, typing as ft
9
+ from flask import Flask, typing as ft, abort, Response
8
10
  import typing as t
9
11
  from flask.globals import request_ctx, request
10
12
  from flask_login import current_user
@@ -17,6 +19,9 @@ from lesscode_flask.utils.json.NotSortJSONProvider import NotSortJSONProvider
17
19
  from lesscode_flask.utils.redis.redis_helper import RedisHelper
18
20
 
19
21
 
22
+ # import collections.abc as cabc
23
+
24
+
20
25
  class Lesscoder(Flask):
21
26
  """A custom Flask app for lesscode-flask"""
22
27
 
@@ -39,13 +44,50 @@ class Lesscoder(Flask):
39
44
  "profile") else "setting.config.Config"
40
45
  self.config.from_object(setting_name)
41
46
  self.register_error_handler(Exception, self.handle_exception)
42
- # 请求开始时间存储的字典
43
- # self.register_error_handler(code_or_exception, f)
47
+
48
+ def preprocess_request(self) -> ft.ResponseReturnValue | None:
49
+ if self.config.get("AUTHORIZATION_ENABLE"): # 启动 AUTHORIZATION_ENABLE 才进行权限验证
50
+ # 获取当前请求的url
51
+ url = request.path
52
+ # 获取URL 对应的id 与访问权限
53
+ id, access = RedisHelper(app_config.get("REDIS_OAUTH_KEY", "redis")).sync_hmget(f"upms:url_info:{url}",
54
+ ["id", "access"])
55
+ if not id:
56
+ # 如果没有进行注册的url 默认需要登录权限
57
+ access = app_config.get("AUTH_DEFAULT_ACCESS", "0")
58
+ # '访问权限2:需要权限 1:需要登录 0:游客',
59
+ if str(access) == "1": # 需要登录
60
+ if current_user.is_anonymous_user:
61
+ # abort(403, "需要登录")
62
+ ResponseResult.fail("请登录后访问", status_code="403")
63
+ elif str(access) == "2": # 需要权限
64
+ if current_user.is_anonymous_user:
65
+ ResponseResult.fail("请登录后访问", status_code="403")
66
+ if not current_user.has_permission(id):
67
+ ResponseResult.fail("请获取授权后访问", status_code="403")
68
+ return super(Lesscoder, self).preprocess_request()
69
+
70
+ def full_dispatch_request(self) -> Response:
71
+ logging.info("full_dispatch_request")
72
+ # 生成请求标识
73
+ request_id = request.headers.get('Request-Id')
74
+ if request_id is None:
75
+ request_id = generate_uuid()
76
+ # 设置请求标识
77
+ request.request_id = request_id
78
+ start_time = time.time()
79
+ response = super(Lesscoder, self).full_dispatch_request()
80
+ # 为响应设置请求标识
81
+ response.headers['Request-Id'] = request_id
82
+ # 计算请求耗时
83
+ duration = time.time() - start_time
84
+ # 100 为自定义 'ACCESS' 的日志级别标识
85
+ logging.log(100, duration, {"request_id": request_id, "duration": duration})
86
+ return response
44
87
 
45
88
  def dispatch_request(self) -> ft.ResponseReturnValue:
46
89
  """ 实现参数自动注入功能,对父级代码进行重写
47
90
  """
48
-
49
91
  # 此处开始 均为原代码直接拷贝
50
92
  req = request_ctx.request
51
93
  if req.routing_exception is not None:
@@ -102,10 +144,6 @@ class Lesscoder(Flask):
102
144
  return ResponseResult.make_response(message=str(e), data=str(e), http_code=500, status_code="500")
103
145
 
104
146
 
105
- # 请求开始时间的集合
106
- request_start_time = {}
107
-
108
-
109
147
  def create_app():
110
148
  app = Lesscoder()
111
149
  app.json = NotSortJSONProvider(app) # 设置自定义的 JSON provider
@@ -113,45 +151,43 @@ def create_app():
113
151
  app.setup()
114
152
 
115
153
  @app.before_request
116
- def before_request():
117
- # 生成请求标识
118
- request_id = request.headers.get('Request-Id')
119
- if request_id is None:
120
- request_id = generate_uuid()
121
- request.request_id = request_id
122
- # 记录请求开始时间
123
- request_start_time[request_id] = time.time()
124
- if app.config.get("AUTHORIZATION_ENABLE"): # 启动 AUTHORIZATION_ENABLE 才进行权限验证
125
- # 获取当前请求的url
126
- url = request.path
127
- # 获取URL 对应的id 与访问权限
128
- id, access = RedisHelper(app_config.get("REDIS_OAUTH_KEY", "redis")).sync_hmget(f"upms:url_info:{url}",
129
- ["id", "access"])
130
- if not id:
131
- # 如果没有进行注册的url 默认需要登录权限
132
- access = app_config.get("AUTH_DEFAULT_ACCESS", "0")
133
- # '访问权限2:需要权限 1:需要登录 0:游客',
134
- if str(access) == "1": # 需要登录
135
- if current_user.is_anonymous_user:
136
- # abort(403, "需要登录")
137
- ResponseResult.fail("请登录后访问", status_code="403")
138
- elif str(access) == "2": # 需要权限
139
- if current_user.is_anonymous_user:
140
- ResponseResult.fail("请登录后访问", status_code="403")
141
- if not current_user.has_permission(id):
142
- ResponseResult.fail("请获取授权后访问", status_code="403")
154
+ def before_request1():
155
+ abort(403, "请求被拦截")
143
156
 
144
- @app.after_request
145
- def after_request(response):
146
- # 每个请求后执行
147
- request_id = request.request_id
148
- response.headers['Request-Id'] = request.request_id
149
- # 计算请求耗时
150
- start_time = request_start_time.pop(request_id, None)
151
- if start_time:
152
- duration = time.time() - start_time
153
- # 100 为自定义 'ACCESS' 的日志级别标识
154
- logging.log(100, duration, {"request_id": request_id, "duration": duration})
155
- return response
157
+ # @app.before_request
158
+ # def before_request():
159
+ # logging.info("before_request")
160
+ # if app.config.get("AUTHORIZATION_ENABLE"): # 启动 AUTHORIZATION_ENABLE 才进行权限验证
161
+ # # 获取当前请求的url
162
+ # url = request.path
163
+ # # 获取URL 对应的id 与访问权限
164
+ # id, access = RedisHelper(app_config.get("REDIS_OAUTH_KEY", "redis")).sync_hmget(f"upms:url_info:{url}",
165
+ # ["id", "access"])
166
+ # if not id:
167
+ # # 如果没有进行注册的url 默认需要登录权限
168
+ # access = app_config.get("AUTH_DEFAULT_ACCESS", "0")
169
+ # # '访问权限2:需要权限 1:需要登录 0:游客',
170
+ # if str(access) == "1": # 需要登录
171
+ # if current_user.is_anonymous_user:
172
+ # # abort(403, "需要登录")
173
+ # ResponseResult.fail("请登录后访问", status_code="403")
174
+ # elif str(access) == "2": # 需要权限
175
+ # if current_user.is_anonymous_user:
176
+ # ResponseResult.fail("请登录后访问", status_code="403")
177
+ # if not current_user.has_permission(id):
178
+ # ResponseResult.fail("请获取授权后访问", status_code="403")
179
+
180
+ # @app.after_request
181
+ # def after_request(response):
182
+ # # 每个请求后执行
183
+ # request_id = request.request_id
184
+ # response.headers['Request-Id'] = request.request_id
185
+ # # 计算请求耗时
186
+ # start_time = request.start_time
187
+ # if start_time:
188
+ # duration = time.time() - start_time
189
+ # # 100 为自定义 'ACCESS' 的日志级别标识
190
+ # logging.log(100, duration, {"request_id": request_id, "duration": duration})
191
+ # return response
156
192
 
157
193
  return app
@@ -1,4 +1,4 @@
1
- from redash.query_runner import get_query_runner, with_ssh_tunnel
1
+ from redash.query_runner import get_query_runner
2
2
 
3
3
 
4
4
  class DataSource():
@@ -20,8 +20,8 @@ class DataSource():
20
20
  @property
21
21
  def query_runner(self):
22
22
  query_runner = get_query_runner(self.options.get("type"), self.options)
23
- uses_ssh_tunnel = self.options.get("ssh_tunnel", False)
24
- if uses_ssh_tunnel:
25
- query_runner = with_ssh_tunnel(query_runner, self.options.get("ssh_tunnel"))
23
+ # uses_ssh_tunnel = self.options.get("ssh_tunnel", False)
24
+ # if uses_ssh_tunnel:
25
+ # query_runner = with_ssh_tunnel(query_runner, self.options.get("ssh_tunnel"))
26
26
 
27
27
  return query_runner
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.0.31
3
+ Version: 0.0.33
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -10,27 +10,19 @@ Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.9
12
12
  Description-Content-Type: text/markdown
13
- Requires-Dist: blinker==1.6.2
14
13
  Requires-Dist: Flask==3.0.3
15
- Requires-Dist: itsdangerous==2.2.0
16
- Requires-Dist: Jinja2==3.1.4
17
- Requires-Dist: MarkupSafe==2.1.3
18
- Requires-Dist: Werkzeug==3.0.3
19
- Requires-Dist: zipp==3.17.0
20
- Requires-Dist: gunicorn==23.0.0
14
+ Requires-Dist: lesscode-utils==0.0.61
15
+ Requires-Dist: Flask-Login==0.6.3
16
+ Requires-Dist: redis==5.1.1
17
+ Requires-Dist: flask-swagger-ui==4.11.1
18
+ Requires-Dist: pystache==0.6.5
21
19
  Requires-Dist: python-dateutil==2.9.0.post0
22
- Requires-Dist: sqlparse==0.5.1
20
+ Requires-Dist: funcy==2.0
23
21
  Requires-Dist: Flask-SQLAlchemy==3.1.1
24
- Requires-Dist: sqlalchemy_utils==0.41.2
22
+ Requires-Dist: sqlparse==0.5.1
25
23
  Requires-Dist: requests==2.32.3
26
- Requires-Dist: advocate==1.0.0
27
- Requires-Dist: rq==1.16.2
28
- Requires-Dist: sshtunnel==0.4.0
29
- Requires-Dist: funcy==2.0
30
- Requires-Dist: pystache==0.6.5
31
- Requires-Dist: flask-swagger-ui==4.11.1
32
- Requires-Dist: lesscode-utils==0.0.61
33
- Requires-Dist: Flask-Login==0.6.3
24
+ Requires-Dist: gunicorn==23.0.0
25
+ Requires-Dist: gevent==24.10.2
34
26
 
35
27
  # lesscode-flask
36
28
 
@@ -1,21 +1,13 @@
1
- blinker==1.6.2
2
1
  Flask==3.0.3
3
- itsdangerous==2.2.0
4
- Jinja2==3.1.4
5
- MarkupSafe==2.1.3
6
- Werkzeug==3.0.3
7
- zipp==3.17.0
8
- gunicorn==23.0.0
2
+ lesscode-utils==0.0.61
3
+ Flask-Login==0.6.3
4
+ redis==5.1.1
5
+ flask-swagger-ui==4.11.1
6
+ pystache==0.6.5
9
7
  python-dateutil==2.9.0.post0
10
- sqlparse==0.5.1
8
+ funcy==2.0
11
9
  Flask-SQLAlchemy==3.1.1
12
- sqlalchemy_utils==0.41.2
10
+ sqlparse==0.5.1
13
11
  requests==2.32.3
14
- advocate==1.0.0
15
- rq==1.16.2
16
- sshtunnel==0.4.0
17
- funcy==2.0
18
- pystache==0.6.5
19
- flask-swagger-ui==4.11.1
20
- lesscode-utils==0.0.61
21
- Flask-Login==0.6.3
12
+ gunicorn==23.0.0
13
+ gevent==24.10.2
@@ -5,12 +5,12 @@ from functools import wraps
5
5
 
6
6
  import sqlparse
7
7
  from dateutil import parser
8
- from rq.timeouts import JobTimeoutException
9
- from sshtunnel import open_tunnel
8
+ # from rq.timeouts import JobTimeoutException
9
+ # from sshtunnel import open_tunnel
10
10
 
11
11
  from redash import settings, utils
12
12
  from redash.utils.requests_session import (
13
- UnacceptableAddressException,
13
+ # UnacceptableAddressException,
14
14
  requests_or_advocate,
15
15
  requests_session,
16
16
  )
@@ -21,7 +21,7 @@ __all__ = [
21
21
  "BaseQueryRunner",
22
22
  "BaseHTTPQueryRunner",
23
23
  "InterruptException",
24
- "JobTimeoutException",
24
+ # "JobTimeoutException",
25
25
  "BaseSQLQueryRunner",
26
26
  "TYPE_DATETIME",
27
27
  "TYPE_BOOLEAN",
@@ -394,9 +394,9 @@ class BaseHTTPQueryRunner(BaseQueryRunner):
394
394
  logger.exception(exc)
395
395
  error = "Failed to execute query. "
396
396
  f"Return Code: {response.status_code} Reason: {response.text}"
397
- except UnacceptableAddressException as exc:
398
- logger.exception(exc)
399
- error = "Can't query private addresses."
397
+ # except UnacceptableAddressException as exc:
398
+ # logger.exception(exc)
399
+ # error = "Can't query private addresses."
400
400
  except requests_or_advocate.RequestException as exc:
401
401
  # Catch all other requests exceptions and return the error.
402
402
  logger.exception(exc)
@@ -19,7 +19,7 @@ from redash.query_runner import (
19
19
  TYPE_STRING,
20
20
  BaseSQLQueryRunner,
21
21
  InterruptException,
22
- JobTimeoutException,
22
+ # JobTimeoutException,
23
23
  register,
24
24
  )
25
25
 
@@ -216,7 +216,8 @@ class KingBase(BaseSQLQueryRunner):
216
216
  except pg8000.DatabaseError as e:
217
217
  error = str(e)
218
218
  data = None
219
- except (KeyboardInterrupt, InterruptException, JobTimeoutException):
219
+ # except (KeyboardInterrupt, InterruptException, JobTimeoutException):
220
+ except (KeyboardInterrupt, InterruptException):
220
221
  connection.cancel()
221
222
  raise
222
223
  finally:
@@ -11,7 +11,7 @@ from redash.query_runner import (
11
11
  TYPE_STRING,
12
12
  BaseSQLQueryRunner,
13
13
  InterruptException,
14
- JobTimeoutException,
14
+ # JobTimeoutException,
15
15
  register,
16
16
  )
17
17
  from redash.settings import parse_boolean
@@ -20,7 +20,7 @@ try:
20
20
  import pymysql
21
21
  enabled = True
22
22
  except ImportError:
23
- logging.error(traceback.format_exc())
23
+ # logging.error(traceback.format_exc())
24
24
  logging.error(f"pymysql is not exist,run:pip install pymysql==1.0.1")
25
25
  enabled = False
26
26
 
@@ -190,7 +190,8 @@ class Mysql(BaseSQLQueryRunner):
190
190
  # t.start()
191
191
  # while not ev.wait(1):
192
192
  # pass
193
- except (KeyboardInterrupt, InterruptException, JobTimeoutException):
193
+ # except (KeyboardInterrupt, InterruptException, JobTimeoutException):
194
+ except (KeyboardInterrupt, InterruptException):
194
195
  self._cancel(thread_id)
195
196
  # t.join()
196
197
  raise
@@ -22,7 +22,7 @@ from redash.query_runner import (
22
22
  TYPE_STRING,
23
23
  BaseSQLQueryRunner,
24
24
  InterruptException,
25
- JobTimeoutException,
25
+ # JobTimeoutException,
26
26
  register,
27
27
  )
28
28
 
@@ -271,7 +271,8 @@ class PostgreSQL(BaseSQLQueryRunner):
271
271
  except pg8000.DatabaseError as e:
272
272
  error = str(e)
273
273
  data = None
274
- except (KeyboardInterrupt, InterruptException, JobTimeoutException):
274
+ # except (KeyboardInterrupt, InterruptException, JobTimeoutException):
275
+ except (KeyboardInterrupt, InterruptException):
275
276
  connection.cancel()
276
277
  raise
277
278
  finally:
@@ -23,7 +23,7 @@ default_query_runners = [
23
23
  # "redash.query_runner.url",
24
24
  # "redash.query_runner.influx_db",
25
25
  # "redash.query_runner.influx_db_v2",
26
- # "redash.query_runner.elasticsearch",
26
+ "redash.query_runner.elasticsearch",
27
27
  # "redash.query_runner.elasticsearch2",
28
28
  # "redash.query_runner.amazon_elasticsearch",
29
29
  # "redash.query_runner.trino",
@@ -1,11 +1,11 @@
1
- from advocate.exceptions import UnacceptableAddressException # noqa: F401
1
+ # from advocate.exceptions import UnacceptableAddressException # noqa: F401
2
2
 
3
3
  from redash import settings
4
4
 
5
- if settings.ENFORCE_PRIVATE_ADDRESS_BLOCK:
6
- import advocate as requests_or_advocate
7
- else:
8
- import requests as requests_or_advocate
5
+ # if settings.ENFORCE_PRIVATE_ADDRESS_BLOCK:
6
+ # import advocate as requests_or_advocate
7
+ # else:
8
+ import requests as requests_or_advocate
9
9
 
10
10
 
11
11
  class ConfiguredSession(requests_or_advocate.Session):