reykit 1.1.0__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/rtable.py CHANGED
@@ -9,7 +9,7 @@
9
9
  """
10
10
 
11
11
 
12
- from typing import Any, TypedDict, Optional, Union, overload
12
+ from typing import Any, TypedDict, overload
13
13
  from collections.abc import Iterable
14
14
  from os.path import abspath as os_abspath
15
15
  from pandas import DataFrame, ExcelWriter, isnull
@@ -34,13 +34,13 @@ __all__ = (
34
34
  )
35
35
 
36
36
 
37
- type Table = Union[list[dict], dict, CursorResult, DataFrame]
38
- SheetSet = TypedDict('SheetsSet', {'name': str, 'index': int, 'fields': Union[str, list[str]]})
37
+ type Table = list[dict] | dict | CursorResult | DataFrame
38
+ SheetSet = TypedDict('SheetsSet', {'name': str, 'index': int, 'fields': str | list[str]})
39
39
 
40
40
 
41
41
  def to_table(
42
- data: Union[Table, Iterable[Iterable]],
43
- fields: Optional[Iterable] = None
42
+ data: Table | Iterable[Iterable],
43
+ fields: Iterable | None = None
44
44
  ) -> list[dict]:
45
45
  """
46
46
  Convert data to table in `list[dict]` format, keys and keys sort of the dictionary are the same.
@@ -95,23 +95,23 @@ def to_table(
95
95
 
96
96
  @overload
97
97
  def to_dict(
98
- data: Union[Table, Iterable[Iterable]],
99
- key_field: Union[int, str] = 0,
98
+ data: Table | Iterable[Iterable],
99
+ key_field: int | str = 0,
100
100
  val_field: None = None
101
101
  ) -> dict[Any, dict]: ...
102
102
 
103
103
  @overload
104
104
  def to_dict(
105
- data: Union[Table, Iterable[Iterable]],
106
- key_field: Union[int, str] = 0,
107
- val_field: Union[int, str] = None
105
+ data: Table | Iterable[Iterable],
106
+ key_field: int | str = 0,
107
+ val_field: int | str = None
108
108
  ) -> dict: ...
109
109
 
110
110
  def to_dict(
111
- data: Union[Table, Iterable[Iterable]],
112
- key_field: Union[int, str] = 0,
113
- val_field: Optional[Union[int, str]] = None
114
- ) -> Union[dict[Any, dict], dict]:
111
+ data: Table | Iterable[Iterable],
112
+ key_field: int | str = 0,
113
+ val_field: int | str | None = None
114
+ ) -> dict[Any, dict] | dict:
115
115
  """
116
116
  Convert data as dictionary.
117
117
 
@@ -169,8 +169,8 @@ def to_dict(
169
169
 
170
170
 
171
171
  def to_list(
172
- data: Union[Table, Iterable[Iterable]],
173
- field: Union[int, str] = 0,
172
+ data: Table | Iterable[Iterable],
173
+ field: int | str = 0,
174
174
  ) -> list:
175
175
  """
176
176
  Convert data as list.
@@ -209,8 +209,8 @@ def to_list(
209
209
 
210
210
 
211
211
  def to_df(
212
- data: Union[Table, Iterable[Iterable]],
213
- fields: Optional[Iterable] = None
212
+ data: Table | Iterable[Iterable],
213
+ fields: Iterable | None = None
214
214
  ) -> DataFrame:
215
215
  """
216
216
  Convert data to table of `DataFrame` object.
@@ -253,8 +253,8 @@ def to_df(
253
253
 
254
254
 
255
255
  def to_json(
256
- data: Union[Table, Iterable[Iterable]],
257
- fields: Optional[Iterable] = None,
256
+ data: Table | Iterable[Iterable],
257
+ fields: Iterable | None = None,
258
258
  compact: bool = True
259
259
  ) -> str:
260
260
  """
@@ -283,8 +283,8 @@ def to_json(
283
283
 
284
284
 
285
285
  def to_text(
286
- data: Union[Table, Iterable[Iterable]],
287
- fields: Optional[Iterable] = None,
286
+ data: Table | Iterable[Iterable],
287
+ fields: Iterable | None = None,
288
288
  width: int = 100
289
289
  ) -> str:
290
290
  """
@@ -313,8 +313,8 @@ def to_text(
313
313
 
314
314
 
315
315
  def to_sql(
316
- data: Union[Table, Iterable[Iterable]],
317
- fields: Optional[Iterable] = None
316
+ data: Table | Iterable[Iterable],
317
+ fields: Iterable | None = None
318
318
  ) -> str:
319
319
  """
320
320
  Convert data to SQL string.
@@ -365,8 +365,8 @@ def to_sql(
365
365
 
366
366
 
367
367
  def to_html(
368
- data: Union[Table, Iterable[Iterable]],
369
- fields: Optional[Iterable] = None
368
+ data: Table | Iterable[Iterable],
369
+ fields: Iterable | None = None
370
370
  ) -> str:
371
371
  """
372
372
  Convert data to HTML string.
@@ -393,9 +393,9 @@ def to_html(
393
393
 
394
394
 
395
395
  def to_csv(
396
- data: Union[Table, Iterable[Iterable]],
396
+ data: Table | Iterable[Iterable],
397
397
  path: str = 'data.csv',
398
- fields: Optional[Iterable] = None
398
+ fields: Iterable | None = None
399
399
  ) -> str:
400
400
  """
401
401
  Convert data to save CSV format file.
@@ -429,10 +429,10 @@ def to_csv(
429
429
 
430
430
 
431
431
  def to_excel(
432
- data: Union[Table, Iterable[Iterable]],
432
+ data: Table | Iterable[Iterable],
433
433
  path: str = 'data.xlsx',
434
- group_field: Optional[str] = None,
435
- sheets_set: dict[Union[str, int], SheetSet] = {}
434
+ group_field: str | None = None,
435
+ sheets_set: dict[str | int, SheetSet] = {}
436
436
  ) -> str:
437
437
  """
438
438
  Convert data to save Excel format file and return sheet name and sheet data.
reykit/rtext.py CHANGED
@@ -9,7 +9,7 @@
9
9
  """
10
10
 
11
11
 
12
- from typing import Any, Literal, Optional
12
+ from typing import Any, Literal
13
13
  from collections.abc import Iterable
14
14
  from decimal import Decimal
15
15
  from pprint import pformat as pprint_pformat
@@ -278,7 +278,7 @@ def join_filter_text(data: Iterable, char: str = ',', filter_: tuple = (None, ''
278
278
 
279
279
  def add_text_frame(
280
280
  *texts: str,
281
- title: Optional[str],
281
+ title: str | None,
282
282
  width: int,
283
283
  frame: Literal['full', 'half', 'top', 'half_plain', 'top_plain']
284
284
  ) -> str:
@@ -289,7 +289,7 @@ def add_text_frame(
289
289
  ----------
290
290
  texts : Texts.
291
291
  title : Frame title.
292
- - `Union[None, Literal['']]`: No title.
292
+ - `None | Literal['']`: No title.
293
293
  - `str`: Use this value as the title.
294
294
  width : Frame width.
295
295
  frame : Frame type.
reykit/rtime.py CHANGED
@@ -9,7 +9,7 @@
9
9
  """
10
10
 
11
11
 
12
- from typing import Any, TypedDict, Literal, Optional, Union, overload, NoReturn
12
+ from typing import Any, TypedDict, Literal, overload, NoReturn
13
13
  from collections.abc import Callable
14
14
  from pandas import (
15
15
  DataFrame,
@@ -47,7 +47,7 @@ __all__ = (
47
47
  )
48
48
 
49
49
 
50
- RecordData = TypedDict('RecordData', {'timestamp': int, 'datetime': datetime_datetime, 'timedelta': Optional[datetime_timedelta], 'note': Optional[str]})
50
+ RecordData = TypedDict('RecordData', {'timestamp': int, 'datetime': datetime_datetime, 'timedelta': datetime_timedelta | None, 'note': str | None})
51
51
 
52
52
 
53
53
  @overload
@@ -78,13 +78,7 @@ def now(
78
78
  'time_str',
79
79
  'timestamp'
80
80
  ] = 'datetime'
81
- ) -> Union[
82
- datetime_datetime,
83
- datetime_date,
84
- datetime_time,
85
- str,
86
- int
87
- ]:
81
+ ) -> datetime_datetime | datetime_date | datetime_time | str | int:
88
82
  """
89
83
  Get the now time.
90
84
 
@@ -126,15 +120,7 @@ def now(
126
120
 
127
121
  @overload
128
122
  def time_to(
129
- obj: Union[
130
- datetime_datetime,
131
- datetime_date,
132
- datetime_time,
133
- datetime_timedelta,
134
- time_struct_time,
135
- pd_timestamp,
136
- pd_timedelta
137
- ],
123
+ obj: datetime_datetime | datetime_date | datetime_time | datetime_timedelta | time_struct_time | pd_timestamp | pd_timedelta,
138
124
  decimal: bool = False,
139
125
  raising: bool = True
140
126
  ) -> str: ...
@@ -241,13 +227,7 @@ def time_to(
241
227
 
242
228
  def text_to_time(
243
229
  string: str
244
- ) -> Optional[
245
- Union[
246
- datetime_datetime,
247
- datetime_date,
248
- datetime_time
249
- ]
250
- ]:
230
+ ) -> datetime_datetime | datetime_date | datetime_time | None:
251
231
  """
252
232
  Convert text to time object.
253
233
 
@@ -332,11 +312,11 @@ def text_to_time(
332
312
  def to_time(
333
313
  obj: str,
334
314
  raising: bool = True
335
- ) -> Union[datetime_datetime, datetime_date, datetime_time]: ...
315
+ ) -> datetime_datetime | datetime_date | datetime_time: ...
336
316
 
337
317
  @overload
338
318
  def to_time(
339
- obj: Union[time_struct_time, float],
319
+ obj: time_struct_time | float,
340
320
  raising: bool = True
341
321
  ) -> datetime_datetime: ...
342
322
 
@@ -413,7 +393,7 @@ def to_time(
413
393
 
414
394
  def sleep(
415
395
  *thresholds: float,
416
- precision: Optional[int] = None
396
+ precision: int | None = None
417
397
  ) -> float:
418
398
  """
419
399
  Sleep random seconds.
@@ -452,7 +432,7 @@ def wait(
452
432
  func: Callable[..., bool],
453
433
  *args: Any,
454
434
  _interval: float = 1,
455
- _timeout: Optional[float] = None,
435
+ _timeout: float | None = None,
456
436
  **kwargs: Any
457
437
  ) -> float:
458
438
  """
@@ -522,7 +502,7 @@ class RTimeMark():
522
502
  self.record: dict[int, RecordData] = {}
523
503
 
524
504
 
525
- def mark(self, note: Optional[str] = None) -> int:
505
+ def mark(self, note: str | None = None) -> int:
526
506
  """
527
507
  Marking now time.
528
508
 
@@ -560,7 +540,7 @@ class RTimeMark():
560
540
  return index
561
541
 
562
542
 
563
- def report(self, title: Optional[str] = None) -> DataFrame:
543
+ def report(self, title: str | None = None) -> DataFrame:
564
544
  """
565
545
  Print and return time mark information table.
566
546
 
reykit/rtype.py CHANGED
@@ -9,7 +9,7 @@
9
9
  """
10
10
 
11
11
 
12
- from typing import Any, Optional, Self
12
+ from typing import Any, Self
13
13
  from collections.abc import Callable
14
14
 
15
15
 
@@ -86,7 +86,7 @@ class RSingleton(object):
86
86
  When instantiated, method `__singleton__` will be called only once, and will accept arguments.
87
87
  """
88
88
 
89
- _instance: Optional[Self] = None
89
+ _instance: Self | None = None
90
90
 
91
91
 
92
92
  def __new__(self, *arg: Any, **kwargs: Any) -> Self:
reykit/rwrap.py CHANGED
@@ -9,7 +9,7 @@
9
9
  """
10
10
 
11
11
 
12
- from typing import Any, Optional, Union, Literal, overload
12
+ from typing import Any, Literal, overload
13
13
  from collections.abc import Callable
14
14
  from io import IOBase, StringIO
15
15
  from inspect import getdoc
@@ -78,7 +78,7 @@ def wrap_frame(decorator: Callable) -> Callable:
78
78
 
79
79
  # Decorate Decorator.
80
80
  @overload
81
- def wrap(func: Callable, *args: Any, _execute: None = None, **kwargs: Any) -> Union[Callable, Any]: ...
81
+ def wrap(func: Callable, *args: Any, _execute: None = None, **kwargs: Any) -> Callable | Any: ...
82
82
 
83
83
  @overload
84
84
  def wrap(func: Callable, *args: Any, _execute: Literal[True] = None, **kwargs: Any) -> Any: ...
@@ -87,7 +87,7 @@ def wrap_frame(decorator: Callable) -> Callable:
87
87
  def wrap(func: Callable, *args: Any, _execute: Literal[False] = None, **kwargs: Any) -> Callable: ...
88
88
 
89
89
  @functools_wraps(decorator)
90
- def wrap(func: Callable, *args: Any, _execute: Optional[bool] = None, **kwargs: Any) -> Union[Callable, Any]:
90
+ def wrap(func: Callable, *args: Any, _execute: bool | None = None, **kwargs: Any) -> Callable | Any:
91
91
  """
92
92
  Decorative shell.
93
93
 
@@ -167,7 +167,7 @@ def wrap_runtime(
167
167
  *args: Any,
168
168
  _return_report: bool = False,
169
169
  **kwargs: Any
170
- ) -> Union[Any, tuple[Any, str]]:
170
+ ) -> Any | tuple[Any, str]:
171
171
  """
172
172
  Decorator, print or return runtime report of the function.
173
173
 
@@ -260,19 +260,19 @@ def wrap_thread(
260
260
  def wrap_exc(
261
261
  func: Callable,
262
262
  *args: Any,
263
- _exception: Union[BaseException, tuple[BaseException, ...]] = BaseException,
264
- _handler: Optional[Callable] = None,
263
+ _exception: BaseException | tuple[BaseException, ...] = BaseException,
264
+ _handler: Callable | None = None,
265
265
  **kwargs: Any
266
- ) -> Optional[Any]: ...
266
+ ) -> Any | None: ...
267
267
 
268
268
  @wrap_frame
269
269
  def wrap_exc(
270
270
  func: Callable,
271
271
  *args: Any,
272
- _exception: Union[BaseException, tuple[BaseException, ...]] = BaseException,
273
- _handler: Optional[Callable] = None,
272
+ _exception: BaseException | tuple[BaseException, ...] = BaseException,
273
+ _handler: Callable | None = None,
274
274
  **kwargs: Any
275
- ) -> Optional[Any]:
275
+ ) -> Any | None:
276
276
  """
277
277
  Decorator, execute function with `try` and `except` syntax.
278
278
 
@@ -307,8 +307,8 @@ def wrap_exc(
307
307
  def wrap_retry(
308
308
  func: Callable,
309
309
  *args: Any,
310
- _report: Optional[str] = None,
311
- _exception: Union[BaseException, tuple[BaseException, ...]] = BaseException,
310
+ _report: str | None = None,
311
+ _exception: BaseException | tuple[BaseException, ...] = BaseException,
312
312
  _try_total: int = 1,
313
313
  _try_count: int = 0,
314
314
  **kwargs: Any
@@ -318,8 +318,8 @@ def wrap_retry(
318
318
  def wrap_retry(
319
319
  func: Callable,
320
320
  *args: Any,
321
- _report: Optional[str] = None,
322
- _exception: Union[BaseException, tuple[BaseException, ...]] = BaseException,
321
+ _report: str | None = None,
322
+ _exception: BaseException | tuple[BaseException, ...] = BaseException,
323
323
  _try_total: int = 1,
324
324
  _try_count: int = 0,
325
325
  **kwargs: Any
@@ -569,7 +569,7 @@ def wrap_cache(
569
569
  def wrap_redirect_stdout(
570
570
  func: Callable,
571
571
  *args: Any,
572
- _redirect: Optional[Union[list, IOBase]] = None,
572
+ _redirect: list | IOBase | None = None,
573
573
  **kwargs: Any
574
574
  ) -> Any: ...
575
575
 
@@ -577,7 +577,7 @@ def wrap_redirect_stdout(
577
577
  def wrap_redirect_stdout(
578
578
  func: Callable,
579
579
  *args: Any,
580
- _redirect: Optional[Union[list, IOBase]] = None,
580
+ _redirect: list | IOBase | None = None,
581
581
  **kwargs: Any
582
582
  ) -> Any:
583
583
  """
reykit/rzip.py CHANGED
@@ -10,7 +10,6 @@
10
10
 
11
11
 
12
12
  from __future__ import annotations
13
- from typing import Optional
14
13
  from zipfile import ZipFile, is_zipfile, ZIP_DEFLATED
15
14
  from os import getcwd as os_getcwd, walk as os_walk
16
15
  from os.path import join as os_join, isfile as os_isfile
@@ -27,7 +26,7 @@ __all__ = (
27
26
 
28
27
  def compress(
29
28
  obj_path: str,
30
- build_dir: Optional[str] = None,
29
+ build_dir: str | None = None,
31
30
  overwrite: bool = True
32
31
  ) -> None:
33
32
  """
@@ -82,8 +81,8 @@ def compress(
82
81
 
83
82
  def decompress(
84
83
  obj_path: str,
85
- build_dir: Optional[str] = None,
86
- password: Optional[str] = None
84
+ build_dir: str | None = None,
85
+ password: str | None = None
87
86
  ) -> None:
88
87
  """
89
88
  Decompress compressed object.
@@ -114,7 +113,7 @@ def decompress(
114
113
 
115
114
  def zip(
116
115
  obj_path: str,
117
- build_dir: Optional[str] = None
116
+ build_dir: str | None = None
118
117
  ) -> None:
119
118
  """
120
119
  Automatic judge and compress or decompress object.
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.4
2
+ Name: reykit
3
+ Version: 1.1.2
4
+ Summary: Rey's kit method set.
5
+ Project-URL: homepage, https://github.com/reyxbo/reykit/
6
+ Author-email: Rey <reyxbo@163.com>
7
+ License: Copyright 2025 ReyXBo
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
14
+ License-File: LICENSE
15
+ Keywords: kit,rey,reyxbo,tool,tools
16
+ Requires-Python: >=3.12
17
+ Requires-Dist: aiohttp
18
+ Requires-Dist: apscheduler
19
+ Requires-Dist: captcha
20
+ Requires-Dist: concurrent-log-handler
21
+ Requires-Dist: filetype
22
+ Requires-Dist: pandas
23
+ Requires-Dist: pdfplumber
24
+ Requires-Dist: pillow
25
+ Requires-Dist: psutil
26
+ Requires-Dist: pymem
27
+ Requires-Dist: python-docx
28
+ Requires-Dist: pyzbar
29
+ Requires-Dist: qrcode
30
+ Requires-Dist: requests
31
+ Requires-Dist: tqdm
32
+ Requires-Dist: urwid
33
+ Requires-Dist: varname
34
+ Description-Content-Type: text/markdown
35
+
36
+ # reykit
37
+
38
+ > Rey's kit method set.
39
+
40
+ ## Install
41
+
42
+ ```
43
+ pip install reykit
44
+ ```
@@ -0,0 +1,30 @@
1
+ reykit/__init__.py,sha256=QwnhdUDSXgjXJQ4ClaeP9oKXUXyQOPj5sApwGCDrILc,848
2
+ reykit/rall.py,sha256=mOFwHXZ4-BOkJ5Ptbm6lQc2zwNf_VqcqM6AYYnYPfoo,672
3
+ reykit/rcomm.py,sha256=LgSLrpUokOgdRMYwuZj6JNvxDyvENwsiOd6ZHo67HBg,11444
4
+ reykit/rdata.py,sha256=d5zO9dQotDGoXxNh1TvEZdIfacaW55yeb79r0bbgj0k,8470
5
+ reykit/remail.py,sha256=rK_hbqGeZh04DnVPtjODLsm_YfdrZ5L-Z6SbjplrfUc,6736
6
+ reykit/rexception.py,sha256=ftXVdEVkU0B0HXbKjQTiJRJVVGbvhorwWtMiplpN9Zk,8118
7
+ reykit/rimage.py,sha256=fQpIHX6Go3Jk_MDgsSDnZx27EZHumyGdgI9xyjP5lYQ,6275
8
+ reykit/rlog.py,sha256=4RqfYU7RZJJ3qUXHUTWFVgAM3nqjP4glDyRmvWNXpbk,26406
9
+ reykit/rmonkey.py,sha256=RqhmKXabl11s2RJaGizpm00Q1yEkul1Je5uxw8_thUk,7584
10
+ reykit/rmultitask.py,sha256=9UVAg8P85UsLS_exW-e6tZTa_b5r3ceL7LQRDrP8eAw,21981
11
+ reykit/rnumber.py,sha256=XseLDNLDOt-XYP2P9oDbkKYuHudeSoWzIHsOENO8vvE,3196
12
+ reykit/ros.py,sha256=flnczS5InFd9rVdXNi-amVETlIu1nwZPWSGySLMOPLw,39231
13
+ reykit/rrandom.py,sha256=fMeorpkjWAAtjD2oZCux3tpYuD2RRoBSkWI0M6NPM5Q,9102
14
+ reykit/rregex.py,sha256=XTlnDLior8yyncFdrTr9FsVlBcqMXvsWRfpmvQS-BR8,6089
15
+ reykit/rschedule.py,sha256=7EH_6TdEhwV-T6YyBEGYEcy85I1vTSNutDci-e_veTY,5796
16
+ reykit/rstdout.py,sha256=vSvD4QjYybNiGnowWLXRU6q1u9ERPjr8YTXgq82eYDU,9648
17
+ reykit/rsystem.py,sha256=LG0I4ZZjr-Bxfy6zbCqz3WvSG_bGYwtaBLowTHQ0mzY,34332
18
+ reykit/rtable.py,sha256=gXszf_9DE_5SMdNcxMX-xd4IpHGQVjGsN3NQIm7wVGY,12055
19
+ reykit/rtext.py,sha256=whaKpVkd36yYVtCmZ1ptp_TVRL1v3f7Jab0vPXC8wXY,11089
20
+ reykit/rtime.py,sha256=bV1sB_FHcqNJAP9L7WmYMZul3HrQM2QU9a2Q1zN98Aw,16980
21
+ reykit/rtype.py,sha256=HQFllZjKHPnGYLS-zTwC948Rt0HVsGY12eObjwFfOSo,1962
22
+ reykit/rwrap.py,sha256=AJBYTDLHLGlMSiGIKoVkCsQk-Y4nDHWWFVCdnz5Bwdk,15222
23
+ reykit/rzip.py,sha256=i6KkmeSWCnq025d-O1mbuCYezNRUhyY9OGVK0CRlNAM,3522
24
+ reykit/rdll/__init__.py,sha256=vM9V7wSNno-WH9RrxgHTIgCkQm8LmBFoLFO8z7qovNo,306
25
+ reykit/rdll/rdll_inject.py,sha256=bETl8tywtN1OiQudbA21u6GwBM_bqVX7jbiisNj_JBg,645
26
+ reykit/rdll/rdll_inject_core.py,sha256=Trgh_pdJs_Lw-Y-0Kkn8kHr4BnilM9dBKnHnX25T_pM,5092
27
+ reykit-1.1.2.dist-info/METADATA,sha256=2PvdTJEz7npFsQ53sEkQD4f8k7xHYLDAPZS81xxHQhM,1888
28
+ reykit-1.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
29
+ reykit-1.1.2.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
30
+ reykit-1.1.2.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -0,0 +1,7 @@
1
+ Copyright 2025 ReyXBo
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,29 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: reykit
3
- Version: 1.1.0
4
- Summary: Rey's kit method set.
5
- Home-page: https://github.com/reyxbo/reykit/
6
- Author: Rey
7
- Author-email: reyxbo@163.com
8
- Requires-Dist: aiohttp
9
- Requires-Dist: apscheduler
10
- Requires-Dist: captcha
11
- Requires-Dist: concurrent-log-handler
12
- Requires-Dist: filetype
13
- Requires-Dist: pandas
14
- Requires-Dist: pyzbar
15
- Requires-Dist: pdfplumber
16
- Requires-Dist: psutil
17
- Requires-Dist: pymem
18
- Requires-Dist: python-docx
19
- Requires-Dist: qrcode
20
- Requires-Dist: requests
21
- Requires-Dist: tqdm
22
- Requires-Dist: urwid
23
- Requires-Dist: varname
24
- Requires-Dist: Pillow
25
- Dynamic: author
26
- Dynamic: author-email
27
- Dynamic: home-page
28
- Dynamic: requires-dist
29
- Dynamic: summary
@@ -1,30 +0,0 @@
1
- reykit/__init__.py,sha256=cvteTneRjZ-mxhKx57bNG5pdQc4nEtNkGG8pNXmApQs,917
2
- reykit/rall.py,sha256=mOFwHXZ4-BOkJ5Ptbm6lQc2zwNf_VqcqM6AYYnYPfoo,672
3
- reykit/rcomm.py,sha256=_i0hrCB3moZhA3sm2ebg54i9dQ8QjI57ZV2cKm0vxA4,11523
4
- reykit/rdata.py,sha256=qmx9yKrfP2frOQjj-34ze8sa1l4sOQXtemkKyrVtKXs,8495
5
- reykit/remail.py,sha256=-uSU2yHyFbjs6X9M5Sjb4TMjw4cK8_Bnsmsaos3f0Rs,6860
6
- reykit/rexception.py,sha256=sI5EKD5gfsdwApovA4DFnlm_MxmPp7TChNLzGmGvZ9M,8150
7
- reykit/rimage.py,sha256=BmNNyhqezN9f40gaE5_rv6B7-v9mYkUwT8n2tfCDfdw,6331
8
- reykit/rlog.py,sha256=J-fnY5B3Y2oJOuyHvemy6ltkr8he4spS3iQOADIUg00,26525
9
- reykit/rmonkey.py,sha256=s8TdR-_tRRMiR11eCLHCkFAJuAZe7PVIhkR-74Xt8vw,7644
10
- reykit/rmultitask.py,sha256=L4_dlIKGV3DrWlID2MDc1Fl-o0kt23l7oYGp4-WJRYU,22057
11
- reykit/rnumber.py,sha256=MajaVOVa3_H1lm91cu9HLaLXd9ZsvZYFxXvcklC0LWs,3209
12
- reykit/ros.py,sha256=wv1DM2N8MXBwGqBhNUSiDLrvHRK7syibhFwEPGkpxYM,39336
13
- reykit/rrandom.py,sha256=88SN3BxbVqF0UQJxk6z_76butNnzePHsKD7izEYyNvs,9155
14
- reykit/rregex.py,sha256=E9BConP7ADYyGVZ5jpxwUmtc_WXFb-I1Zjt6IZSHkIQ,6218
15
- reykit/rschedule.py,sha256=TiIFQ0siL20nlhikWfvRGhOdeRbyHQtN6uxFivA2WoI,5852
16
- reykit/rstdout.py,sha256=yjCTegPqm2FNIpNGVrmz16Jn2bNncYO1axuANVdTmVQ,9710
17
- reykit/rsystem.py,sha256=jFaIk80gH2Ky-WKmu40jYN38wxmbI7SHcxMbbpABzdc,34623
18
- reykit/rtable.py,sha256=ghsppMMOGkz3boV_CSxpkel5Lfj-ViBziZrpcCoY5YA,12229
19
- reykit/rtext.py,sha256=xilQxaMMdaVCBk6rxQb1aI8-j52QVUH5EtTZVMQsa8Q,11108
20
- reykit/rtime.py,sha256=2xOGGETwl1Sc3W80a2KiPbI4GsSfIyksTeXgqNOTYVw,17178
21
- reykit/rtype.py,sha256=PbfaHjNQTMiZynlz8HwP2K9SS-t91ThMOYBxQIBf9Ug,1975
22
- reykit/rwrap.py,sha256=4RdTxT2y7ViyeiWx2fJ54k9ZZT6Bmx5QStIiwEHB6rY,15320
23
- reykit/rzip.py,sha256=HTrxyb4e6f38eOPFIXsdbcEwr7FQSqnU2MVmVRBYTbg,3563
24
- reykit/rdll/__init__.py,sha256=vM9V7wSNno-WH9RrxgHTIgCkQm8LmBFoLFO8z7qovNo,306
25
- reykit/rdll/rdll_inject.py,sha256=bETl8tywtN1OiQudbA21u6GwBM_bqVX7jbiisNj_JBg,645
26
- reykit/rdll/rdll_inject_core.py,sha256=Trgh_pdJs_Lw-Y-0Kkn8kHr4BnilM9dBKnHnX25T_pM,5092
27
- reykit-1.1.0.dist-info/METADATA,sha256=bbyeoS_7XYrdRSiOH0BD6CSIMRbeewvCIxtX01Z9acc,700
28
- reykit-1.1.0.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
29
- reykit-1.1.0.dist-info/top_level.txt,sha256=2hvySInjpVEcpYg-XFCYVU5xB2TWW8RovoDtBDzAqyE,7
30
- reykit-1.1.0.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- reykit