lesscode-database 0.0.12__py3-none-any.whl → 0.0.13__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.

Potentially problematic release.


This version of lesscode-database might be problematic. Click here for more details.

@@ -136,11 +136,13 @@ class DsHelper:
136
136
  raise e
137
137
  return res
138
138
 
139
-
140
- def exec_(self,sql_type:str,sql):
139
+ def exec_(self, sql_type: str, sql):
141
140
  if sql_type not in ["all", "first", "delete", "update", "insert"]:
142
141
  raise Exception(f"sql_type must be all,first,delete,update,insert")
143
- if self.connect_info.db_type in ["mysql","doris","ocean_base","tidb"]:
142
+ connect_params = self.connect_info.params or {}
143
+ creator_type = connect_params.get("creator_type") or "clickhouse_driver"
144
+ if self.connect_info.db_type in ["mysql", "doris", "ocean_base", "tidb", "sqlite3", "dm"] or (
145
+ self.connect_info.db_type == "clickhouse" and creator_type == "clickhouse_driver"):
144
146
  if sql_type == "all":
145
147
  with self.pool.dedicated_connection() as conn:
146
148
  conn.ping(reconnect=True)
@@ -171,23 +173,92 @@ class DsHelper:
171
173
  with self.pool.dedicated_connection() as conn:
172
174
  conn.ping(reconnect=True)
173
175
  with conn.cursor() as cursor:
174
- rs= cursor.execute(sql)
176
+ rs = cursor.execute(sql)
175
177
  return rs
176
178
 
177
179
 
178
- elif self.connect_info.db_type == "neo4j":
179
- return self.make_neo4j_session()
180
- elif self.connect_info.db_type == "esapi":
181
- return self.esapi
182
- elif self.connect_info.db_type == "es":
183
- return self.esapi
180
+ elif self.connect_info.db_type in ["mssql", "oracle"]:
181
+ if sql_type == "all":
182
+ cursor = self.pool.cursor()
183
+ cursor.execute(sql)
184
+ rs = cursor.fetchall()
185
+ return rs
186
+ elif sql_type == "first":
187
+ cursor = self.pool.cursor()
188
+ cursor.execute(sql)
189
+ rs = cursor.fetchone()
190
+ return rs
191
+ elif sql_type == "delete":
192
+ cursor = self.pool.cursor()
193
+ rs = cursor.execute(sql)
194
+ return rs
195
+ elif sql_type == "update":
196
+ cursor = self.pool.cursor()
197
+ rs = cursor.execute(sql)
198
+ return rs
199
+ else:
200
+ cursor = self.pool.cursor()
201
+ rs = cursor.execute(sql)
202
+ return rs
203
+ elif self.connect_info.db_type in ["postgresql"]:
204
+ if sql_type == "all":
205
+ with self.pool.connection() as conn:
206
+ with conn.cursor() as cursor:
207
+ cursor.execute(sql)
208
+ rs = cursor.fetchall()
209
+ return rs
210
+ elif sql_type == "first":
211
+ with self.pool.connection() as conn:
212
+ with conn.cursor() as cursor:
213
+ cursor.execute(sql)
214
+ rs = cursor.fetchone()
215
+ return rs
216
+ elif sql_type == "delete":
217
+ with self.pool.connection() as conn:
218
+ with conn.cursor() as cursor:
219
+ rs = cursor.execute(sql)
220
+ return rs
221
+ elif sql_type == "update":
222
+ with self.pool.connection() as conn:
223
+ with conn.cursor() as cursor:
224
+ rs = cursor.execute(sql)
225
+ return rs
226
+ else:
227
+ with self.pool.connection() as conn:
228
+ with conn.cursor() as cursor:
229
+ rs = cursor.execute(sql)
230
+ return rs
231
+ elif self.connect_info.db_type == "clickhouse" and creator_type == "clickhouse_connect":
232
+ if sql_type == "all":
233
+ result = self.pool.query(sql).result_rows
234
+ columns = result.column_names
235
+ rows = result.result_rows
236
+ return [dict(zip(columns, row)) for row in rows]
237
+ elif sql_type == "first":
238
+ if "limit" not in sql:
239
+ sql += " limit 1"
240
+ result = self.pool.query(sql).result_rows
241
+ columns = result.column_names
242
+ rows = result.result_rows
243
+ return [dict(zip(columns, row)) for row in rows]
244
+ elif sql_type == "delete":
245
+ rs = self.pool.command(sql)
246
+ return rs
247
+ elif sql_type == "update":
248
+ rs = self.pool.command(sql)
249
+ return rs
250
+ else:
251
+ rs = self.pool.command(sql)
252
+ return rs
184
253
  else:
