lesscode-flask 0.2.113__tar.gz → 0.2.114__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 (77) hide show
  1. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/PKG-INFO +1 -1
  2. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/__init__.py +1 -1
  3. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/thread/thread_utils.py +12 -6
  4. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask.egg-info/PKG-INFO +1 -1
  5. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/query_runner/clickhouse.py +0 -1
  6. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/query_runner/dameng.py +0 -1
  7. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/query_runner/kingbase.py +0 -1
  8. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/query_runner/mysql.py +0 -1
  9. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/README.md +0 -0
  10. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/app.py +0 -0
  11. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/db/__init__.py +0 -0
  12. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/db/datasource.py +0 -0
  13. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/db/executor.py +0 -0
  14. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/export_data/__init__.py +0 -0
  15. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/export_data/data_download_handler.py +0 -0
  16. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/log/access_log_handler.py +0 -0
  17. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/model/access_log.py +0 -0
  18. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/model/base_model.py +0 -0
  19. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/model/parameterized_query.py +0 -0
  20. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/model/resource_param_template.py +0 -0
  21. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/model/response_result.py +0 -0
  22. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/model/user.py +0 -0
  23. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/model/user_limit_policy.py +0 -0
  24. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/service/access_log_service.py +0 -0
  25. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/service/base_service.py +0 -0
  26. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/service/resource_param_template_service.py +0 -0
  27. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/setting/__init__.py +0 -0
  28. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/setup/__init__.py +0 -0
  29. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/signals.py +0 -0
  30. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/static/swagger.py +0 -0
  31. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/__init__.py +0 -0
  32. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/decorator/__init__.py +0 -0
  33. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/decorator/cache.py +0 -0
  34. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/decorator/sql_injection.py +0 -0
  35. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/decorator/swagger.py +0 -0
  36. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/dify_utils.py +0 -0
  37. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/file/file_exporter.py +0 -0
  38. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/file/file_utils.py +0 -0
  39. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/fs_util.py +0 -0
  40. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/helpers.py +0 -0
  41. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
  42. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/limit/__init__.py +0 -0
  43. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/limit/consecutive/consecutive_limiter_handler.py +0 -0
  44. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/limit/consecutive/redis_consecutive_limiter.py +0 -0
  45. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/limit/limit_util.py +0 -0
  46. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/limit/req/rate_limiter_handler.py +0 -0
  47. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/limit/req/redis_rate_limiter.py +0 -0
  48. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/limit/req_count/count_limiter_handler.py +0 -0
  49. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/limit/req_count/redis_count_limiter.py +0 -0
  50. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/oss/__init__.py +0 -0
  51. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/oss/aliyun_oss.py +0 -0
  52. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
  53. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/oss/minio_oss.py +0 -0
  54. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/redis/redis_helper.py +0 -0
  55. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/request/request.py +0 -0
  56. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/sign/__init__.py +0 -0
  57. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/sign/body_canonical.py +0 -0
  58. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/sign/sign_main.py +0 -0
  59. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/sign/signature.py +0 -0
  60. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
  61. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
  62. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/task/__init__.py +0 -0
  63. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/utils/task/task_helper.py +0 -0
  64. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask/wsgi.py +0 -0
  65. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask.egg-info/SOURCES.txt +0 -0
  66. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask.egg-info/dependency_links.txt +0 -0
  67. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask.egg-info/requires.txt +0 -0
  68. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/lesscode_flask.egg-info/top_level.txt +0 -0
  69. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/query_runner/__init__.py +0 -0
  70. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/query_runner/elasticsearch.py +0 -0
  71. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/query_runner/pg.py +0 -0
  72. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/settings/__init__.py +0 -0
  73. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/settings/helpers.py +0 -0
  74. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/utils/__init__.py +0 -0
  75. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/redash/utils/requests_session.py +0 -0
  76. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/setup.cfg +0 -0
  77. {lesscode_flask-0.2.113 → lesscode_flask-0.2.114}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lesscode-flask
3
- Version: 0.2.113
3
+ Version: 0.2.114
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -1,4 +1,4 @@
1
- __version__ = "0.2.113"
1
+ __version__ = "0.2.114"
2
2
 
3
3
  import functools
4
4
  import logging
@@ -12,7 +12,7 @@ class FlaskThread:
12
12
  self.name = name or target.__name__
