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.
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/PKG-INFO +1 -1
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/__init__.py +1 -1
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/base_service.py +8 -8
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/setting/__init__.py +1 -1
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/setup/__init__.py +9 -12
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/helpers.py +44 -27
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/PKG-INFO +1 -1
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/README.md +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/app.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/db/__init__.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/db/datasource.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/db/executor.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/log/access_log_handler.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/access_log.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/auth_client.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/auth_permission.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/base_model.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/parameterized_query.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/response_result.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/model/user.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/access_log_service.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/auth_client_service.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/auth_permission_service.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/authentication_service.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/__init__.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/decorator/__init__.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/decorator/cache.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/decorator/swagger.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/file/file_exporter.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/oss/__init__.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/redis/redis_helper.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/request/request.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/wsgi.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/SOURCES.txt +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/dependency_links.txt +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/requires.txt +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/top_level.txt +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/__init__.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/clickhouse.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/elasticsearch.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/kingbase.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/mysql.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/query_runner/pg.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/settings/__init__.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/settings/helpers.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/utils/__init__.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/redash/utils/requests_session.py +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/setup.cfg +0 -0
- {lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/setup.py +0 -0
|
@@ -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
|
|
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
|
|
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 =
|
|
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
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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,
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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[
|
|
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
|
-
|
|
326
|
-
|
|
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
|
-
|
|
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
|
-
"
|
|
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
|
|
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 [
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/access_log_service.py
RENAMED
|
File without changes
|
{lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/auth_client_service.py
RENAMED
|
File without changes
|
{lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/auth_permission_service.py
RENAMED
|
File without changes
|
{lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/service/authentication_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/json/NotSortJSONProvider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/swagger/swagger_template.py
RENAMED
|
File without changes
|
{lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask/utils/swagger/swagger_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.0.49 → lesscode_flask-0.0.50}/lesscode_flask.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|