185
- return self.pool
254
+ raise Exception(f"暂不支持数据库类型:{self.connect_info.db_type}")
186
255
 
187
- async def async_exec_(self,sql_type:str,sql):
256
+ async def async_exec_(self, sql_type: str, sql):
188
257
  if sql_type not in ["all", "first", "delete", "update", "insert"]:
189
258
  raise Exception(f"sql_type must be all,first,delete,update,insert")
190
- if self.connect_info.db_type in ["mysql","doris","ocean_base","tidb"]:
259
+ connect_params = self.connect_info.params or {}
260
+ creator_type = connect_params.get("creator_type") or "clickhouse_driver"
261
+ if self.connect_info.db_type in ["mysql", "doris", "ocean_base", "tidb", "postgresql"]:
191
262
  if sql_type == "all":
192
263
  async with self.pool.acquire() as conn:
193
264
  async with conn.cursor() as cursor:
@@ -213,9 +284,52 @@ class DsHelper:
213
284
  else:
214
285
  async with self.pool.acquire() as conn:
215
286
  async with conn.cursor() as cursor:
216
- rs= await cursor.execute(sql)
287
+ rs = await cursor.execute(sql)
217
288
  return rs
218
- elif self.connect_info.db_type == "neo4j":
219
- return self.async_make_neo4
289
+ elif self.connect_info.db_type in ["sqlite3"]:
290
+ if sql_type == "all":
291
+ cur = await self.pool.cursor()
292
+ await cur.execute(sql)
293
+ rs = await cur.fetchall()
294
+ return rs
295
+ elif sql_type == "first":
296
+ cur = await self.pool.cursor()
297
+ await cur.execute(sql)
298
+ rs = await cur.fetchone()
299
+ return rs
300
+ elif sql_type == "delete":
301
+ cur = await self.pool.cursor()
302
+ rs = await cur.execute(sql)
303
+ return rs
304
+ elif sql_type == "update":
305
+ cur = await self.pool.cursor()
306
+ rs = await cur.execute(sql)
307
+ return rs
308
+ else:
309
+ cur = await self.pool.cursor()
310
+ rs = await cur.execute(sql)
311
+ return rs
312
+ elif self.connect_info.db_type == "clickhouse" and creator_type == "clickhouse_connect":
313
+ if sql_type == "all":
314
+ result = await self.pool.query(sql).result_rows
315
+ columns = result.column_names
316
+ rows = result.result_rows
317
+ return [dict(zip(columns, row)) for row in rows]
318
+ elif sql_type == "first":
319
+ if "limit" not in sql:
320
+ sql += " limit 1"
321
+ result = await self.pool.query(sql).result_rows
322
+ columns = result.column_names
323
+ rows = result.result_rows
324
+ return [dict(zip(columns, row)) for row in rows]
325
+ elif sql_type == "delete":
326
+ rs = await self.pool.command(sql)
327
+ return rs
328
+ elif sql_type == "update":
329
+ rs = await self.pool.command(sql)
330
+ return rs
331
+ else:
332
+ rs = await self.pool.command(sql)
333
+ return rs
220
334
  else:
