reykit 1.1.1__py3-none-any.whl → 1.1.2__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.
- reykit/__init__.py +0 -6
- reykit-1.1.2.dist-info/METADATA +44 -0
- {reykit-1.1.1.dist-info → reykit-1.1.2.dist-info}/RECORD +5 -13
- {reykit-1.1.1.dist-info → reykit-1.1.2.dist-info}/WHEEL +1 -2
- reykit-1.1.2.dist-info/licenses/LICENSE +7 -0
- reydb/__init__.py +0 -25
- reydb/rall.py +0 -17
- reydb/rbuild.py +0 -1235
- reydb/rconnection.py +0 -2276
- reydb/rexecute.py +0 -350
- reydb/rfile.py +0 -416
- reydb/rinformation.py +0 -503
- reydb/rparameter.py +0 -243
- reykit-1.1.1.dist-info/METADATA +0 -29
- reykit-1.1.1.dist-info/top_level.txt +0 -1
reydb/rexecute.py
DELETED
@@ -1,350 +0,0 @@
|
|
1
|
-
# !/usr/bin/env python
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
|
4
|
-
"""
|
5
|
-
@Time : 2022-12-05 14:10:02
|
6
|
-
@Author : Rey
|
7
|
-
@Contact : reyxbo@163.com
|
8
|
-
@Explain : Database execute methods.
|
9
|
-
"""
|
10
|
-
|
11
|
-
|
12
|
-
from __future__ import annotations
|
13
|
-
from typing import Any, Literal, overload
|
14
|
-
from reykit.rexception import throw
|
15
|
-
from reykit.rtable import Table
|
16
|
-
|
17
|
-
from .rconnection import RDatabase, RDBConnection, RResult
|
18
|
-
|
19
|
-
|
20
|
-
__all__ = (
|
21
|
-
'RDBExecute',
|
22
|
-
)
|
23
|
-
|
24
|
-
|
25
|
-
class RDBExecute(object):
|
26
|
-
"""
|
27
|
-
Rey's `database execute` type.
|
28
|
-
|
29
|
-
Examples
|
30
|
-
--------
|
31
|
-
Select.
|
32
|
-
>>> field = ['id', 'value']
|
33
|
-
>>> where = '`id` = ids'
|
34
|
-
>>> ids = (1, 2)
|
35
|
-
>>> result = RDBExecute.database.table(field, where, ids=ids)
|
36
|
-
|
37
|
-
Insert.
|
38
|
-
>>> data = [{'id': 1}, {'id': 2}]
|
39
|
-
>>> duplicate = 'ignore'
|
40
|
-
>>> result = RDBExecute.database.table + data
|
41
|
-
>>> result = RDBExecute.database.table + (data, duplicate)
|
42
|
-
>>> result = RDBExecute.database.table + {'data': data, 'duplicate': duplicate}
|
43
|
-
|
44
|
-
Update.
|
45
|
-
>>> data = [{'name': 'a', 'id': 1}, {'name': 'b', 'id': 2}]
|
46
|
-
>>> where_fields = 'id'
|
47
|
-
>>> result = RDBExecute.database.table & data
|
48
|
-
>>> result = RDBExecute.database.table & (data, where_fields)
|
49
|
-
>>> result = RDBExecute.database.table & {'data': data, 'where_fields': where_fields}
|
50
|
-
|
51
|
-
Delete.
|
52
|
-
>>> where = '`id` IN (1, 2)'
|
53
|
-
>>> report = True
|
54
|
-
>>> result = RDBExecute.database.table - where
|
55
|
-
>>> result = RDBExecute.database.table - (where, report)
|
56
|
-
>>> result = RDBExecute.database.table - {'where': where, 'report': report}
|
57
|
-
|
58
|
-
Copy.
|
59
|
-
>>> where = '`id` IN (1, 2)'
|
60
|
-
>>> limit = 1
|
61
|
-
>>> result = RDBExecute.database.table * where
|
62
|
-
>>> result = RDBExecute.database.table * (where, limit)
|
63
|
-
>>> result = RDBExecute.database.table * {'where': where, 'limit': limit}
|
64
|
-
|
65
|
-
Exist.
|
66
|
-
>>> where = '`id` IN (1, 2)'
|
67
|
-
>>> report = True
|
68
|
-
>>> result = where in RDBExecute.database.table
|
69
|
-
>>> result = (where, report) in RDBExecute.database.table
|
70
|
-
>>> result = {'where': where, 'report': report} in RDBExecute.database.table
|
71
|
-
|
72
|
-
Count.
|
73
|
-
>>> result = len(RDBExecute.database.table)
|
74
|
-
|
75
|
-
Default database.
|
76
|
-
>>> field = ['id', 'value']
|
77
|
-
>>> engine = RDatabase(**server, database)
|
78
|
-
>>> result = engine.exe.table()
|
79
|
-
"""
|
80
|
-
|
81
|
-
|
82
|
-
def __init__(self, rdatabase: RDatabase | RDBConnection) -> None:
|
83
|
-
"""
|
84
|
-
Build `database execute` attributes.
|
85
|
-
|
86
|
-
Parameters
|
87
|
-
----------
|
88
|
-
rdatabase : RDatabase or RDBConnection instance.
|
89
|
-
"""
|
90
|
-
|
91
|
-
# Set parameter.
|
92
|
-
self._rdatabase = rdatabase
|
93
|
-
self._path: list[str] = []
|
94
|
-
|
95
|
-
|
96
|
-
@overload
|
97
|
-
def __getattr__(self, key: Literal['_rdatabase']) -> RDatabase | RDBConnection: ...
|
98
|
-
|
99
|
-
@overload
|
100
|
-
def __getattr__(self, key: Literal['_path']) -> list[str]: ...
|
101
|
-
|
102
|
-
@overload
|
103
|
-
def __getattr__(self, key: str) -> RDBExecute: ...
|
104
|
-
|
105
|
-
def __getattr__(self, key: str) -> RDatabase | RDBConnection | list[str] | RDBExecute:
|
106
|
-
"""
|
107
|
-
Get attribute or set database name or set table name.
|
108
|
-
|
109
|
-
Parameters
|
110
|
-
----------
|
111
|
-
key : Attribute key or database name or table name.
|
112
|
-
|
113
|
-
Returns
|
114
|
-
-------
|
115
|
-
Value of attribute or self.
|
116
|
-
"""
|
117
|
-
|
118
|
-
# Filter private.
|
119
|
-
if key in ('_rdatabase', '_path'):
|
120
|
-
return self.__dict__[key]
|
121
|
-
|
122
|
-
# Check parameter.
|
123
|
-
if len(self._path) not in (0, 1):
|
124
|
-
throw(AssertionError)
|
125
|
-
|
126
|
-
# Set parameter.
|
127
|
-
self._path.append(key)
|
128
|
-
|
129
|
-
return self
|
130
|
-
|
131
|
-
|
132
|
-
@property
|
133
|
-
def _get_path(self) -> tuple[str, str]:
|
134
|
-
"""
|
135
|
-
Get database name and table name.
|
136
|
-
|
137
|
-
Returns
|
138
|
-
-------
|
139
|
-
Database name and table name.
|
140
|
-
"""
|
141
|
-
|
142
|
-
# Get.
|
143
|
-
path_len = len(self._path)
|
144
|
-
match path_len:
|
145
|
-
case 1:
|
146
|
-
database = self._rdatabase.database
|
147
|
-
table = self._path[0]
|
148
|
-
case 2:
|
149
|
-
database = self._path[0]
|
150
|
-
table = self._path[1]
|
151
|
-
case _:
|
152
|
-
throw(AssertionError)
|
153
|
-
|
154
|
-
return database, table
|
155
|
-
|
156
|
-
|
157
|
-
def __call__(
|
158
|
-
self,
|
159
|
-
*args: Any,
|
160
|
-
**kwargs: Any
|
161
|
-
) -> RResult:
|
162
|
-
"""
|
163
|
-
Select the data of table in the datebase.
|
164
|
-
|
165
|
-
Parameters
|
166
|
-
----------
|
167
|
-
args : Position arguments.
|
168
|
-
kwargs : Keyword arguments.
|
169
|
-
|
170
|
-
Returns
|
171
|
-
-------
|
172
|
-
Result object.
|
173
|
-
"""
|
174
|
-
|
175
|
-
# Selete.
|
176
|
-
result = self._rdatabase.execute_select(self._get_path, *args, **kwargs)
|
177
|
-
|
178
|
-
return result
|
179
|
-
|
180
|
-
|
181
|
-
def __add__(
|
182
|
-
self,
|
183
|
-
params: tuple | dict | Table
|
184
|
-
) -> RResult:
|
185
|
-
"""
|
186
|
-
Insert the data of table in the datebase.
|
187
|
-
|
188
|
-
Parameters
|
189
|
-
----------
|
190
|
-
params : Insert parameters.
|
191
|
-
- `tuple`: Enter parameters in '(path, *params)' format.
|
192
|
-
- `dict`: Enter parameters in '(path, **params)' format.
|
193
|
-
- `Table`: Enter parameters in '(path, params)' format.
|
194
|
-
|
195
|
-
Returns
|
196
|
-
-------
|
197
|
-
Result object.
|
198
|
-
"""
|
199
|
-
|
200
|
-
# Insert.
|
201
|
-
match params:
|
202
|
-
case tuple():
|
203
|
-
result = self._rdatabase.execute_insert(self._get_path, *params)
|
204
|
-
case dict():
|
205
|
-
result = self._rdatabase.execute_insert(self._get_path, **params)
|
206
|
-
case _:
|
207
|
-
result = self._rdatabase.execute_insert(self._get_path, params)
|
208
|
-
|
209
|
-
return result
|
210
|
-
|
211
|
-
|
212
|
-
def __and__(
|
213
|
-
self,
|
214
|
-
params: tuple | dict | Table
|
215
|
-
) -> RResult:
|
216
|
-
"""
|
217
|
-
Update the data of table in the datebase.
|
218
|
-
|
219
|
-
Parameters
|
220
|
-
----------
|
221
|
-
params : Update parameters.
|
222
|
-
- `tuple`: Enter parameters in '(path, *params)' format.
|
223
|
-
- `dict`: Enter parameters in '(path, **params)' format.
|
224
|
-
- `Table`: Enter parameters in '(path, params)' format.
|
225
|
-
|
226
|
-
Returns
|
227
|
-
-------
|
228
|
-
Result object.
|
229
|
-
"""
|
230
|
-
|
231
|
-
# Update.
|
232
|
-
match params:
|
233
|
-
case tuple():
|
234
|
-
result = self._rdatabase.execute_update(self._get_path, *params)
|
235
|
-
case dict():
|
236
|
-
result = self._rdatabase.execute_update(self._get_path, **params)
|
237
|
-
case _:
|
238
|
-
result = self._rdatabase.execute_update(self._get_path, params)
|
239
|
-
|
240
|
-
return result
|
241
|
-
|
242
|
-
|
243
|
-
def __sub__(
|
244
|
-
self,
|
245
|
-
params: tuple | dict | str
|
246
|
-
) -> RResult:
|
247
|
-
"""
|
248
|
-
Delete the data of table in the datebase.
|
249
|
-
|
250
|
-
Parameters
|
251
|
-
----------
|
252
|
-
params : Update parameters.
|
253
|
-
- `tuple`: Enter parameters in '(path, *params)' format.
|
254
|
-
- `dict`: Enter parameters in '(path, **params)' format.
|
255
|
-
- `str`: Enter parameters in '(path, params)' format.
|
256
|
-
|
257
|
-
Returns
|
258
|
-
-------
|
259
|
-
Result object.
|
260
|
-
"""
|
261
|
-
|
262
|
-
# Update.
|
263
|
-
match params:
|
264
|
-
case tuple():
|
265
|
-
result = self._rdatabase.execute_delete(self._get_path, *params)
|
266
|
-
case dict():
|
267
|
-
result = self._rdatabase.execute_delete(self._get_path, **params)
|
268
|
-
case _:
|
269
|
-
result = self._rdatabase.execute_delete(self._get_path, params)
|
270
|
-
|
271
|
-
return result
|
272
|
-
|
273
|
-
|
274
|
-
def __mul__(
|
275
|
-
self,
|
276
|
-
params: tuple | dict | str
|
277
|
-
) -> RResult:
|
278
|
-
"""
|
279
|
-
Copy record of table in the datebase.
|
280
|
-
|
281
|
-
Parameters
|
282
|
-
----------
|
283
|
-
params : Update parameters.
|
284
|
-
- `tuple`: Enter parameters in '(path, *params)' format.
|
285
|
-
- `dict`: Enter parameters in '(path, **params)' format.
|
286
|
-
- `str`: Enter parameters in '(path, params)' format.
|
287
|
-
|
288
|
-
Returns
|
289
|
-
-------
|
290
|
-
Result object.
|
291
|
-
"""
|
292
|
-
|
293
|
-
# Update.
|
294
|
-
match params:
|
295
|
-
case tuple():
|
296
|
-
result = self._rdatabase.execute_copy(self._get_path, *params)
|
297
|
-
case dict():
|
298
|
-
result = self._rdatabase.execute_copy(self._get_path, **params)
|
299
|
-
case _:
|
300
|
-
result = self._rdatabase.execute_copy(self._get_path, params)
|
301
|
-
|
302
|
-
return result
|
303
|
-
|
304
|
-
|
305
|
-
def __contains__(
|
306
|
-
self,
|
307
|
-
params: tuple | dict | str
|
308
|
-
) -> bool:
|
309
|
-
"""
|
310
|
-
Judge the exist of record.
|
311
|
-
|
312
|
-
Parameters
|
313
|
-
----------
|
314
|
-
params : Update parameters.
|
315
|
-
- `tuple`: Enter parameters in '(path, *params)' format.
|
316
|
-
- `dict`: Enter parameters in '(path, **params)' format.
|
317
|
-
- `str`: Enter parameters in '(path, params)' format.
|
318
|
-
|
319
|
-
Returns
|
320
|
-
-------
|
321
|
-
Result object.
|
322
|
-
"""
|
323
|
-
|
324
|
-
# Update.
|
325
|
-
match params:
|
326
|
-
case tuple():
|
327
|
-
result = self._rdatabase.execute_exist(self._get_path, *params)
|
328
|
-
case dict():
|
329
|
-
result = self._rdatabase.execute_exist(self._get_path, **params)
|
330
|
-
case _:
|
331
|
-
result = self._rdatabase.execute_exist(self._get_path, params)
|
332
|
-
|
333
|
-
return result
|
334
|
-
|
335
|
-
|
336
|
-
def __len__(
|
337
|
-
self
|
338
|
-
) -> int:
|
339
|
-
"""
|
340
|
-
Count records.
|
341
|
-
|
342
|
-
Returns
|
343
|
-
-------
|
344
|
-
Record count.
|
345
|
-
"""
|
346
|
-
|
347
|
-
# Update.
|
348
|
-
result = self._rdatabase.execute_count(self._get_path)
|
349
|
-
|
350
|
-
return result
|