lesscode-flask 0.0.74__tar.gz → 0.0.76__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.74 → lesscode_flask-0.0.76}/PKG-INFO +1 -1
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/__init__.py +1 -1
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/setup/__init__.py +17 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/decorator/cache.py +22 -5
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask.egg-info/PKG-INFO +1 -1
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/README.md +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/app.py +1 -1
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/db/__init__.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/db/datasource.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/db/executor.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/log/access_log_handler.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/model/access_log.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/model/auth_client.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/model/auth_permission.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/model/base_model.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/model/parameterized_query.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/model/response_result.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/model/user.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/service/access_log_service.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/service/auth_client_service.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/service/auth_permission_service.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/service/authentication_service.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/service/base_service.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/setting/__init__.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/__init__.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/decorator/__init__.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/decorator/swagger.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/file/file_exporter.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/helpers.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/oss/__init__.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/redis/redis_helper.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/request/request.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/thread/thread_utils.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/wsgi.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask.egg-info/SOURCES.txt +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask.egg-info/dependency_links.txt +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask.egg-info/requires.txt +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask.egg-info/top_level.txt +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/query_runner/__init__.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/query_runner/clickhouse.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/query_runner/elasticsearch.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/query_runner/kingbase.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/query_runner/mysql.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/query_runner/pg.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/settings/__init__.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/settings/helpers.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/utils/__init__.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/redash/utils/requests_session.py +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/setup.cfg +0 -0
- {lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/setup.py +0 -0
|
@@ -295,6 +295,22 @@ def setup_resource_register(app):
|
|
|
295
295
|
})
|
|
296
296
|
return param_list
|
|
297
297
|
|
|
298
|
+
def convert_to_kebab_case_and_camel_case(input_string):
|
|
299
|
+
# 去掉开头的斜杠
|
|
300
|
+
if input_string.startswith('/'):
|
|
301
|
+
input_string = input_string[1:]
|
|
302
|
+
# 将斜杠替换为下划线
|
|
303
|
+
modified_string = input_string.replace('/', '-')
|
|
304
|
+
# 分割字符串
|
|
305
|
+
parts = modified_string.split('_')
|
|
306
|
+
# 将第一个部分转换为小写,其余部分首字母大写
|
|
307
|
+
camel_case_parts = [parts[0].lower()] + [part.capitalize() for part in parts[1:]]
|
|
308
|
+
# 将所有部分连接成小驼峰格式
|
|
309
|
+
camel_case_string = ''.join(camel_case_parts)
|
|
310
|
+
# 将下划线替换为斜杠
|
|
311
|
+
kebab_case_string = camel_case_string.replace('_', '-')
|
|
312
|
+
return kebab_case_string
|
|
313
|
+
|
|
298
314
|
def package_resource(label, symbol, access, type, method="", url="", description="", param_list: list = None):
|
|
299
315
|
"""
|
|
300
316
|
:param label: 展示中文名称
|
|
@@ -306,6 +322,7 @@ def setup_resource_register(app):
|
|
|
306
322
|
:param description:接口描述
|
|
307
323
|
:return:
|
|
308
324
|
"""
|
|
325
|
+
symbol = convert_to_kebab_case_and_camel_case(symbol)
|
|
309
326
|
resource = {
|
|
310
327
|
"client_id": current_app.config.get("CLIENT_ID", ""),
|
|
311
328
|
"label": label,
|
|
@@ -5,13 +5,14 @@ import inspect
|
|
|
5
5
|
import json
|
|
6
6
|
import logging
|
|
7
7
|
import sys
|
|
8
|
+
import threading
|
|
8
9
|
import traceback
|
|
9
10
|
|
|
10
|
-
from
|
|
11
|
-
from importlib import import_module
|
|
11
|
+
from importlib import import_module
|
|
12
12
|
|
|
13
13
|
# 装饰器
|
|
14
14
|
# from lesscode_utils.json_utils import JSONEncoder
|
|
15
|
+
from flask import copy_current_request_context
|
|
15
16
|
|
|
16
17
|
from lesscode_flask.utils.helpers import app_config
|
|
17
18
|
from lesscode_flask.utils.redis.redis_helper import RedisHelper
|
|
@@ -74,13 +75,14 @@ def query_cache(cache_key, params=None, ex=3600 * 12, func=None, args=None, conn
|
|
|
74
75
|
ttl = RedisHelper(conn_name).get_connection().ttl(cache_key)
|
|
75
76
|
|
|
76
77
|
if ttl and ex >= 900 and 0 < ttl <= ex - 900:
|
|
77
|
-
|
|
78
|
+
thread_func = wrapper(_func=request_interface, _kwargs={
|
|
78
79
|
"func": func,
|
|
79
80
|
"params": params,
|
|
80
81
|
"args": args,
|
|
81
82
|
"ex": ex,
|
|
82
83
|
"cache_key": cache_key
|
|
83
|
-
})
|
|
84
|
+
})
|
|
85
|
+
t = threading.Thread(target=thread_func).start()
|
|
84
86
|
data = RedisHelper(conn_name).sync_get(cache_key)
|
|
85
87
|
if data:
|
|
86
88
|
value = json.loads(data)
|
|
@@ -97,6 +99,21 @@ def request_interface(func, params, args, ex, cache_key):
|
|
|
97
99
|
insert_cache(data, ex, cache_key)
|
|
98
100
|
|
|
99
101
|
|
|
102
|
+
def wrapper(_func, _kwargs, _args=None, _is_throw_error=True):
|
|
103
|
+
if _args is None:
|
|
104
|
+
_args = []
|
|
105
|
+
|
|
106
|
+
@copy_current_request_context
|
|
107
|
+
def _thread_func():
|
|
108
|
+
try:
|
|
109
|
+
res = _func(*_args, **_kwargs)
|
|
110
|
+
except Exception as e:
|
|
111
|
+
if _is_throw_error:
|
|
112
|
+
raise e
|
|
113
|
+
|
|
114
|
+
return _thread_func
|
|
115
|
+
|
|
116
|
+
|
|
100
117
|
def format_insert_key(signature, func_name, args, params):
|
|
101
118
|
_args = []
|
|
102
119
|
param_keys = list(signature.parameters.keys())
|
|
@@ -125,7 +142,7 @@ def insert_cache(data, ex, cache_key, conn_name=None):
|
|
|
125
142
|
try:
|
|
126
143
|
json_utils = import_module("lesscode_utils.json_utils")
|
|
127
144
|
except ImportError:
|
|
128
|
-
|
|
145
|
+
raise Exception(f"lesscode_utils is not exist,run:pip install lesscode_utils==0.0.61")
|
|
129
146
|
RedisHelper(conn_name).sync_set(cache_key, json_utils.JSONEncoder().encode(data), ex=ex)
|
|
130
147
|
except:
|
|
131
148
|
logging.error(traceback.format_exc())
|
|
File without changes
|
|
@@ -144,9 +144,9 @@ class Lesscoder(Flask):
|
|
|
144
144
|
setup_sql_alchemy(self)
|
|
145
145
|
setup_redis(self)
|
|
146
146
|
setup_login_manager(self)
|
|
147
|
-
setup_resource_register(self)
|
|
148
147
|
for blueprint_name, blueprint in blueprint_map.items():
|
|
149
148
|
self.register_blueprint(blueprint)
|
|
149
|
+
setup_resource_register(self)
|
|
150
150
|
|
|
151
151
|
@staticmethod
|
|
152
152
|
def handle_exception(e):
|
|
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.74 → lesscode_flask-0.0.76}/lesscode_flask/service/access_log_service.py
RENAMED
|
File without changes
|
{lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/service/auth_client_service.py
RENAMED
|
File without changes
|
{lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/service/auth_permission_service.py
RENAMED
|
File without changes
|
{lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/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
|
|
File without changes
|
|
File without changes
|
{lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/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.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/swagger/swagger_template.py
RENAMED
|
File without changes
|
{lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/lesscode_flask/utils/swagger/swagger_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode-flask-0.0.74 → lesscode_flask-0.0.76}/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
|