221
- return self.pool
335
+ raise Exception(f"暂不支持数据库类型:{self.connect_info.db_type}")
@@ -246,40 +246,66 @@ class Exec:
246
246
  self.__connect_name__ = connect_name or self.__connect_name__
247
247
  self._sql = ""
248
248
  self._result = None
249
- self.sql_type =""
249
+ self._sql_type = ""
250
250
 
251
- def execute(self, sql_object: Union[Select, Update, Delete, Insert]):
252
- if not self.__connect_name__:
253
- self.__connect_name__ = sql_object._connect_name
254
- self._sql = sql_object._sql()
255
- if isinstance(sql_object, Select):
251
+ def execute(self, statement: Union[Select, Update, Delete, Insert, str]):
252
+ if not self.__connect_name__ and not isinstance(statement, str):
253
+ self.__connect_name__ = statement._connect_name
254
+ if isinstance(statement, str):
255
+ self._sql = statement
256
256
  return self
257
257
  else:
258
+ self._sql = statement._sql()
258
259
  return self
259
260
 
260
261
  def all(self):
261
- self.sql_type = "all"
262
- self._result = DsHelper(self.__connect_name__).exec_(self.sql_type, self._sql)
262
+ self._sql_type = "all"
263
+ self._result = DsHelper(self.__connect_name__).exec_(self._sql_type, self._sql)
264
+ return self._result
265
+
266
+ async def async_all(self):
267
+ self._sql_type = "all"
268
+ self._result = await DsHelper(self.__connect_name__).async_exec_(self._sql_type, self._sql)
263
269
  return self._result
264
270
 
265
271
  def first(self):
266
- self.sql_type = "first"
267
- self._result = DsHelper(self.__connect_name__).exec_(self.sql_type, self._sql)
272
+ self._sql_type = "first"
273
+ self._result = DsHelper(self.__connect_name__).exec_(self._sql_type, self._sql)
274
+ return self._result
275
+
276
+ async def async_first(self):
277
+ self._sql_type = "first"
278
+ self._result = await DsHelper(self.__connect_name__).async_exec_(self._sql_type, self._sql)
268
279
  return self._result
269
280
 
270
281
  def update(self):
271
- self.sql_type = "update"
272
- self._result = DsHelper(self.__connect_name__).exec_(self.sql_type, self._sql)
282
+ self._sql_type = "update"
283
+ self._result = DsHelper(self.__connect_name__).exec_(self._sql_type, self._sql)
284
+ return self._result
285
+
286
+ async def async_update(self):
287
+ self._sql_type = "update"
288
+ self._result = await DsHelper(self.__connect_name__).async_exec_(self._sql_type, self._sql)
273
289
  return self._result
274
290
 
275
291
  def delete(self):
276
- self.sql_type = "delete"
277
- self._result = DsHelper(self.__connect_name__).exec_(self.sql_type, self._sql)
292
+ self._sql_type = "delete"
293
+ self._result = DsHelper(self.__connect_name__).exec_(self._sql_type, self._sql)
294
+ return self._result
295
+
296
+ async def async_delete(self):
297
+ self._sql_type = "delete"
298
+ self._result = await DsHelper(self.__connect_name__).async_exec_(self._sql_type, self._sql)
278
299
  return self._result
279
300
 
280
301
  def insert(self):
281
- self.sql_type = "insert"
282
- self._result = DsHelper(self.__connect_name__).exec_(self.sql_type, self._sql)
302
+ self._sql_type = "insert"
303
+ self._result = DsHelper(self.__connect_name__).exec_(self._sql_type, self._sql)
304
+ return self._result
305
+
306
+ async def async_insert(self):
307
+ self._sql_type = "insert"
308
+ self._result = await DsHelper(self.__connect_name__).async_exec_(self._sql_type, self._sql)
283
309
  return self._result
284
310
 
