reykit 1.1.89__py3-none-any.whl → 1.1.90__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/rbase.py +3 -3
- reykit/rdata.py +5 -5
- reykit/rdll/__init__.py +1 -1
- reykit/remail.py +3 -3
- reykit/rimage.py +3 -3
- reykit/rlog.py +7 -7
- reykit/rmonkey.py +1 -1
- reykit/rnet.py +4 -4
- reykit/rnum.py +1 -1
- reykit/ros.py +16 -16
- reykit/rrand.py +2 -2
- reykit/rre.py +2 -2
- reykit/rschedule.py +50 -115
- reykit/rstdout.py +4 -4
- reykit/rsys.py +5 -5
- reykit/rtable.py +9 -9
- reykit/rtask.py +3 -3
- reykit/rtext.py +2 -2
- reykit/rtime.py +4 -4
- reykit/rwrap.py +3 -3
- reykit/rzip.py +2 -2
- {reykit-1.1.89.dist-info → reykit-1.1.90.dist-info}/METADATA +1 -1
- reykit-1.1.90.dist-info/RECORD +28 -0
- reykit-1.1.89.dist-info/RECORD +0 -28
- {reykit-1.1.89.dist-info → reykit-1.1.90.dist-info}/WHEEL +0 -0
- {reykit-1.1.89.dist-info → reykit-1.1.90.dist-info}/licenses/LICENSE +0 -0
reykit/rbase.py
CHANGED
@@ -320,7 +320,7 @@ def warn(
|
|
320
320
|
stacklevel : Warning code location, number of recursions up the code level.
|
321
321
|
"""
|
322
322
|
|
323
|
-
#
|
323
|
+
# Set parameter.
|
324
324
|
if infos == ():
|
325
325
|
infos = 'Warning!'
|
326
326
|
elif len(infos) == 1:
|
@@ -347,7 +347,7 @@ def catch_exc() -> tuple[str, BaseException, StackSummary]:
|
|
347
347
|
- `StackSummary`: Exception traceback stack instance.
|
348
348
|
"""
|
349
349
|
|
350
|
-
#
|
350
|
+
# Set parameter.
|
351
351
|
exc_text = format_exc()
|
352
352
|
exc_text = exc_text.strip()
|
353
353
|
_, exc, traceback = sys_exc_info()
|
@@ -854,7 +854,7 @@ def get_varname(argname: str, level: int = 1) -> str | list[str] | None:
|
|
854
854
|
- `Throw VarnameException`: Return `None`.
|
855
855
|
"""
|
856
856
|
|
857
|
-
#
|
857
|
+
# Set parameter.
|
858
858
|
level += 1
|
859
859
|
|
860
860
|
# Get.
|
reykit/rdata.py
CHANGED
@@ -53,7 +53,7 @@ def to_json(
|
|
53
53
|
JSON format string.
|
54
54
|
"""
|
55
55
|
|
56
|
-
#
|
56
|
+
# Set parameter.
|
57
57
|
if compact:
|
58
58
|
indent = None
|
59
59
|
separators = (',', ':')
|
@@ -122,7 +122,7 @@ def flatten(data: Any, *, _flattern_data: list | None = None) -> list:
|
|
122
122
|
Data after flatten.
|
123
123
|
"""
|
124
124
|
|
125
|
-
#
|
125
|
+
# Set parameter.
|
126
126
|
_flattern_data = _flattern_data or []
|
127
127
|
|
128
128
|
# Flatten.
|
@@ -175,7 +175,7 @@ def split(data: Iterable[T], share: int | None = None, bin_size: int | None = No
|
|
175
175
|
check_least_one(share, bin_size)
|
176
176
|
check_most_one(share, bin_size)
|
177
177
|
|
178
|
-
#
|
178
|
+
# Set parameter.
|
179
179
|
data = list(data)
|
180
180
|
|
181
181
|
# Split.
|
@@ -217,7 +217,7 @@ def unique(data: Iterable[T]) -> list[T]:
|
|
217
217
|
List after de duplication.
|
218
218
|
"""
|
219
219
|
|
220
|
-
#
|
220
|
+
# Set parameter.
|
221
221
|
data = tuple(data)
|
222
222
|
|
223
223
|
# Delete duplicate.
|
@@ -350,7 +350,7 @@ def default_dict(default: T | Null = Null, data: dict[KT, VT] | None = None) ->
|
|
350
350
|
- `None`: Empty `dict`.
|
351
351
|
"""
|
352
352
|
|
353
|
-
#
|
353
|
+
# Set parameter.
|
354
354
|
|
355
355
|
## Null.
|
356
356
|
if default == Null:
|
reykit/rdll/__init__.py
CHANGED
reykit/remail.py
CHANGED
@@ -44,7 +44,7 @@ class Email(Base):
|
|
44
44
|
password : Email password.
|
45
45
|
"""
|
46
46
|
|
47
|
-
#
|
47
|
+
# Set parameter.
|
48
48
|
host, port = self.get_server_address(username)
|
49
49
|
|
50
50
|
# Set attribute.
|
@@ -121,7 +121,7 @@ class Email(Base):
|
|
121
121
|
show_cc : Show carbon copy email addresses list.
|
122
122
|
"""
|
123
123
|
|
124
|
-
#
|
124
|
+
# Set parameter.
|
125
125
|
if type(show_to) == list:
|
126
126
|
show_to = ','.join(show_to)
|
127
127
|
if type(show_cc) == list:
|
@@ -208,7 +208,7 @@ class Email(Base):
|
|
208
208
|
- `list[str]`: Email addresses list.
|
209
209
|
"""
|
210
210
|
|
211
|
-
#
|
211
|
+
# Set parameter.
|
212
212
|
|
213
213
|
## To.
|
214
214
|
if type(to) == str:
|
reykit/rimage.py
CHANGED
@@ -87,7 +87,7 @@ def decode_qrcode(image: str | bytes) -> list[str]:
|
|
87
87
|
if isinstance(pyzbar_decode, BaseException):
|
88
88
|
raise pyzbar_decode
|
89
89
|
|
90
|
-
#
|
90
|
+
# Set parameter.
|
91
91
|
if type(image) in (bytes, bytearray):
|
92
92
|
image = BytesIO(image)
|
93
93
|
|
@@ -137,7 +137,7 @@ def compress_image(
|
|
137
137
|
Compressed image bytes data.
|
138
138
|
"""
|
139
139
|
|
140
|
-
#
|
140
|
+
# Set parameter.
|
141
141
|
if type(input_image) == str:
|
142
142
|
file = File(input_image)
|
143
143
|
input_image = file.str
|
@@ -234,7 +234,7 @@ def generate_captcha_image(
|
|
234
234
|
Captcha image bytes data.
|
235
235
|
"""
|
236
236
|
|
237
|
-
#
|
237
|
+
# Set parameter.
|
238
238
|
text = text or 5
|
239
239
|
if type(text) == int:
|
240
240
|
text = randchar(text, False)
|
reykit/rlog.py
CHANGED
@@ -114,7 +114,7 @@ class Log(Base):
|
|
114
114
|
Stack parameters.
|
115
115
|
"""
|
116
116
|
|
117
|
-
#
|
117
|
+
# Set parameter.
|
118
118
|
stack_params = get_stack_param('full', 12)
|
119
119
|
stack_param = stack_params[-1]
|
120
120
|
|
@@ -419,7 +419,7 @@ class Log(Base):
|
|
419
419
|
Handler.
|
420
420
|
"""
|
421
421
|
|
422
|
-
#
|
422
|
+
# Set parameter.
|
423
423
|
format_ = get_first_notnone(format_, self.default_format)
|
424
424
|
filter_ = filter_ or self.get_default_filter_method(format_, 'print')
|
425
425
|
|
@@ -498,7 +498,7 @@ class Log(Base):
|
|
498
498
|
Handler.
|
499
499
|
"""
|
500
500
|
|
501
|
-
#
|
501
|
+
# Set parameter.
|
502
502
|
format_ = get_first_notnone(format_, self.default_format)
|
503
503
|
path = path or self.name
|
504
504
|
filter_ = filter_ or self.get_default_filter_method(format_, 'file')
|
@@ -766,7 +766,7 @@ class Log(Base):
|
|
766
766
|
params : Record Format parameters.
|
767
767
|
"""
|
768
768
|
|
769
|
-
#
|
769
|
+
# Set parameter.
|
770
770
|
if (
|
771
771
|
level is None
|
772
772
|
or catch
|
@@ -968,7 +968,7 @@ class Mark(Base):
|
|
968
968
|
Object memory ID.
|
969
969
|
"""
|
970
970
|
|
971
|
-
#
|
971
|
+
# Set parameter.
|
972
972
|
obj_id = hash(obj)
|
973
973
|
group_set = self.data.setdefault(group, set())
|
974
974
|
|
@@ -992,7 +992,7 @@ class Mark(Base):
|
|
992
992
|
Judgment result.
|
993
993
|
"""
|
994
994
|
|
995
|
-
#
|
995
|
+
# Set parameter.
|
996
996
|
obj_id = hash(obj)
|
997
997
|
group_set = self.data.setdefault(group, set())
|
998
998
|
|
@@ -1031,7 +1031,7 @@ class Mark(Base):
|
|
1031
1031
|
Judgment result.
|
1032
1032
|
"""
|
1033
1033
|
|
1034
|
-
#
|
1034
|
+
# Set parameter.
|
1035
1035
|
obj_id = hash(obj)
|
1036
1036
|
group_set = self.data.setdefault(group, set())
|
1037
1037
|
|
reykit/rmonkey.py
CHANGED
reykit/rnet.py
CHANGED
@@ -300,7 +300,7 @@ def request(
|
|
300
300
|
Response object of requests package.
|
301
301
|
"""
|
302
302
|
|
303
|
-
#
|
303
|
+
# Set parameter.
|
304
304
|
if method is None:
|
305
305
|
if data is None and json is None and files is None:
|
306
306
|
method = 'get'
|
@@ -389,7 +389,7 @@ def get_response_file_name(response: Response, default_name: str | None = None)
|
|
389
389
|
File name.
|
390
390
|
"""
|
391
391
|
|
392
|
-
#
|
392
|
+
# Set parameter.
|
393
393
|
content = response.content
|
394
394
|
|
395
395
|
# Get.
|
@@ -470,7 +470,7 @@ def compute_stream_time(
|
|
470
470
|
File send seconds.
|
471
471
|
"""
|
472
472
|
|
473
|
-
#
|
473
|
+
# Set parameter.
|
474
474
|
match source:
|
475
475
|
case str():
|
476
476
|
file = File(source)
|
@@ -503,7 +503,7 @@ def listen_socket(
|
|
503
503
|
handler : Handler function.
|
504
504
|
"""
|
505
505
|
|
506
|
-
#
|
506
|
+
# Set parameter.
|
507
507
|
port = int(port)
|
508
508
|
rece_size = 1024 * 1024 * 1024
|
509
509
|
|
reykit/rnum.py
CHANGED
reykit/ros.py
CHANGED
@@ -91,7 +91,7 @@ def format_path(path: str | None = None) -> str:
|
|
91
91
|
Formatted path.
|
92
92
|
"""
|
93
93
|
|
94
|
-
#
|
94
|
+
# Set parameter.
|
95
95
|
path = path or ''
|
96
96
|
|
97
97
|
# Format.
|
@@ -137,7 +137,7 @@ def get_md5(data: str | bytes) -> str:
|
|
137
137
|
MD5 value.
|
138
138
|
"""
|
139
139
|
|
140
|
-
#
|
140
|
+
# Set parameter.
|
141
141
|
if type(data) == str:
|
142
142
|
data = data.encode()
|
143
143
|
|
@@ -188,7 +188,7 @@ def find_relpath(abspath: str, relpath: str) -> str:
|
|
188
188
|
C:/Folder1/Folder4/File.txt
|
189
189
|
"""
|
190
190
|
|
191
|
-
#
|
191
|
+
# Set parameter.
|
192
192
|
level = 0
|
193
193
|
for char in relpath:
|
194
194
|
if char == '.':
|
@@ -371,7 +371,7 @@ class File(Base):
|
|
371
371
|
IO object.
|
372
372
|
"""
|
373
373
|
|
374
|
-
#
|
374
|
+
# Set parameter.
|
375
375
|
if 'b' in mode:
|
376
376
|
encode = None
|
377
377
|
|
@@ -430,7 +430,7 @@ class File(Base):
|
|
430
430
|
File data.
|
431
431
|
"""
|
432
432
|
|
433
|
-
#
|
433
|
+
# Set parameter.
|
434
434
|
match type_:
|
435
435
|
case 'bytes':
|
436
436
|
mode = 'rb'
|
@@ -461,7 +461,7 @@ class File(Base):
|
|
461
461
|
append : Whether append data, otherwise overwrite data.
|
462
462
|
"""
|
463
463
|
|
464
|
-
#
|
464
|
+
# Set parameter.
|
465
465
|
|
466
466
|
## Write mode.
|
467
467
|
if append:
|
@@ -528,7 +528,7 @@ class File(Base):
|
|
528
528
|
New file path.
|
529
529
|
"""
|
530
530
|
|
531
|
-
#
|
531
|
+
# Set parameter.
|
532
532
|
move_path = join_path(self.dir, name)
|
533
533
|
|
534
534
|
# Move.
|
@@ -836,7 +836,7 @@ class File(Base):
|
|
836
836
|
Judge result.
|
837
837
|
"""
|
838
838
|
|
839
|
-
#
|
839
|
+
# Set parameter.
|
840
840
|
match value:
|
841
841
|
case str():
|
842
842
|
content = self.str
|
@@ -1085,7 +1085,7 @@ class Folder(Base):
|
|
1085
1085
|
New folder path.
|
1086
1086
|
"""
|
1087
1087
|
|
1088
|
-
#
|
1088
|
+
# Set parameter.
|
1089
1089
|
move_path = join_path(self.dir, name)
|
1090
1090
|
|
1091
1091
|
# Move.
|
@@ -1287,7 +1287,7 @@ class TempFile(Base):
|
|
1287
1287
|
type\\_ : File data type.
|
1288
1288
|
"""
|
1289
1289
|
|
1290
|
-
#
|
1290
|
+
# Set parameter.
|
1291
1291
|
match type_:
|
1292
1292
|
case 'bytes':
|
1293
1293
|
mode = 'w+b'
|
@@ -1541,7 +1541,7 @@ class TempFile(Base):
|
|
1541
1541
|
Judge result.
|
1542
1542
|
"""
|
1543
1543
|
|
1544
|
-
#
|
1544
|
+
# Set parameter.
|
1545
1545
|
content = self.read()
|
1546
1546
|
|
1547
1547
|
# Judge.
|
@@ -1953,7 +1953,7 @@ class FileStore(Base):
|
|
1953
1953
|
if self.folder:
|
1954
1954
|
return
|
1955
1955
|
|
1956
|
-
#
|
1956
|
+
# Set parameter.
|
1957
1957
|
chars = '0123456789abcdef'
|
1958
1958
|
subdir_names = [
|
1959
1959
|
char1 + char2
|
@@ -1995,7 +1995,7 @@ class FileStore(Base):
|
|
1995
1995
|
File path or not exist.
|
1996
1996
|
"""
|
1997
1997
|
|
1998
|
-
#
|
1998
|
+
# Set parameter.
|
1999
1999
|
name = name or md5
|
2000
2000
|
|
2001
2001
|
# Not exist md5.
|
@@ -2037,7 +2037,7 @@ class FileStore(Base):
|
|
2037
2037
|
Store file path.
|
2038
2038
|
"""
|
2039
2039
|
|
2040
|
-
#
|
2040
|
+
# Set parameter.
|
2041
2041
|
file_bytes = read_file_bytes(source)
|
2042
2042
|
file_md5 = get_md5(file_bytes)
|
2043
2043
|
name = name or file_md5
|
@@ -2123,7 +2123,7 @@ def doc_to_docx(path: str, save_path: str | None = None) -> str:
|
|
2123
2123
|
# Import.
|
2124
2124
|
from win32com.client import Dispatch, CDispatch
|
2125
2125
|
|
2126
|
-
#
|
2126
|
+
# Set parameter.
|
2127
2127
|
if save_path is None:
|
2128
2128
|
pattern = '.[dD][oO][cC]'
|
2129
2129
|
save_path = sub(
|
@@ -2245,7 +2245,7 @@ def extract_file_content(path: str) -> str:
|
|
2245
2245
|
Content.
|
2246
2246
|
"""
|
2247
2247
|
|
2248
|
-
#
|
2248
|
+
# Set parameter.
|
2249
2249
|
_, suffix = os_splitext(path)
|
2250
2250
|
suffix = suffix.lower()
|
2251
2251
|
if suffix == '.doc':
|
reykit/rrand.py
CHANGED
@@ -159,7 +159,7 @@ def randn(*thresholds: float, precision: int | None = None) -> int | float:
|
|
159
159
|
- When parameters `precision` is greater than 0, then return float.
|
160
160
|
"""
|
161
161
|
|
162
|
-
#
|
162
|
+
# Set parameter.
|
163
163
|
thresholds_len = len(thresholds)
|
164
164
|
match thresholds_len:
|
165
165
|
case 0:
|
@@ -329,7 +329,7 @@ def randchar(
|
|
329
329
|
Random characters.
|
330
330
|
"""
|
331
331
|
|
332
|
-
#
|
332
|
+
# Set parameter.
|
333
333
|
char_range = string_digits + string_ascii_letters
|
334
334
|
if punctuation:
|
335
335
|
char_range += string_punctuation
|
reykit/rre.py
CHANGED
@@ -115,7 +115,7 @@ def sub(
|
|
115
115
|
Replaced result.
|
116
116
|
"""
|
117
117
|
|
118
|
-
#
|
118
|
+
# Set parameter.
|
119
119
|
replace = replace or ''
|
120
120
|
count = count or 0
|
121
121
|
|
@@ -144,7 +144,7 @@ def split(
|
|
144
144
|
Split result.
|
145
145
|
"""
|
146
146
|
|
147
|
-
#
|
147
|
+
# Set parameter.
|
148
148
|
count = count or 0
|
149
149
|
|
150
150
|
# Replace.
|
reykit/rschedule.py
CHANGED
@@ -16,7 +16,8 @@ from apscheduler.executors.pool import ThreadPoolExecutor
|
|
16
16
|
from apscheduler.schedulers.background import BackgroundScheduler
|
17
17
|
from apscheduler.schedulers.blocking import BlockingScheduler
|
18
18
|
from apscheduler.job import Job
|
19
|
-
from reydb
|
19
|
+
from reydb import rorm
|
20
|
+
from reydb.rdb import Database, DatabaseAsync
|
20
21
|
|
21
22
|
from .rbase import Base, throw
|
22
23
|
|
@@ -30,8 +31,17 @@ class Schedule(Base):
|
|
30
31
|
"""
|
31
32
|
Schedule type.
|
32
33
|
Can create database used `self.build_db` method.
|
34
|
+
|
35
|
+
Attributes
|
36
|
+
----------
|
37
|
+
db_names : Database table name mapping dictionary.
|
33
38
|
"""
|
34
39
|
|
40
|
+
db_names = {
|
41
|
+
'schedule': 'schedule',
|
42
|
+
'stats_schedule': 'stats_schedule'
|
43
|
+
}
|
44
|
+
|
35
45
|
|
36
46
|
def __init__(
|
37
47
|
self,
|
@@ -39,7 +49,7 @@ class Schedule(Base):
|
|
39
49
|
max_instances: int = 1,
|
40
50
|
coalesce: bool = True,
|
41
51
|
block: bool = False,
|
42
|
-
|
52
|
+
db: Database | DatabaseAsync | None = None
|
43
53
|
) -> None:
|
44
54
|
"""
|
45
55
|
Build instance attributes.
|
@@ -50,7 +60,7 @@ class Schedule(Base):
|
|
50
60
|
max_instances : Maximum number of synchronized executions of tasks with the same ID.
|
51
61
|
coalesce : Whether to coalesce tasks with the same ID.
|
52
62
|
block : Whether to block.
|
53
|
-
|
63
|
+
db : Database instance.
|
54
64
|
- `None`: Not use database.
|
55
65
|
- `Database`: Automatic record to database.
|
56
66
|
"""
|
@@ -80,14 +90,7 @@ class Schedule(Base):
|
|
80
90
|
self.scheduler.start()
|
81
91
|
|
82
92
|
## Database.
|
83
|
-
self.
|
84
|
-
|
85
|
-
### Database path name.
|
86
|
-
self.db_names = {
|
87
|
-
'base': 'base',
|
88
|
-
'base.schedule': 'schedule',
|
89
|
-
'base.stats_schedule': 'stats_schedule'
|
90
|
-
}
|
93
|
+
self.db = db
|
91
94
|
|
92
95
|
|
93
96
|
def pause(self) -> None:
|
@@ -150,7 +153,7 @@ class Schedule(Base):
|
|
150
153
|
kwargs : Keyword arguments of function.
|
151
154
|
"""
|
152
155
|
|
153
|
-
#
|
156
|
+
# Set parameter.
|
154
157
|
nonlocal task, note
|
155
158
|
|
156
159
|
# Status executing.
|
@@ -159,10 +162,10 @@ class Schedule(Base):
|
|
159
162
|
'task': task.__name__,
|
160
163
|
'note': note
|
161
164
|
}
|
162
|
-
with self.
|
163
|
-
conn = self.
|
165
|
+
with self.db.connect() as conn:
|
166
|
+
conn = self.db.connect()
|
164
167
|
conn.execute.insert(
|
165
|
-
self.db_names['
|
168
|
+
self.db_names['schedule'],
|
166
169
|
data
|
167
170
|
)
|
168
171
|
id_ = conn.insert_id()
|
@@ -170,7 +173,7 @@ class Schedule(Base):
|
|
170
173
|
# Try execute.
|
171
174
|
|
172
175
|
## Record error.
|
173
|
-
task = self.
|
176
|
+
task = self.db.error.wrap(task, note=note)
|
174
177
|
|
175
178
|
try:
|
176
179
|
task(*args, **kwargs)
|
@@ -181,8 +184,8 @@ class Schedule(Base):
|
|
181
184
|
'id': id_,
|
182
185
|
'status': 2
|
183
186
|
}
|
184
|
-
self.
|
185
|
-
self.db_names['
|
187
|
+
self.db.execute.update(
|
188
|
+
self.db_names['schedule'],
|
186
189
|
data
|
187
190
|
)
|
188
191
|
raise
|
@@ -193,8 +196,8 @@ class Schedule(Base):
|
|
193
196
|
'id': id_,
|
194
197
|
'status': 1
|
195
198
|
}
|
196
|
-
self.
|
197
|
-
self.db_names['
|
199
|
+
self.db.execute.update(
|
200
|
+
self.db_names['schedule'],
|
198
201
|
data
|
199
202
|
)
|
200
203
|
|
@@ -225,7 +228,7 @@ class Schedule(Base):
|
|
225
228
|
Task instance.
|
226
229
|
"""
|
227
230
|
|
228
|
-
#
|
231
|
+
# Set parameter.
|
229
232
|
if plan is None:
|
230
233
|
plan = {}
|
231
234
|
trigger = plan.get('trigger')
|
@@ -238,7 +241,7 @@ class Schedule(Base):
|
|
238
241
|
# Add.
|
239
242
|
|
240
243
|
## Database.
|
241
|
-
if self.
|
244
|
+
if self.db is not None:
|
242
245
|
task = self.wrap_record_db(task, note)
|
243
246
|
|
244
247
|
job = self.scheduler.add_job(
|
@@ -272,7 +275,7 @@ class Schedule(Base):
|
|
272
275
|
note : Task note.
|
273
276
|
"""
|
274
277
|
|
275
|
-
#
|
278
|
+
# Set parameter.
|
276
279
|
if type(task) == Job:
|
277
280
|
task = task.id
|
278
281
|
if plan is None:
|
@@ -319,7 +322,7 @@ class Schedule(Base):
|
|
319
322
|
task : Task instance or ID.
|
320
323
|
"""
|
321
324
|
|
322
|
-
#
|
325
|
+
# Set parameter.
|
323
326
|
if type(task) == Job:
|
324
327
|
id_ = task.id
|
325
328
|
else:
|
@@ -341,7 +344,7 @@ class Schedule(Base):
|
|
341
344
|
task : Task instance or ID.
|
342
345
|
"""
|
343
346
|
|
344
|
-
#
|
347
|
+
# Set parameter.
|
345
348
|
if type(task) == Job:
|
346
349
|
id_ = task.id
|
347
350
|
else:
|
@@ -363,7 +366,7 @@ class Schedule(Base):
|
|
363
366
|
task : Task instance or ID.
|
364
367
|
"""
|
365
368
|
|
366
|
-
#
|
369
|
+
# Set parameter.
|
367
370
|
if type(task) == Job:
|
368
371
|
id_ = task.id
|
369
372
|
else:
|
@@ -379,99 +382,33 @@ class Schedule(Base):
|
|
379
382
|
"""
|
380
383
|
|
381
384
|
# Check.
|
382
|
-
if self.
|
383
|
-
throw(ValueError, self.
|
385
|
+
if self.db is None:
|
386
|
+
throw(ValueError, self.db)
|
384
387
|
|
385
388
|
# Set parameter.
|
386
389
|
|
387
|
-
## Database.
|
388
|
-
databases = [
|
389
|
-
{
|
390
|
-
'name': self.db_names['base']
|
391
|
-
}
|
392
|
-
]
|
393
|
-
|
394
390
|
## Table.
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
'comment': 'Record create time.'
|
406
|
-
},
|
407
|
-
{
|
408
|
-
'name': 'update_time',
|
409
|
-
'type': 'datetime',
|
410
|
-
'constraint': 'DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP',
|
411
|
-
'comment': 'Record update time.'
|
412
|
-
},
|
413
|
-
{
|
414
|
-
'name': 'id',
|
415
|
-
'type': 'int unsigned',
|
416
|
-
'constraint': 'NOT NULL AUTO_INCREMENT',
|
417
|
-
'comment': 'ID.'
|
418
|
-
},
|
419
|
-
{
|
420
|
-
'name': 'status',
|
421
|
-
'type': 'tinyint',
|
422
|
-
'constraint': 'NOT NULL',
|
423
|
-
'comment': 'Schedule status, 0 is executing, 1 is completed, 2 is occurred error.'
|
424
|
-
},
|
425
|
-
{
|
426
|
-
'name': 'task',
|
427
|
-
'type': 'varchar(100)',
|
428
|
-
'constraint': 'NOT NULL',
|
429
|
-
'comment': 'Schedule task function name.'
|
430
|
-
},
|
431
|
-
{
|
432
|
-
'name': 'note',
|
433
|
-
'type': 'varchar(500)',
|
434
|
-
'comment': 'Schedule note.'
|
435
|
-
}
|
436
|
-
],
|
437
|
-
'primary': 'id',
|
438
|
-
'indexes': [
|
439
|
-
{
|
440
|
-
'name': 'n_create_time',
|
441
|
-
'fields': 'create_time',
|
442
|
-
'type': 'noraml',
|
443
|
-
'comment': 'Record create time normal index.'
|
444
|
-
},
|
445
|
-
{
|
446
|
-
'name': 'n_update_time',
|
447
|
-
'fields': 'update_time',
|
448
|
-
'type': 'noraml',
|
449
|
-
'comment': 'Record update time normal index.'
|
450
|
-
},
|
451
|
-
{
|
452
|
-
'name': 'n_task',
|
453
|
-
'fields': 'task',
|
454
|
-
'type': 'noraml',
|
455
|
-
'comment': 'Schedule task function name normal index.'
|
456
|
-
}
|
457
|
-
],
|
458
|
-
'comment': 'Schedule execute record table.'
|
459
|
-
}
|
460
|
-
|
461
|
-
]
|
391
|
+
class Schedule(rorm.Model, table=True):
|
392
|
+
__name__ = self.db_names['schedule']
|
393
|
+
__comment__ = 'Schedule execute record table.'
|
394
|
+
create_time: rorm.Datetime = rorm.Field(field_default='CURRENT_TIMESTAMP', not_null=True, index_n=True, comment='Record create time.')
|
395
|
+
update_time: rorm.Datetime = rorm.Field(field_default='CURRENT_TIMESTAMP', index_n=True, comment='Record update time.')
|
396
|
+
id: int = rorm.Field(field_type=rorm.types_mysql.INTEGER(unsigned=True), key_auto=True, comment='ID.')
|
397
|
+
status: str = rorm.Field(field_type=rorm.types_mysql.TINYINT(unsigned=True), not_null=True, comment='Schedule status, 0 is executing, 1 is completed, 2 is occurred error.')
|
398
|
+
task: str = rorm.Field(field_type=rorm.types.VARCHAR(100), not_null=True, comment='Schedule task function name.')
|
399
|
+
note: str = rorm.Field(field_type=rorm.types.VARCHAR(500), comment='Schedule note.')
|
400
|
+
tables = [Schedule]
|
462
401
|
|
463
402
|
## View stats.
|
464
403
|
views_stats = [
|
465
|
-
|
466
|
-
### 'stats_schedule'.
|
467
404
|
{
|
468
|
-
'path':
|
405
|
+
'path': self.db_names['stats_schedule'],
|
469
406
|
'items': [
|
470
407
|
{
|
471
408
|
'name': 'count',
|
472
409
|
'select': (
|
473
410
|
'SELECT COUNT(1)\n'
|
474
|
-
f'FROM `{self.
|
411
|
+
f'FROM `{self.db.database}`.`{self.db_names['schedule']}`'
|
475
412
|
),
|
476
413
|
'comment': 'Schedule count.'
|
477
414
|
},
|
@@ -479,7 +416,7 @@ class Schedule(Base):
|
|
479
416
|
'name': 'past_day_count',
|
480
417
|
'select': (
|
481
418
|
'SELECT COUNT(1)\n'
|
482
|
-
f'FROM `{self.
|
419
|
+
f'FROM `{self.db.database}`.`{self.db_names['schedule']}`\n'
|
483
420
|
'WHERE TIMESTAMPDIFF(DAY, `create_time`, NOW()) = 0'
|
484
421
|
),
|
485
422
|
'comment': 'Schedule count in the past day.'
|
@@ -488,7 +425,7 @@ class Schedule(Base):
|
|
488
425
|
'name': 'past_week_count',
|
489
426
|
'select': (
|
490
427
|
'SELECT COUNT(1)\n'
|
491
|
-
f'FROM `{self.
|
428
|
+
f'FROM `{self.db.database}`.`{self.db_names['schedule']}`\n'
|
492
429
|
'WHERE TIMESTAMPDIFF(DAY, `create_time`, NOW()) <= 6'
|
493
430
|
),
|
494
431
|
'comment': 'Schedule count in the past week.'
|
@@ -497,7 +434,7 @@ class Schedule(Base):
|
|
497
434
|
'name': 'past_month_count',
|
498
435
|
'select': (
|
499
436
|
'SELECT COUNT(1)\n'
|
500
|
-
f'FROM `{self.
|
437
|
+
f'FROM `{self.db.database}`.`{self.db_names['schedule']}`\n'
|
501
438
|
'WHERE TIMESTAMPDIFF(DAY, `create_time`, NOW()) <= 29'
|
502
439
|
),
|
503
440
|
'comment': 'Schedule count in the past month.'
|
@@ -506,7 +443,7 @@ class Schedule(Base):
|
|
506
443
|
'name': 'task_count',
|
507
444
|
'select': (
|
508
445
|
'SELECT COUNT(DISTINCT `task`)\n'
|
509
|
-
f'FROM `{self.
|
446
|
+
f'FROM `{self.db.database}`.`{self.db_names['schedule']}`'
|
510
447
|
),
|
511
448
|
'comment': 'Task count.'
|
512
449
|
},
|
@@ -514,21 +451,19 @@ class Schedule(Base):
|
|
514
451
|
'name': 'last_time',
|
515
452
|
'select': (
|
516
453
|
'SELECT IFNULL(MAX(`update_time`), MAX(`create_time`))\n'
|
517
|
-
f'FROM `{self.
|
454
|
+
f'FROM `{self.db.database}`.`{self.db_names['schedule']}`'
|
518
455
|
),
|
519
456
|
'comment': 'Schedule last record time.'
|
520
457
|
}
|
521
458
|
]
|
522
|
-
|
523
459
|
}
|
524
|
-
|
525
460
|
]
|
526
461
|
|
527
462
|
# Build.
|
528
|
-
self.
|
463
|
+
self.db.build.build(tables=tables, views_stats=views_stats, skip=True)
|
529
464
|
|
530
465
|
## Error.
|
531
|
-
self.
|
466
|
+
self.db.error.build_db()
|
532
467
|
|
533
468
|
|
534
469
|
__iter__ = tasks
|
reykit/rstdout.py
CHANGED
@@ -76,7 +76,7 @@ def get_terminal_size(
|
|
76
76
|
Column and line display character count.
|
77
77
|
"""
|
78
78
|
|
79
|
-
#
|
79
|
+
# Set parameter.
|
80
80
|
match stream:
|
81
81
|
case 'stdin':
|
82
82
|
stream = 0
|
@@ -130,7 +130,7 @@ def echo(
|
|
130
130
|
# Import.
|
131
131
|
from .rtext import frame_data
|
132
132
|
|
133
|
-
#
|
133
|
+
# Set parameter.
|
134
134
|
if title is None:
|
135
135
|
title: list[str] = get_varname('data')
|
136
136
|
if ConfigStdout.force_print_ascii:
|
@@ -191,7 +191,7 @@ def ask(
|
|
191
191
|
# Import.
|
192
192
|
from .rtext import frame_data
|
193
193
|
|
194
|
-
#
|
194
|
+
# Set parameter.
|
195
195
|
if ConfigStdout.force_print_ascii:
|
196
196
|
border = 'ascii'
|
197
197
|
|
@@ -320,7 +320,7 @@ def add_print_position() -> None:
|
|
320
320
|
Preprocessed text.
|
321
321
|
"""
|
322
322
|
|
323
|
-
#
|
323
|
+
# Set parameter.
|
324
324
|
stack_params = get_stack_param('full', 3)
|
325
325
|
stack_floor = stack_params[-1]
|
326
326
|
|
reykit/rsys.py
CHANGED
@@ -256,7 +256,7 @@ def get_cmd_var(*vars: Any) -> list[Any]:
|
|
256
256
|
10 [20, 21] 3
|
257
257
|
"""
|
258
258
|
|
259
|
-
#
|
259
|
+
# Set parameter.
|
260
260
|
vars_name: list[str] = get_varname('vars')
|
261
261
|
vars_info = tuple(zip(vars_name, vars))
|
262
262
|
|
@@ -524,7 +524,7 @@ def search_process(
|
|
524
524
|
List of process instances that match any condition.
|
525
525
|
"""
|
526
526
|
|
527
|
-
#
|
527
|
+
# Set parameter.
|
528
528
|
match id_:
|
529
529
|
case None:
|
530
530
|
ids = []
|
@@ -610,7 +610,7 @@ def kill_process(
|
|
610
610
|
List of process instances that match any condition.
|
611
611
|
"""
|
612
612
|
|
613
|
-
#
|
613
|
+
# Set parameter.
|
614
614
|
self_pid = os_getpid()
|
615
615
|
|
616
616
|
# Search.
|
@@ -648,7 +648,7 @@ def pause_process(
|
|
648
648
|
List of process instances that match any condition.
|
649
649
|
"""
|
650
650
|
|
651
|
-
#
|
651
|
+
# Set parameter.
|
652
652
|
self_pid = os_getpid()
|
653
653
|
|
654
654
|
# Search.
|
@@ -710,7 +710,7 @@ def get_idle_port(min: int = 49152) -> int:
|
|
710
710
|
Idle port number.
|
711
711
|
"""
|
712
712
|
|
713
|
-
#
|
713
|
+
# Set parameter.
|
714
714
|
network_table = get_network_table()
|
715
715
|
ports = [
|
716
716
|
info['local_port']
|
reykit/rtable.py
CHANGED
@@ -189,7 +189,7 @@ class Table(Base):
|
|
189
189
|
Dictionary.
|
190
190
|
"""
|
191
191
|
|
192
|
-
#
|
192
|
+
# Set parameter.
|
193
193
|
data = self.to_table()
|
194
194
|
|
195
195
|
# Check.
|
@@ -241,7 +241,7 @@ class Table(Base):
|
|
241
241
|
List.
|
242
242
|
"""
|
243
243
|
|
244
|
-
#
|
244
|
+
# Set parameter.
|
245
245
|
data = self.to_table()
|
246
246
|
|
247
247
|
# Check.
|
@@ -276,7 +276,7 @@ class Table(Base):
|
|
276
276
|
Formatted text.
|
277
277
|
"""
|
278
278
|
|
279
|
-
#
|
279
|
+
# Set parameter.
|
280
280
|
data = self.to_table()
|
281
281
|
|
282
282
|
# Convert.
|
@@ -298,7 +298,7 @@ class Table(Base):
|
|
298
298
|
JSON string.
|
299
299
|
"""
|
300
300
|
|
301
|
-
#
|
301
|
+
# Set parameter.
|
302
302
|
data = self.to_table()
|
303
303
|
|
304
304
|
# Convert.
|
@@ -316,7 +316,7 @@ class Table(Base):
|
|
316
316
|
SQL string.
|
317
317
|
"""
|
318
318
|
|
319
|
-
#
|
319
|
+
# Set parameter.
|
320
320
|
data = self.to_table()
|
321
321
|
data = [
|
322
322
|
{
|
@@ -364,7 +364,7 @@ class Table(Base):
|
|
364
364
|
if type(self.data) == DataFrame:
|
365
365
|
return self.data
|
366
366
|
|
367
|
-
#
|
367
|
+
# Set parameter.
|
368
368
|
data = self.to_table()
|
369
369
|
|
370
370
|
# Convert.
|
@@ -382,7 +382,7 @@ class Table(Base):
|
|
382
382
|
HTML string.
|
383
383
|
"""
|
384
384
|
|
385
|
-
#
|
385
|
+
# Set parameter.
|
386
386
|
data = self.to_df()
|
387
387
|
|
388
388
|
# Convert.
|
@@ -405,7 +405,7 @@ class Table(Base):
|
|
405
405
|
File absolute path.
|
406
406
|
"""
|
407
407
|
|
408
|
-
#
|
408
|
+
# Set parameter.
|
409
409
|
data = self.to_df()
|
410
410
|
file = File(path)
|
411
411
|
if file:
|
@@ -457,7 +457,7 @@ class Table(Base):
|
|
457
457
|
>>> to_excel(data, 'file.xlsx', 'group', sheets_set)
|
458
458
|
"""
|
459
459
|
|
460
|
-
#
|
460
|
+
# Set parameter.
|
461
461
|
data = self.to_df()
|
462
462
|
path = os_abspath(path)
|
463
463
|
|
reykit/rtask.py
CHANGED
@@ -361,7 +361,7 @@ def async_run(
|
|
361
361
|
run results.
|
362
362
|
"""
|
363
363
|
|
364
|
-
#
|
364
|
+
# Set parameter.
|
365
365
|
coroutines = [
|
366
366
|
coroutine()
|
367
367
|
if asyncio_iscoroutinefunction(coroutine)
|
@@ -449,7 +449,7 @@ async def async_sleep(*thresholds: float, precision: int | None = None) -> float
|
|
449
449
|
- When parameters `precision` is `greater than 0`, then return float.
|
450
450
|
"""
|
451
451
|
|
452
|
-
#
|
452
|
+
# Set parameter.
|
453
453
|
if len(thresholds) == 1:
|
454
454
|
second = thresholds[0]
|
455
455
|
else:
|
@@ -683,7 +683,7 @@ async def async_request(
|
|
683
683
|
# Check.
|
684
684
|
check_most_one(data, json)
|
685
685
|
|
686
|
-
#
|
686
|
+
# Set parameter.
|
687
687
|
if method is None:
|
688
688
|
if data is None and json is None:
|
689
689
|
method = 'get'
|
reykit/rtext.py
CHANGED
@@ -50,7 +50,7 @@ def to_text(data: Any, width: int | None = None) -> str:
|
|
50
50
|
Formatted text.
|
51
51
|
"""
|
52
52
|
|
53
|
-
#
|
53
|
+
# Set parameter.
|
54
54
|
if width is None:
|
55
55
|
width, _ = get_terminal_size()
|
56
56
|
|
@@ -291,7 +291,7 @@ def frame_text(
|
|
291
291
|
Added frame text.
|
292
292
|
"""
|
293
293
|
|
294
|
-
#
|
294
|
+
# Set parameter.
|
295
295
|
if width is None:
|
296
296
|
width, _ = get_terminal_size()
|
297
297
|
line_chars_dict = {
|
reykit/rtime.py
CHANGED
@@ -237,7 +237,7 @@ def text_to_time(
|
|
237
237
|
Object or null.
|
238
238
|
"""
|
239
239
|
|
240
|
-
#
|
240
|
+
# Set parameter.
|
241
241
|
time_obj = None
|
242
242
|
str_len = len(string)
|
243
243
|
|
@@ -420,7 +420,7 @@ def sleep(
|
|
420
420
|
- When parameters `precision` is `greater than 0`, then return float.
|
421
421
|
"""
|
422
422
|
|
423
|
-
#
|
423
|
+
# Set parameter.
|
424
424
|
if len(thresholds) == 1:
|
425
425
|
second = thresholds[0]
|
426
426
|
else:
|
@@ -579,7 +579,7 @@ class TimeMark(Base):
|
|
579
579
|
# Import.
|
580
580
|
from pandas import DataFrame
|
581
581
|
|
582
|
-
#
|
582
|
+
# Set parameter.
|
583
583
|
record_len = len(self.records)
|
584
584
|
data = [
|
585
585
|
info.copy()
|
@@ -647,7 +647,7 @@ class TimeMark(Base):
|
|
647
647
|
if len(self.records) <= 1:
|
648
648
|
return 0.0
|
649
649
|
|
650
|
-
#
|
650
|
+
# Set parameter.
|
651
651
|
first_timestamp = self.records[0]['timestamp']
|
652
652
|
max_index = max(self.records)
|
653
653
|
last_timestamp = self.records[max_index]['timestamp']
|
reykit/rwrap.py
CHANGED
@@ -254,7 +254,7 @@ def wrap_thread(
|
|
254
254
|
Thread instance.
|
255
255
|
"""
|
256
256
|
|
257
|
-
#
|
257
|
+
# Set parameter.
|
258
258
|
thread_name = '%s_%d' % (func.__name__, now('timestamp'))
|
259
259
|
|
260
260
|
# Create thread.
|
@@ -411,7 +411,7 @@ def wrap_dos_command(
|
|
411
411
|
Function return.
|
412
412
|
"""
|
413
413
|
|
414
|
-
#
|
414
|
+
# Set parameter.
|
415
415
|
arg_info = get_arg_info(func)
|
416
416
|
|
417
417
|
# Set DOS command.
|
@@ -606,7 +606,7 @@ def wrap_redirect_stdout(
|
|
606
606
|
Function return.
|
607
607
|
"""
|
608
608
|
|
609
|
-
#
|
609
|
+
# Set parameter.
|
610
610
|
if isinstance(redirect, IOBase):
|
611
611
|
str_io = redirect
|
612
612
|
else:
|
reykit/rzip.py
CHANGED
@@ -40,7 +40,7 @@ def compress(
|
|
40
40
|
overwrite : Whether to overwrite.
|
41
41
|
"""
|
42
42
|
|
43
|
-
#
|
43
|
+
# Set parameter.
|
44
44
|
build_dir = Folder(build_dir).path
|
45
45
|
if overwrite:
|
46
46
|
mode = 'w'
|
@@ -102,7 +102,7 @@ def decompress(
|
|
102
102
|
if not is_support:
|
103
103
|
raise AssertionError('file format that cannot be decompressed')
|
104
104
|
|
105
|
-
#
|
105
|
+
# Set parameter.
|
106
106
|
build_dir = build_dir or os_getcwd()
|
107
107
|
|
108
108
|
# Decompress.
|
@@ -0,0 +1,28 @@
|
|
1
|
+
reykit/__init__.py,sha256=V86CHqPAAVkooVx3_QIOKpDIFVneQCTTSwfJ-uWgBno,788
|
2
|
+
reykit/rall.py,sha256=7Hip02YOkIDm3_xkoSDjvvYV2LhdBV2r4UKzWWnIfIo,628
|
3
|
+
reykit/rbase.py,sha256=qGfR24p__cMth8Xs9mdzQNXPq9-SBWcXf5xan2rU5b4,21776
|
4
|
+
reykit/rdata.py,sha256=ktNSXzWRO_iYiIL-Ro2K6p0ACbmZeu-y1BEEJHxc1Bg,11346
|
5
|
+
reykit/remail.py,sha256=5ImoIRX0pHG_c1kEoMPJdeEaqakgMVIXeWBl9Db5ul4,6714
|
6
|
+
reykit/rimage.py,sha256=3fMGbDwTdbmnlsz1Q33zCw-ht-xOUpj8NXYl6CzvYq0,6145
|
7
|
+
reykit/rlog.py,sha256=lg2EpsTuEp3-CgrIcFMJIoW7kX7JsIAjyJwHxeMdhhE,25747
|
8
|
+
reykit/rmonkey.py,sha256=KBxUyiBlCu7RdVDL0mCuxLqycOItU3KeU6ZWXrKdvxc,7860
|
9
|
+
reykit/rnet.py,sha256=jkFnXKyjgILK2A9CtBZwjOeuABdGwejFtwPV_YK1jNc,16862
|
10
|
+
reykit/rnum.py,sha256=jEhPQatAAaIV6kPx2tVtfjuK0F09UCWU6BjfPRamqBE,3620
|
11
|
+
reykit/ros.py,sha256=n9aqChdRQQFozOn_jXQns_UrKoEstCNRzFTgOBel4wM,47787
|
12
|
+
reykit/rrand.py,sha256=kh9yWOW8zaj8bUU0H0RL_GiOs2K8JDviVzKSoPLEuls,8566
|
13
|
+
reykit/rre.py,sha256=uqqved1_SWrJOQK-o5WYRoJf3JH0YpEktnxwA0x7TPU,6018
|
14
|
+
reykit/rschedule.py,sha256=qYNmD0lGEysvQtIa6RBRi1xAG1Yv4ry0Hd8E4StYxho,12590
|
15
|
+
reykit/rstdout.py,sha256=bLN_kXsWpgTrCrBJNgaEE27DUk-ojsBV-9YJtWH41b4,8188
|
16
|
+
reykit/rsys.py,sha256=PEXUU_jyglEgIyN-URtnpUcrqKF5PFeAVAljEmaSqOs,24931
|
17
|
+
reykit/rtable.py,sha256=ItsycFuN-gb3gYhHuMx_nbAluGc8tAIMOyD5DHPS-lU,12173
|
18
|
+
reykit/rtask.py,sha256=C-VySd7Gk_qtP7FigLckYUhDKsuWPVeGtoRlkdnpyDw,27099
|
19
|
+
reykit/rtext.py,sha256=3wbnsvNX-ibPt7QCpv-CYDUgaFq48eZjCix8jcFPj_M,13248
|
20
|
+
reykit/rtime.py,sha256=8GL2uycThxB-dODuD3D35v2RbSFO-LgTdl6U-ZhuSZc,17795
|
21
|
+
reykit/rwrap.py,sha256=8MqbOjq56DbDKuTix75wYGXcAykzLiAPKrgl13Gk4xQ,15086
|
22
|
+
reykit/rzip.py,sha256=u-yyEFXY5iOysgzzqEbaaDTFfoHBj0L2sv5m4AQLt1c,3450
|
23
|
+
reykit/rdll/__init__.py,sha256=TEVZjiW9Y1_VxbZgIygcwmRp5xFHM2wLgwZccZ6gjng,698
|
24
|
+
reykit/rdll/rdll_core.py,sha256=o6-rKcTQgxZQe0kD3GnwyNb3KL9IogzgCQNOmYLMm7A,5086
|
25
|
+
reykit-1.1.90.dist-info/METADATA,sha256=4OArpOMbswgG_c51TvPq5X0iws7jVFrdGC3SWp8P9Po,1872
|
26
|
+
reykit-1.1.90.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
27
|
+
reykit-1.1.90.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
28
|
+
reykit-1.1.90.dist-info/RECORD,,
|
reykit-1.1.89.dist-info/RECORD
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
reykit/__init__.py,sha256=V86CHqPAAVkooVx3_QIOKpDIFVneQCTTSwfJ-uWgBno,788
|
2
|
-
reykit/rall.py,sha256=7Hip02YOkIDm3_xkoSDjvvYV2LhdBV2r4UKzWWnIfIo,628
|
3
|
-
reykit/rbase.py,sha256=gT4dcdReki6HTDwCOAieqL3wi7lKUj7OfgiTXWTx_jo,21785
|
4
|
-
reykit/rdata.py,sha256=iOU2_9RCihxrdXswZKvonVMIM-X5-L89WhawGDLHt4w,11361
|
5
|
-
reykit/remail.py,sha256=l4HGKXdfHNBxyBT3YxeZyQhfecbElqTqSAGInwWhap8,6723
|
6
|
-
reykit/rimage.py,sha256=lNN2iMpvSMqh-nPTpxrA9yHy43EA5WoYdxKYhqPwMgk,6154
|
7
|
-
reykit/rlog.py,sha256=M4UgS2gxYJOWv66ItyOv7AUJHJc1CsSDVYr9J0y2MwU,25768
|
8
|
-
reykit/rmonkey.py,sha256=MJ_levUBl_oqkx8UoWbNwrRBGPWGwpfAh0B25tESFUk,7863
|
9
|
-
reykit/rnet.py,sha256=McW4fX-omkD4_2BpLISHt2hpwIxK7EfDA5c6j3gn3E4,16874
|
10
|
-
reykit/rnum.py,sha256=VKICD64mEfiStAGWaxg3kzQjf7TTqiSBNe9LCpM9MLo,3623
|
11
|
-
reykit/ros.py,sha256=5vSoxi02GUBltaDcXXg3hP7IF-l-kX45cI9XPE-EM3o,47835
|
12
|
-
reykit/rrand.py,sha256=fiwxyUMaLtFjPanVwTOiwvEEucmf0t2WiZF9ul9o6pU,8572
|
13
|
-
reykit/rre.py,sha256=1qva7xatKVE9qC2j7IujjXSM59qxHWwTYpiizFFQ8Xo,6024
|
14
|
-
reykit/rschedule.py,sha256=y4piG8DT3TpE9jVI18UWvk-caXT7S409_vxetYOJ-jw,14603
|
15
|
-
reykit/rstdout.py,sha256=yesWo7wIGablpyAu-2J2Gw11Qp3GdQjGICTyIcvLyt4,8200
|
16
|
-
reykit/rsys.py,sha256=AP62KyN40flCeQJBclfJq8shachSAFT0LkVjiKsXkrw,24946
|
17
|
-
reykit/rtable.py,sha256=UQ-JlwjssMR3gY1iY-VGQEKQ5_BZabpJy6TL7Fx19c4,12200
|
18
|
-
reykit/rtask.py,sha256=xPeVQGzRygk062U1vyq2bglgDwxJf51gEJbxgbcGgh8,27108
|
19
|
-
reykit/rtext.py,sha256=cWHy19lDcJvpX7LU95kmRVsDimpAUaz5TbKC1h83gB4,13254
|
20
|
-
reykit/rtime.py,sha256=lsSKaYFmYXlDN18yj2fLVTKSruzgygl8icW6_Fl42Xk,17807
|
21
|
-
reykit/rwrap.py,sha256=G4TL2GWUaW9DrCFRcsnDE1CwgdWeP2PnjQckheRx4p0,15095
|
22
|
-
reykit/rzip.py,sha256=BGEONswuBZxQ-zcgd_xp2fcvYesC9AmKaaXWvnT3bTI,3456
|
23
|
-
reykit/rdll/__init__.py,sha256=nLSb8onBm2ilyoxzpDzUeGfSCKwkLEesIhzK3LiJ8mk,701
|
24
|
-
reykit/rdll/rdll_core.py,sha256=o6-rKcTQgxZQe0kD3GnwyNb3KL9IogzgCQNOmYLMm7A,5086
|
25
|
-
reykit-1.1.89.dist-info/METADATA,sha256=KGX9G_K8iir6I2XF7t1WPFw_lU10zJw3FDLe6XN6IdM,1872
|
26
|
-
reykit-1.1.89.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
27
|
-
reykit-1.1.89.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
28
|
-
reykit-1.1.89.dist-info/RECORD,,
|
File without changes
|
File without changes
|