ezKit 1.12.8__tar.gz → 1.12.9__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 (28) hide show
  1. {ezkit-1.12.8/ezKit.egg-info → ezkit-1.12.9}/PKG-INFO +1 -1
  2. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/database.py +55 -0
  3. {ezkit-1.12.8 → ezkit-1.12.9/ezKit.egg-info}/PKG-INFO +1 -1
  4. {ezkit-1.12.8 → ezkit-1.12.9}/setup.py +1 -1
  5. {ezkit-1.12.8 → ezkit-1.12.9}/LICENSE +0 -0
  6. {ezkit-1.12.8 → ezkit-1.12.9}/MANIFEST.in +0 -0
  7. {ezkit-1.12.8 → ezkit-1.12.9}/README.md +0 -0
  8. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/__init__.py +0 -0
  9. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/_file.py +0 -0
  10. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/bottle.py +0 -0
  11. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/bottle_extensions.py +0 -0
  12. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/cipher.py +0 -0
  13. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/dockerhub.py +0 -0
  14. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/http.py +0 -0
  15. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/markdown_to_html.template +0 -0
  16. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/mongo.py +0 -0
  17. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/qywx.py +0 -0
  18. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/redis.py +0 -0
  19. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/sendemail.py +0 -0
  20. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/token.py +0 -0
  21. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/utils.py +0 -0
  22. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/xftp.py +0 -0
  23. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit/zabbix.py +0 -0
  24. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit.egg-info/SOURCES.txt +0 -0
  25. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit.egg-info/dependency_links.txt +0 -0
  26. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit.egg-info/requires.txt +0 -0
  27. {ezkit-1.12.8 → ezkit-1.12.9}/ezKit.egg-info/top_level.txt +0 -0
  28. {ezkit-1.12.8 → ezkit-1.12.9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ezKit
3
- Version: 1.12.8
3
+ Version: 1.12.9
4
4
  Summary: Easy Kit
5
5
  Author: septvean
6
6
  Author-email: septvean@gmail.com
@@ -67,6 +67,61 @@ def orm_to_dict(obj, include: list | None = None) -> dict | list | None:
67
67
  return None
68
68
 
69
69
 
70
+ def build_raw_where_clause(data: dict) -> tuple[str, list] | None:
71
+ """
72
+ 将字段数据转换为 SQL WHERE 条件(使用原生 SQL)
73
+ 支持字段后缀操作: __like, __gt, __lt, __ne, __in, __between
74
+ 返回值: SQL字符串和参数列表 (为了避免 SQL 注入风险, 不直接返回 SQL 语句)
75
+ """
76
+
77
+ try:
78
+
79
+ sql_parts = []
80
+ params = []
81
+
82
+ for field, value in data.items():
83
+
84
+ if "__" in field:
85
+
86
+ base, op = field.split("__", 1)
87
+
88
+ if op == "like":
89
+ sql_parts.append(f"{base} LIKE %s")
90
+ params.append(f"%{value}%")
91
+ elif op == "gt":
92
+ sql_parts.append(f"{base} > %s")
93
+ params.append(value)
94
+ elif op == "lt":
95
+ sql_parts.append(f"{base} < %s")
96
+ params.append(value)
97
+ elif op == "ne":
98
+ sql_parts.append(f"{base} != %s")
99
+ params.append(value)
100
+ elif op == "in" and isinstance(value, list):
101
+ placeholders = ", ".join(["%s"] * len(value))
102
+ sql_parts.append(f"{base} IN ({placeholders})")
103
+ params.extend(value)
104
+ elif op == "between" and isinstance(value, list) and len(value) == 2:
105
+ sql_parts.append(f"{base} BETWEEN %s AND %s")
106
+ params.extend(value)
107
+
108
+ else:
109
+
110
+ sql_parts.append(f"{field} = %s")
111
+ params.append(value)
112
+
113
+ where_clause = " AND ".join(sql_parts)
114
+
115
+ return where_clause, params
116
+
117
+ except Exception as e:
118
+ logger.exception(e)
119
+ return None
120
+
121
+
122
+ # --------------------------------------------------------------------------------------------------
123
+
124
+
70
125
  class Database:
71
126
  """Database"""
72
127
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ezKit
3
- Version: 1.12.8
3
+ Version: 1.12.9
4
4
  Summary: Easy Kit
5
5
  Author: septvean
6
6
  Author-email: septvean@gmail.com
@@ -4,7 +4,7 @@ from setuptools import find_packages, setup
4
4
 
5
5
  setup(
6
6
  name="ezKit",
7
- version="1.12.8",
7
+ version="1.12.9",
8
8
  author="septvean",
9
9
  author_email="septvean@gmail.com",
10
10
  description="Easy Kit",
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
File without changes
File without changes
File without changes