285
311
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-database
3
- Version: 0.0.12
3
+ Version: 0.0.13
4
4
  Summary: lesscode_database是数据库连接工具包
5
5
  Author-email: navysummer <navysummer@yeah.net>
6
6
  License: MIT License
@@ -3,15 +3,15 @@ lesscode_database/connect_pool.py,sha256=7mj3CRFvyGeE4ymPXRYJOzRX7otbknaRRhB74yJ
3
3
  lesscode_database/connection_info.py,sha256=HMlA-hA0LE7jGUS8crZAgrBMB-o6B9mxrWYEywgqXHg,1307
4
4
  lesscode_database/db_options.py,sha256=Z8Iy3pqDYW5YVVfvoFSsAYecK9LfiwRasYc3fzqIBt8,1928
5
5
  lesscode_database/db_request.py,sha256=siZGXIdPuTlY4NwVLnU8098bVM_6jgQzSzeO4BzkDrA,4832
6
- lesscode_database/ds_helper.py,sha256=XfXkcBfRgrv0rojl_EtdWrIHNeCdZYfoD75ZJOu6tQg,8568
6
+ lesscode_database/ds_helper.py,sha256=17ArjRLH-Xz9qZcHbInDW9xDzV7YKWPB6Yu5na2qi7s,13719
7
7
  lesscode_database/dynamic_import_package.py,sha256=J8hgGRHe6KrprOgOq-xbKHVAYHSjUBcNyTaSPvBmvIk,164
8
8
  lesscode_database/mongo_base_model.py,sha256=cKHNmi5GJBGRxCtqsggEcrzIZK7__Z_4cVaIHxmqZsc,6406
9
9
  lesscode_database/orm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- lesscode_database/orm/orm_exec.py,sha256=B4gwULU2kbXeIhwX3HTmAPw9_rO3Z7xMGj3xXV68xiM,10885
10
+ lesscode_database/orm/orm_exec.py,sha256=EgpH6-lp_Q6s0dKLFZPXaNvb8z8iynQgN_h_sbAVgT4,11945
11
11
  lesscode_database/orm/orm_func.py,sha256=-ZKO8XQQM1mUz5el-j8FkApjhI50zomg-FNfQVzwc5U,1570
12
12
  lesscode_database/orm/orm_model.py,sha256=yMt9rE9e2gYqE8Fynzk-LeaPn6-TOzLoAWmgycSz1Ow,776
13
13
  lesscode_database/orm/orm_typing.py,sha256=3roHzs4omS2XXcQ3yat0pb5otJZWiY52B9fsPlz9DDg,18568
14
- lesscode_database-0.0.12.dist-info/METADATA,sha256=30YBdqfdqBxYZeavLimIzGtSLm82lqRPUeOlrQfxwsc,12213
15
- lesscode_database-0.0.12.dist-info/WHEEL,sha256=KGYbc1zXlYddvwxnNty23BeaKzh7YuoSIvIMO4jEhvw,87
16
- lesscode_database-0.0.12.dist-info/licenses/LICENSE,sha256=ELM9gDFm8bfsS-M5bQfUC0jn272Riqpsso986u5PdBQ,77
17
- lesscode_database-0.0.12.dist-info/RECORD,,
14
+ lesscode_database-0.0.13.dist-info/METADATA,sha256=nKFVz9VFI8SUcfeb8BfthuOAXzWaaAimXpJ6brZG-J0,12213
15
+ lesscode_database-0.0.13.dist-info/WHEEL,sha256=KGYbc1zXlYddvwxnNty23BeaKzh7YuoSIvIMO4jEhvw,87
16
+ lesscode_database-0.0.13.dist-info/licenses/LICENSE,sha256=ELM9gDFm8bfsS-M5bQfUC0jn272Riqpsso986u5PdBQ,77
17
+ lesscode_database-0.0.13.dist-info/RECORD,,