lesscode-flask 0.0.99__tar.gz → 0.1.1__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 (52) hide show
  1. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/PKG-INFO +1 -1
  2. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/__init__.py +1 -1
  3. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/app.py +21 -2
  4. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/helpers.py +14 -4
  5. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask.egg-info/PKG-INFO +1 -1
  6. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/README.md +0 -0
  7. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/db/__init__.py +0 -0
  8. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/db/datasource.py +0 -0
  9. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/db/executor.py +0 -0
  10. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/export_data/__init__.py +0 -0
  11. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/export_data/data_download_handler.py +0 -0
  12. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/log/access_log_handler.py +0 -0
  13. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/model/access_log.py +0 -0
  14. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/model/base_model.py +0 -0
  15. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/model/parameterized_query.py +0 -0
  16. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/model/response_result.py +0 -0
  17. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/model/user.py +0 -0
  18. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/service/access_log_service.py +0 -0
  19. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/service/base_service.py +0 -0
  20. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/setting/__init__.py +0 -0
  21. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/setup/__init__.py +0 -0
  22. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/static/swagger.py +0 -0
  23. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/__init__.py +0 -0
  24. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/decorator/__init__.py +0 -0
  25. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/decorator/cache.py +0 -0
  26. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/decorator/swagger.py +0 -0
  27. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/file/file_exporter.py +0 -0
  28. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
  29. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/oss/__init__.py +0 -0
  30. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
  31. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/redis/redis_helper.py +0 -0
  32. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/request/request.py +0 -0
  33. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
  34. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
  35. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/utils/thread/thread_utils.py +0 -0
  36. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask/wsgi.py +0 -0
  37. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask.egg-info/SOURCES.txt +0 -0
  38. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask.egg-info/dependency_links.txt +0 -0
  39. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask.egg-info/requires.txt +0 -0
  40. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/lesscode_flask.egg-info/top_level.txt +0 -0
  41. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/query_runner/__init__.py +0 -0
  42. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/query_runner/clickhouse.py +0 -0
  43. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/query_runner/elasticsearch.py +0 -0
  44. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/query_runner/kingbase.py +0 -0
  45. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/query_runner/mysql.py +0 -0
  46. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/query_runner/pg.py +0 -0
  47. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/settings/__init__.py +0 -0
  48. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/settings/helpers.py +0 -0
  49. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/utils/__init__.py +0 -0
  50. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/redash/utils/requests_session.py +0 -0
  51. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/setup.cfg +0 -0
  52. {lesscode_flask-0.0.99 → lesscode_flask-0.1.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.0.99
3
+ Version: 0.1.1
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.0.99'
1
+ __version__ = '0.1.1'
2
2
 
3
3
  import functools
4
4
  import logging
@@ -1,12 +1,13 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import copy
3
4
  import json
4
5
  import logging
6
+ import os
5
7
  import sys
6
8
  import time
7
9
  import traceback
8
10
  import typing as t
9
- from importlib import import_module
10
11
 
11
12
  from flask import Flask, typing as ft, Response
12
13
  from flask.globals import request_ctx, request
@@ -20,6 +21,7 @@ from lesscode_flask.setup import setup_blueprint, setup_logging, setup_query_run
20
21
  from lesscode_flask.utils.helpers import inject_args, generate_uuid, app_config
21
22
  from lesscode_flask.utils.json.NotSortJSONProvider import NotSortJSONProvider
22
23
  from lesscode_flask.utils.redis.redis_helper import RedisHelper
24
+ from lesscode_flask.utils.swagger.swagger_util import generate_openapi_spec
23
25
 
24
26
 
25
27
  # import collections.abc as cabc
@@ -90,7 +92,7 @@ class Lesscoder(Flask):
90
92
  # duration = time.time() - start_time
91
93
  # 100 为自定义 'ACCESS' 的日志级别标识
92
94
  logging.log(100, "访问日志", {"request_id": request_id, "start_time": start_time, "end_time": time.time(),
93
- "status_code": response.status_code})
95
+ "status_code": response.status_code})
94
96
  return response
95
97
 
96
98
  def dispatch_request(self) -> ft.ResponseReturnValue:
@@ -160,9 +162,26 @@ class Lesscoder(Flask):
160
162
  return ResponseResult.make_response(message=str(e), data=str(e), http_code=500, status_code="500")
161
163
 
162
164
 
165
+ def gen_swagger_json_file(app):
166
+ swagger_json = generate_openapi_spec(app)
167
+ _port = app.config.get("PORT") or 5004
168
+ _swagger_json = copy.deepcopy(swagger_json)
169
+ _swagger_json["servers"] = app.config.get("SWAGGER_SERVERS", []) if app.config.get("SWAGGER_SERVERS", []) else [
170
+ {"url": f"http://127.0.0.1:{_port}", "description": "本地环境"}]
171
+ project_path = os.path.abspath(os.path.dirname(sys.argv[0]))
172
+ static_path = os.path.join(project_path, "static")
173
+ swagger_json_path = os.path.join(static_path, "swagger.json")
174
+ if not os.path.exists(static_path):
175
+ os.mkdir(static_path)
176
+ if not os.path.exists(swagger_json_path):
177
+ with open(swagger_json_path, "w", encoding="utf-8") as f:
178
+ f.write(json.dumps(_swagger_json, indent=4, ensure_ascii=False))
179
+
180
+
163
181
  def create_app():
164
182
  app = Lesscoder()
165
183
  app.json = NotSortJSONProvider(app) # 设置自定义的 JSON provider
166
184
  with app.app_context():
167
185
  app.setup()
186
+ gen_swagger_json_file(app)
168
187
  return app
@@ -49,8 +49,13 @@ def build_tree(data, parent: str = "parent_id"):
49
49
  - tree: 转换后的树形结构数据列表。
50
50
  """
51
51
  # 创建一个字典来快速查找节点
52
- node_map = {item['id']: item for item in data}
53
-
52
+ node_map = {}
53
+ _sort_key = 0
54
+ # 为数据增加一个_sort_key属性用于排序
55
+ for item in data:
56
+ item['_sort_key'] = _sort_key
57
+ node_map[item['id']] = item
58
+ _sort_key += 1
54
59
  # 初始化根节点列表
55
60
  tree_data = []
56
61
 
@@ -66,9 +71,14 @@ def build_tree(data, parent: str = "parent_id"):
66
71
  # 如果没有父节点,则当前节点为根节点
67
72
  tree_data.append(item)
68
73
 
69
- return tree_data
70
-
74
+ def sort_tree(data):
75
+ data.sort(key=lambda x: x['_sort_key'])
76
+ for child in data:
77
+ if 'children' in child:
78
+ sort_tree(child['children'])
71
79
 
80
+ sort_tree(tree_data)
81
+ return tree_data
72
82
  def generate_uuid():
73
83
  """
74
84
  生成UUID
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.0.99
3
+ Version: 0.1.1
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
File without changes