lesscode-flask 0.1.73__tar.gz → 0.1.75__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 (58) hide show
  1. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/PKG-INFO +1 -1
  2. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/__init__.py +1 -1
  3. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/db/__init__.py +26 -0
  4. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/db/executor.py +10 -0
  5. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/helpers.py +4 -3
  6. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask.egg-info/PKG-INFO +1 -1
  7. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/query_runner/clickhouse.py +20 -3
  8. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/README.md +0 -0
  9. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/app.py +0 -0
  10. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/db/datasource.py +0 -0
  11. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/export_data/__init__.py +0 -0
  12. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/export_data/data_download_handler.py +0 -0
  13. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/log/access_log_handler.py +0 -0
  14. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/model/access_log.py +0 -0
  15. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/model/base_model.py +0 -0
  16. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/model/parameterized_query.py +0 -0
  17. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/model/resource_param_template.py +0 -0
  18. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/model/response_result.py +0 -0
  19. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/model/user.py +0 -0
  20. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/service/access_log_service.py +0 -0
  21. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/service/base_service.py +0 -0
  22. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/service/resource_param_template_service.py +0 -0
  23. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/setting/__init__.py +0 -0
  24. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/setup/__init__.py +0 -0
  25. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/signals.py +0 -0
  26. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/static/swagger.py +0 -0
  27. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/decorator/__init__.py +0 -0
  28. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/decorator/cache.py +0 -0
  29. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/decorator/swagger.py +0 -0
  30. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/dify_utils.py +0 -0
  31. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/file/file_exporter.py +0 -0
  32. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/file/file_utils.py +0 -0
  33. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
  34. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/oss/__init__.py +0 -0
  35. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
  36. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/redis/redis_helper.py +0 -0
  37. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/request/request.py +0 -0
  38. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
  39. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
  40. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/task/__init__.py +0 -0
  41. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/task/task_helper.py +0 -0
  42. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/utils/thread/thread_utils.py +0 -0
  43. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask/wsgi.py +0 -0
  44. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask.egg-info/SOURCES.txt +0 -0
  45. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask.egg-info/dependency_links.txt +0 -0
  46. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask.egg-info/requires.txt +0 -0
  47. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/lesscode_flask.egg-info/top_level.txt +0 -0
  48. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/query_runner/__init__.py +0 -0
  49. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/query_runner/elasticsearch.py +0 -0
  50. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/query_runner/kingbase.py +0 -0
  51. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/query_runner/mysql.py +0 -0
  52. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/query_runner/pg.py +0 -0
  53. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/settings/__init__.py +0 -0
  54. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/settings/helpers.py +0 -0
  55. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/utils/__init__.py +0 -0
  56. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/redash/utils/requests_session.py +0 -0
  57. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/setup.cfg +0 -0
  58. {lesscode-flask-0.1.73 → lesscode-flask-0.1.75}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.1.73
3
+ Version: 0.1.75
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.1.73'
1
+ __version__ = '0.1.75'
2
2
 
3
3
  import functools
4
4
  import logging
@@ -34,6 +34,32 @@ def execute_query(
34
34
  raise e
35
35
 
36
36
 
37
+ def execute(query_text, parameters, query_runner, should_apply_auto_limit=True):
38
+ """
39
+ 执行原生sql操作
40
+ :param query_text: 待执行语句
41
+ :param parameters: 查询参数数
42
+ :param query_runner: 查询执行器
43
+ :param should_apply_auto_limit:
44
+ :return:
45
+ """
46
+ try:
47
+ query = ParameterizedQuery(query_text)
48
+ if parameters is None:
49
+ parameters = {}
50
+ query.apply(parameters)
51
+ query_text = query.query
52
+ # query_text = query_runner.apply_auto_limit(query.text, should_apply_auto_limit)
53
+ logging.info("query_text:{}".format(query_text))
54
+ return QueryExecutor(
55
+ query_text,
56
+ query_runner
57
+ ).exec()
58
+ except Exception as e:
59
+ # models.db.session.rollback()
60
+ raise e
61
+
62
+
37
63
  # from flask_sqlalchemy import SQLAlchemy
38
64
  try:
39
65
  flask_sqlalchemy = import_module("flask_sqlalchemy")
@@ -45,6 +45,16 @@ class QueryExecutor:
45
45
  raise QueryExecutionError(error)
46
46
  return data
47
47
 
48
+ def exec(self):
49
+ self._log_progress("executing_query")
50
+
51
+ annotated_query = self._annotate_query(self.query_runner)
52
+
53
+ data, error = self.query_runner.exec(annotated_query, self.user)
54
+ if error:
55
+ raise QueryExecutionError(error)
56
+ return data
57
+
48
58
  #
49
59
  # logger.info(
50
60
  # "job=execute_query query_hash=%s ds_id=%d data_length=%s error=[%s]",
@@ -42,14 +42,15 @@ def result_to_dict(result):
42
42
  return result
43
43
 
44
44
 
45
- def build_tree(data, parent: str = "parent_id"):
45
+ def build_tree(data, parent: str = "parent_id", pk: str = "id"):
46
46
  """
47
47
  构建树形结构数据。
48
48
  根据给定的数据列表和父节点标识,将平面数据结构转换为树形结构。
49
49
 
50
50
  参数:
51
51
  - data: 平面数据列表,每个元素包含一个节点及其父节点ID。
52
- - parent: 字段名字符串,默认为"parent_id",用于查找父节点。
52
+ - parent: 父级字段名字符串,默认为"parent_id",用于查找父节点。
53
+ - pk: 主键字段名字符串,默认为"id",用于标识父节点。
53
54
 
54
55
  返回:
55
56
  - tree: 转换后的树形结构数据列表。
@@ -60,7 +61,7 @@ def build_tree(data, parent: str = "parent_id"):
60
61
  # 为数据增加一个_sort_key属性用于排序
61
62
  for item in data:
62
63
  item['_sort_key'] = _sort_key
63
- node_map[item['id']] = item
64
+ node_map[item[pk]] = item
64
65
  _sort_key += 1
65
66
  # 初始化根节点列表
66
67
  tree_data = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.1.73
3
+ Version: 0.1.75
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -122,10 +122,10 @@ class ClickHouse(BaseSQLQueryRunner):
122
122
  )
123
123
  if r.status_code != 200:
124
124
  raise Exception(r.text)
125
- # logging.warning(r.json())
126
- if r.text == "":
125
+ try:
126
+ return r.json()
127
+ except requests.exceptions.JSONDecodeError as e:
127
128
  return r.text
128
- return r.json()
129
129
  except requests.RequestException as e:
130
130
  if e.response:
131
131
  details = "({}, Status Code: {})".format(
@@ -219,5 +219,22 @@ class ClickHouse(BaseSQLQueryRunner):
219
219
  error = e
220
220
  return data, error
221
221
 
222
+ def exec(self, query, user):
223
+ logger.debug("Clickhouse is about to execute query: %s", query)
224
+ if query == "":
225
+ json_data = None
226
+ error = "Query is empty"
227
+ return json_data, error
228
+ try:
229
+
230
+ # data = json_dumps(q)
231
+ data = self._send_query(query)
232
+ error = None
233
+ except Exception as e:
234
+ data = None
235
+ logging.exception(e)
236
+ error = e
237
+ return data, error
238
+
222
239
 
223
240
  register(ClickHouse)