lesscode-flask 0.0.49__tar.gz → 0.0.50__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.49 → lesscode_flask-0.0.50}/PKG-INFO +1 -1
  2. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/__init__.py +1 -1
  3. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/base_service.py +8 -8
  4. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/setting/__init__.py +1 -1
  5. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/setup/__init__.py +9 -12
  6. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/helpers.py +44 -27
  7. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/PKG-INFO +1 -1
  8. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/README.md +0 -0
  9. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/app.py +0 -0
  10. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/db/__init__.py +0 -0
  11. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/db/datasource.py +0 -0
  12. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/db/executor.py +0 -0
  13. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/log/access_log_handler.py +0 -0
  14. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/access_log.py +0 -0
  15. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/auth_client.py +0 -0
  16. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/auth_permission.py +0 -0
  17. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/base_model.py +0 -0
  18. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/parameterized_query.py +0 -0
  19. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/response_result.py +0 -0
  20. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/user.py +0 -0
  21. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/access_log_service.py +0 -0
  22. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/auth_client_service.py +0 -0
  23. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/auth_permission_service.py +0 -0
  24. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/authentication_service.py +0 -0
  25. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/__init__.py +0 -0
  26. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/decorator/__init__.py +0 -0
  27. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/decorator/cache.py +0 -0
  28. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/decorator/swagger.py +0 -0
  29. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/file/file_exporter.py +0 -0
  30. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
  31. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/oss/__init__.py +0 -0
  32. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
  33. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/redis/redis_helper.py +0 -0
  34. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/request/request.py +0 -0
  35. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
  36. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
  37. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/wsgi.py +0 -0
  38. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/SOURCES.txt +0 -0
  39. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/dependency_links.txt +0 -0
  40. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/requires.txt +0 -0
  41. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/top_level.txt +0 -0
  42. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/__init__.py +0 -0
  43. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/clickhouse.py +0 -0
  44. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/elasticsearch.py +0 -0
  45. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/kingbase.py +0 -0
  46. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/mysql.py +0 -0
  47. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/pg.py +0 -0
  48. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/settings/__init__.py +0 -0
  49. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/settings/helpers.py +0 -0
  50. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/utils/__init__.py +0 -0
  51. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/utils/requests_session.py +0 -0
  52. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/setup.cfg +0 -0
  53. {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.0.49
3
+ Version: 0.0.50
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.49'
1
+ __version__ = '0.0.50'
2
2
 
3
3
  import functools
4
4
  import logging
@@ -4,8 +4,7 @@ from flask_login import current_user
4
4
 
5
5
  from lesscode_flask.db import db
6
6
  from lesscode_flask.model.base_model import BaseModel
7
- from lesscode_flask.utils.helpers import serialize_result_to_dict, parameter_validation, alchemy_result_to_dict, \
8
- format_page_index
7
+ from lesscode_flask.utils.helpers import result_to_dict, parameter_validation, format_page_index
9
8
 
10
9
  logger = logging.getLogger(__name__)
11
10
 
@@ -89,7 +88,7 @@ class BaseService:
89
88
  :return:
90
89
  """
91
90
  query = self.model.query
92
- return serialize_result_to_dict(query.get(id))
91
+ return result_to_dict(query.get(id))
93
92
 
94
93
  # def get_one(self, filters: list, select_columns: list = None, ):
95
94
  def get_one(self, select_columns: list = None, order_columns: list = None, filters: list = None):
@@ -123,7 +122,7 @@ class BaseService:
123
122
  query = query.offset(offset).limit(size)
124
123
  if select_columns:
125
124
  query = query.with_entities(*select_columns)
126
- data = alchemy_result_to_dict(query.all())
125
+ data = result_to_dict(query.all())
127
126
  return data
128
127
 
129
128
  def delete_item(self, id: str):
@@ -165,10 +164,11 @@ class BaseService:
165
164
  total = pagination.total
166
165
  has_prev = pagination.has_prev
167
166
  has_next = pagination.has_next
168
- if select_columns:
169
- data = alchemy_result_to_dict(items)
170
- else:
171
- data = serialize_result_to_dict(items)
167
+ data = result_to_dict(items)
168
+ # if select_columns:
169
+ # data = alchemy_result_to_dict(items)
170
+ # else:
171
+ # data = serialize_result_to_dict(items)
172
172
  format_page_index(data, page_num, page_size)
173
173
  result = {"dataSource": data, "total": total,
174
174
  "has_prev": has_prev,
@@ -109,5 +109,5 @@ class BaseConfig:
109
109
  # "pool_block": False
110
110
  }
111
111
  # 资源注册相关
112
- REGISTER_ENABLE = False
112
+ REGISTER_ENABLE = True
113
113
  REGISTER_SERVER = "http://127.0.0.1:8976"
@@ -305,25 +305,22 @@ def setup_resource_register(app):
305
305
  return resource
306
306
 
307
307
  if current_app.config.get("REGISTER_ENABLE", False) and current_app.config.get("REGISTER_SERVER"):
308
- resource_dict = {
309
- "parent_resource": [],
310
- "resource": []
311
- }
308
+ resource_list = []
312
309
  url_rules_dict = {}
313
310
  for blueprint_name, blueprint in app.blueprints.items():
314
311
  if blueprint.url_prefix not in ["/swagger-ui"]:
315
- group_key = f"{blueprint_name}|{blueprint.url_prefix}"
316
- url_rules_dict[group_key] = []
312
+ url_rules_dict[blueprint_name] = []
317
313
  # 遍历全局 URL 规则
318
314
  for rule in app.url_map.iter_rules():
319
315
  # 筛选出属于当前蓝图的规则
320
316
  if rule.endpoint.startswith(f"{blueprint_name}."):
321
- url_rules_dict[group_key].append(rule)
317
+ url_rules_dict[blueprint_name].append(rule)
322
318
 
323
319
  for parent_resource in url_rules_dict:
324
320
  symbol = uuid.uuid1().hex
325
- resource_dict["parent_resource"].append(
326
- package_resource(label=parent_resource, symbol=symbol, access=0, type=0))
321
+ resource = package_resource(label=parent_resource, symbol=symbol, access=0, type=0)
322
+ resource["children"] = []
323
+
327
324
  for child_resource in url_rules_dict[parent_resource]:
328
325
  view_func = app.view_functions[child_resource.endpoint]
329
326
  if view_func.__doc__:
@@ -350,15 +347,15 @@ def setup_resource_register(app):
350
347
  child_resource, view_func, param_desc_dict)
351
348
  else:
352
349
  param_list = []
353
- resource_dict["resource"].append(
350
+ resource["children"].append(
354
351
  package_resource(label="", symbol=child_resource.rule, access=1, type=2, url=child_resource.rule,
355
352
  description=description, param_list=param_list))
356
-
353
+ resource_list.append(resource)
357
354
  with httpx.Client(**{"timeout": None}) as session:
358
355
  try:
359
356
  res = session.request("post", url=current_app.config.get(
360
357
  "REGISTER_SERVER") + "/icp/authResource/resource_register", json={
361
- "resource_dict": resource_dict
358
+ "resource_list": resource_list
362
359
  })
363
360
  return res
364
361
  except Exception as e:
@@ -12,40 +12,57 @@ class app_config:
12
12
  return current_app.config.get(key, default)
13
13
 
14
14
 
15
- def serialize_result_to_dict(result):
15
+ def result_to_dict(result):
16
16
  """
17
- 结果对象序列化为字典
17
+ 将结果对象或SQLAlchemy查询结果转换为字典
18
18
  :param result:
19
19
  :return:
20
20
  """
21
21
  if isinstance(result, list):
22
- return [serialize_result_to_dict(r) for r in result]
23
- if not hasattr(result, "__dict__"):
24
- return result
25
- return {k: v for k, v in result.__dict__.items() if not k.startswith('_')}
22
+ return [result_to_dict(r) for r in result]
26
23
 
24
+ if hasattr(result, "_fields"):
25
+ key_list = list(result._fields)
26
+ return dict(zip(key_list, result))
27
27
 
28
- def alchemy_result_to_dict(result):
29
- """
30
- alchemy 指定字段查询后返回的数据解析为字典
31
- :param result:
32
- :return:
33
- """
34
- data_list = []
35
- if not result:
36
- return result
37
- if isinstance(result, list):
38
- key_list = list(result[0]._fields)
39
- for d in result:
40
- dict_data = dict(zip(key_list, d))
41
- data_list.append(dict_data)
42
- return data_list
43
- else:
44
- if result:
45
- key_list = list(result._fields)
46
- return dict(zip(key_list, result))
47
- else:
48
- return {}
28
+ if hasattr(result, "__dict__"):
29
+ return {k: v for k, v in result.__dict__.items() if not k.startswith('_')}
30
+ return result
31
+
32
+ # def serialize_result_to_dict(result):
33
+ # """
34
+ # 结果对象序列化为字典
35
+ # :param result:
36
+ # :return:
37
+ # """
38
+ # if isinstance(result, list):
39
+ # return [serialize_result_to_dict(r) for r in result]
40
+ # if not hasattr(result, "__dict__"):
41
+ # return result
42
+ # return {k: v for k, v in result.__dict__.items() if not k.startswith('_')}
43
+ #
44
+ #
45
+ # def alchemy_result_to_dict(result):
46
+ # """
47
+ # alchemy 指定字段查询后返回的数据解析为字典
48
+ # :param result:
49
+ # :return:
50
+ # """
51
+ # data_list = []
52
+ # if not result:
53
+ # return result
54
+ # if isinstance(result, list):
55
+ # key_list = list(result[0]._fields)
56
+ # for d in result:
57
+ # dict_data = dict(zip(key_list, d))
58
+ # data_list.append(dict_data)
59
+ # return data_list
60
+ # else:
61
+ # if result:
62
+ # key_list = list(result._fields)
63
+ # return dict(zip(key_list, result))
64
+ # else:
65
+ # return {}
49
66
 
50
67
 
51
68
  def generate_uuid():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.0.49
3
+ Version: 0.0.50
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy