ezKit 1.12.24__py3-none-any.whl → 1.12.26__py3-none-any.whl
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.
- ezKit/database.py +16 -11
- ezKit/errors.py +39 -0
- {ezkit-1.12.24.dist-info → ezkit-1.12.26.dist-info}/METADATA +1 -1
- {ezkit-1.12.24.dist-info → ezkit-1.12.26.dist-info}/RECORD +7 -6
- {ezkit-1.12.24.dist-info → ezkit-1.12.26.dist-info}/WHEEL +0 -0
- {ezkit-1.12.24.dist-info → ezkit-1.12.26.dist-info}/licenses/LICENSE +0 -0
- {ezkit-1.12.24.dist-info → ezkit-1.12.26.dist-info}/top_level.txt +0 -0
ezKit/database.py
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
|
10
10
|
import csv
|
11
11
|
import json
|
12
|
+
from copy import deepcopy
|
12
13
|
from datetime import date, datetime
|
13
14
|
from typing import Any, Dict, List, Optional, Tuple, Type
|
14
15
|
|
@@ -121,11 +122,13 @@ def build_sqlalchemy_where_clause(data: dict) -> Optional[Tuple[str, Dict[str, A
|
|
121
122
|
|
122
123
|
try:
|
123
124
|
|
125
|
+
_data = deepcopy(data)
|
126
|
+
|
124
127
|
sql_parts = []
|
125
128
|
param_dict = {}
|
126
129
|
bind_params = []
|
127
130
|
|
128
|
-
for field, value in
|
131
|
+
for field, value in _data.items():
|
129
132
|
|
130
133
|
# 特殊处理日期字段
|
131
134
|
if field == "date" or field.startswith("date__"):
|
@@ -195,32 +198,34 @@ def build_sqlalchemy_select_where(data: dict) -> tuple | None:
|
|
195
198
|
|
196
199
|
try:
|
197
200
|
|
201
|
+
_data = deepcopy(data)
|
202
|
+
|
198
203
|
# 获取分页参数 (从 data 中取出 pageIndex 和 pageSize, 剩余的为查询参数)
|
199
204
|
|
200
|
-
pageIndex =
|
201
|
-
pageSize =
|
205
|
+
pageIndex = _data.pop("pageIndex", 1)
|
206
|
+
pageSize = _data.pop("pageSize", 10)
|
202
207
|
|
203
208
|
limit, offset = get_limit_offset(pageIndex, pageSize)
|
204
209
|
|
205
210
|
# 构建 WHERE
|
206
211
|
|
207
|
-
build_result = build_sqlalchemy_where_clause(
|
212
|
+
build_result = build_sqlalchemy_where_clause(_data)
|
208
213
|
|
209
214
|
if build_result is None:
|
210
215
|
logger.error("Build SQLAlchemy WHERE clause error")
|
211
216
|
return None
|
212
217
|
|
213
|
-
where_clause,
|
218
|
+
where_clause, statement_params, bind_params = build_result
|
214
219
|
|
215
220
|
# 添加 WHERE 前缀
|
216
221
|
if isinstance(where_clause, str) and where_clause.strip():
|
217
222
|
where_clause = f"WHERE {where_clause.strip()}"
|
218
223
|
|
219
224
|
# 分页参数
|
220
|
-
|
221
|
-
|
225
|
+
statement_params["limit"] = limit
|
226
|
+
statement_params["offset"] = offset
|
222
227
|
|
223
|
-
return where_clause,
|
228
|
+
return where_clause, statement_params, bind_params
|
224
229
|
|
225
230
|
except Exception as e:
|
226
231
|
logger.exception(e)
|
@@ -238,17 +243,17 @@ def build_sqlalchemy_update(tablename: str, where_data: dict, update_data: dict)
|
|
238
243
|
logger.error("Build SQLAlchemy WHERE clause error")
|
239
244
|
return None
|
240
245
|
|
241
|
-
where_clause,
|
246
|
+
where_clause, statement_params, bind_params = build_result
|
242
247
|
|
243
248
|
# 构建 UPDATE SQL 语句 (SET 中 key 的 value 的 key 添加后缀 _value, 避免与 where 冲突)
|
244
249
|
sql: str = f"UPDATE {tablename} SET " + ", ".join([f"{k} = :{k}_value" for k in update_data.keys()]) + f" WHERE {where_clause}"
|
245
250
|
|
246
251
|
# 合并数据 (key 添加后缀 _value, 与 SQL 保持一致)
|
247
252
|
for k in update_data.keys():
|
248
|
-
|
253
|
+
statement_params[f"{k}_value"] = update_data[k]
|
249
254
|
|
250
255
|
# 返回 statement 和 params
|
251
|
-
return text(sql).bindparams(*bind_params),
|
256
|
+
return text(sql).bindparams(*bind_params), statement_params
|
252
257
|
|
253
258
|
|
254
259
|
# --------------------------------------------------------------------------------------------------
|
ezKit/errors.py
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# 内部错误: 1000
|
2
|
+
internal_error = {
|
3
|
+
"type": {
|
4
|
+
"code": 1001,
|
5
|
+
"message": "type error",
|
6
|
+
},
|
7
|
+
}
|
8
|
+
|
9
|
+
# HTTP错误: 2000
|
10
|
+
http_error = {
|
11
|
+
"request_data": {
|
12
|
+
"code": 2001,
|
13
|
+
"message": "HTTP request data error",
|
14
|
+
},
|
15
|
+
}
|
16
|
+
|
17
|
+
# 数据库错误: 3000
|
18
|
+
database_error = {
|
19
|
+
"create": {
|
20
|
+
"code": 3001,
|
21
|
+
"message": "Database create data error",
|
22
|
+
},
|
23
|
+
"read": {
|
24
|
+
"code": 3002,
|
25
|
+
"message": "Database read data error",
|
26
|
+
},
|
27
|
+
"update": {
|
28
|
+
"code": 3003,
|
29
|
+
"message": "Database create data error",
|
30
|
+
},
|
31
|
+
"delete": {
|
32
|
+
"code": 3004,
|
33
|
+
"message": "Database delete data error",
|
34
|
+
},
|
35
|
+
"build_sqlalchemy_where": {
|
36
|
+
"code": 3005,
|
37
|
+
"message": "Database build SQLAlchemy WHERE error",
|
38
|
+
},
|
39
|
+
}
|
@@ -3,8 +3,9 @@ ezKit/_file.py,sha256=0qRZhwYuagTgTGrhm-tzAMvEQT4HTJA_xZKqF2bo0ho,1207
|
|
3
3
|
ezKit/bottle.py,sha256=43h4v1kzz6qrLvCt5IMN0H-gFtaT0koG9wETqteXsps,181666
|
4
4
|
ezKit/bottle_extensions.py,sha256=27rogmfK7mL2qUSjXH79IMGZbCVULtYEikql_N9O6Zs,1165
|
5
5
|
ezKit/cipher.py,sha256=7jBarRH7ukSYzkz-Anl8B8JzluhnRz4CLHidPRRj_cg,2939
|
6
|
-
ezKit/database.py,sha256=
|
6
|
+
ezKit/database.py,sha256=yxi8HZw9ijbfKYhCl8OApoLDwLW7tYjPPucsTw6D_Is,23761
|
7
7
|
ezKit/dockerhub.py,sha256=j-wQO-71BsOgExHZhYynuy2k_hCX3on-vg0TH7QCit4,1996
|
8
|
+
ezKit/errors.py,sha256=cZ6mxKvFIPhyStgpI-xJ0d9RKaHgYDfEVAd0DTTmOo4,791
|
8
9
|
ezKit/http.py,sha256=zhNxJF-x91UqGncXWxVXnhZVpFo_wmmpGnMXVT11y9E,1832
|
9
10
|
ezKit/markdown_to_html.template,sha256=21G2sSVGJn6aJvHd0NN4zY5YiDteKe4UtW36AzBwSdk,22274
|
10
11
|
ezKit/mongo.py,sha256=vsRCjJ2uWbNp-1bnGKICPohNYx25El8XnHp10o-lsM4,2397
|
@@ -15,8 +16,8 @@ ezKit/token.py,sha256=Ac-i9xfq4TqpGyfCzakjrh4NYzxHiN2sCQrMk1tzVi8,1716
|
|
15
16
|
ezKit/utils.py,sha256=U457ahFkxIXuB-qWvS3995xJs-LlkFIX5_ZWVgmL5cY,43130
|
16
17
|
ezKit/xftp.py,sha256=-XQXyhMqeigT63P6sXkSS7r4GROXyqqlkzKxITLWG-g,8278
|
17
18
|
ezKit/zabbix.py,sha256=PkMnfu7mcuotwwIIsHaC9FsNg-gap6hD1xvm0AwSL1Y,33777
|
18
|
-
ezkit-1.12.
|
19
|
-
ezkit-1.12.
|
20
|
-
ezkit-1.12.
|
21
|
-
ezkit-1.12.
|
22
|
-
ezkit-1.12.
|
19
|
+
ezkit-1.12.26.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
20
|
+
ezkit-1.12.26.dist-info/METADATA,sha256=vw83wZI4gd6TraXXqL1fUswqghGHX0h_Ehs0SYmNYnQ,317
|
21
|
+
ezkit-1.12.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
22
|
+
ezkit-1.12.26.dist-info/top_level.txt,sha256=aYLB_1WODsqNTsTFWcKP-BN0KCTKcV-HZJ4zlHkCFw8,6
|
23
|
+
ezkit-1.12.26.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|