13
13
 
14
14
 
15
- def wrapper(_func, _args, _kwargs, _result: list = None, _lock=None, _is_throw_error=True):
15
+ def wrapper(_func, _args, _kwargs, _result: list = None, _lock=None, _exception: list = None):
16
16
  @copy_current_request_context
17
17
  def _thread_func():
18
18
  try:
@@ -24,8 +24,8 @@ def wrapper(_func, _args, _kwargs, _result: list = None, _lock=None, _is_throw_e
24
24
  else:
25
25
  _result.append(res)
26
26
  except Exception as e:
27
- if _is_throw_error:
28
- raise e
27
+ if isinstance(_exception, list):
28
+ _exception.append(e)
29
29
  else:
30
30
  if _result is not None and isinstance(_result, list):
31
31
  if _lock:
@@ -41,6 +41,7 @@ def run_in_thread(func_list: List[FlaskThread], is_throw_error=False, is_lock=Tr
41
41
  results = []
42
42
  threads = []
43
43
  result_locks = []
44
+ exceptions = []
44
45
  name_list = []
45
46
  for obj in func_list:
46
47
  target = obj.target
@@ -49,6 +50,7 @@ def run_in_thread(func_list: List[FlaskThread], is_throw_error=False, is_lock=Tr
49
50
  _name = obj.name
50
51
  name_list.append(_name)
51
52
  result = []
53
+ exception = []
52
54
  if is_lock:
53
55
  lock = threading.Lock()
54
56
  result_locks.append(lock)
@@ -56,22 +58,26 @@ def run_in_thread(func_list: List[FlaskThread], is_throw_error=False, is_lock=Tr
56
58
  lock = None
57
59
  result_locks.append(lock)
58
60
  thread_func = wrapper(_func=target, _args=args, _kwargs=kwargs, _result=result, _lock=lock,
59
- _is_throw_error=is_throw_error)
61
+ _exception=exception)
60
62
  t = threading.Thread(target=thread_func)
61
63
  threads.append(t)
62
64
  results.append(result)
65
+ exceptions.append(exception)
63
66
  t.start()
64
67
 
65
68
  for t in threads:
66
69
  t.join()
70
+ if is_throw_error:
71
+ if isinstance(exceptions, list) and any(exceptions):
72
+ raise exceptions[0][0]
67
73
 
68
74
  final_results = []
69
75
  for result, lock in zip(results, result_locks):
70
76
  if is_lock:
71
77
  with lock:
72
- final_results.append(result[0])
78
+ final_results.append(result[0] if result else None)
73
79
  else:
74
- final_results.append(result[0])
80
+ final_results.append(result[0] if result else None)
75
81
  if return_type == "list":
76
82
  return final_results
77
83
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lesscode-flask
3
- Version: 0.2.113
3
+ Version: 0.2.114
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -219,7 +219,6 @@ class ClickHouse(BaseSQLQueryRunner):
219
219
  return data, error
220
220
 
221
221
  def exec(self, query, user):
222
- logger.debug("Clickhouse is about to execute query: %s", query)
223
222
  if query == "":
224
223
  json_data = None
225
224
  error = "Query is empty"
@@ -188,7 +188,6 @@ class DaMeng(BaseSQLQueryRunner):
188
188
  db = self.configuration.get("db", "")
189
189
  if db:
190
190
  cursor.execute(f"SET SCHEMA {db}")
191
- logger.debug("DaMeng running query: %s", query)
192
191
  cursor.execute(query)
193
192
 
194
193
  data = cursor.fetchall()
@@ -246,7 +246,6 @@ class KingBase(BaseSQLQueryRunner):
246
246
  return data, error
247
247
 
248
248
  def exec(self, query, user):
249
- logger.debug("KingBase is about to execute query: %s", query)
250
249
  connection = self._get_connection()
251
250
 
252
251
  cursor = connection.cursor()
@@ -257,7 +257,6 @@ class Mysql(BaseSQLQueryRunner):
257
257
  try:
258
258
  connection = self._connection()
259
259
  cursor = connection.cursor()
260
- logger.debug("MySQL running query: %s", query)
261
260
  cursor.execute(query)
262
261
  except (KeyboardInterrupt, InterruptException):
263
262
  self._cancel(thread_id)