absfuyu 5.9.0__py3-none-any.whl → 5.11.0__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 absfuyu might be problematic. Click here for more details.
- absfuyu/__init__.py +1 -1
- absfuyu/__main__.py +2 -2
- absfuyu/cli/__init__.py +2 -2
- absfuyu/cli/color.py +2 -2
- absfuyu/cli/config_group.py +2 -2
- absfuyu/cli/do_group.py +2 -2
- absfuyu/cli/game_group.py +20 -2
- absfuyu/cli/tool_group.py +2 -2
- absfuyu/config/__init__.py +2 -2
- absfuyu/core/__init__.py +2 -2
- absfuyu/core/baseclass.py +20 -3
- absfuyu/core/baseclass2.py +2 -2
- absfuyu/core/decorator.py +2 -2
- absfuyu/core/docstring.py +2 -2
- absfuyu/core/dummy_cli.py +2 -2
- absfuyu/core/dummy_func.py +2 -2
- absfuyu/dxt/__init__.py +2 -2
- absfuyu/dxt/dictext.py +2 -2
- absfuyu/dxt/dxt_support.py +2 -2
- absfuyu/dxt/intext.py +2 -2
- absfuyu/dxt/listext.py +13 -18
- absfuyu/dxt/strext.py +2 -2
- absfuyu/extra/__init__.py +2 -2
- absfuyu/extra/beautiful.py +2 -2
- absfuyu/extra/da/__init__.py +2 -2
- absfuyu/extra/da/dadf.py +2 -2
- absfuyu/extra/da/dadf_base.py +2 -2
- absfuyu/extra/da/df_func.py +2 -2
- absfuyu/extra/da/mplt.py +2 -2
- absfuyu/extra/data_analysis.py +2 -2
- absfuyu/extra/pdf.py +2 -2
- absfuyu/extra/rclone.py +2 -2
- absfuyu/extra/xml.py +2 -2
- absfuyu/fun/__init__.py +2 -2
- absfuyu/fun/rubik.py +2 -2
- absfuyu/fun/tarot.py +2 -2
- absfuyu/game/__init__.py +2 -2
- absfuyu/game/game_stat.py +2 -2
- absfuyu/game/schulte.py +78 -0
- absfuyu/game/sudoku.py +2 -2
- absfuyu/game/tictactoe.py +2 -2
- absfuyu/game/wordle.py +2 -2
- absfuyu/general/__init__.py +2 -2
- absfuyu/general/content.py +2 -2
- absfuyu/general/human.py +2 -2
- absfuyu/general/shape.py +2 -2
- absfuyu/general/tax.py +324 -0
- absfuyu/logger.py +2 -2
- absfuyu/pkg_data/__init__.py +2 -2
- absfuyu/pkg_data/deprecated.py +2 -2
- absfuyu/pkg_data/logo.py +2 -2
- absfuyu/sort.py +2 -2
- absfuyu/tools/__init__.py +2 -2
- absfuyu/tools/checksum.py +2 -2
- absfuyu/tools/converter.py +2 -2
- absfuyu/tools/generator.py +2 -2
- absfuyu/tools/inspector.py +2 -2
- absfuyu/tools/keygen.py +2 -2
- absfuyu/tools/obfuscator.py +2 -2
- absfuyu/tools/passwordlib.py +2 -2
- absfuyu/tools/shutdownizer.py +2 -2
- absfuyu/tools/sw.py +138 -7
- absfuyu/tools/web.py +2 -2
- absfuyu/typings.py +2 -2
- absfuyu/util/__init__.py +2 -2
- absfuyu/util/api.py +2 -2
- absfuyu/util/gui.py +62 -3
- absfuyu/util/json_method.py +2 -2
- absfuyu/util/lunar.py +2 -2
- absfuyu/util/path.py +2 -2
- absfuyu/util/performance.py +2 -2
- absfuyu/util/shorten_number.py +2 -2
- absfuyu/util/text_table.py +2 -2
- absfuyu/util/zipped.py +2 -2
- absfuyu/version.py +2 -2
- {absfuyu-5.9.0.dist-info → absfuyu-5.11.0.dist-info}/METADATA +1 -1
- absfuyu-5.11.0.dist-info/RECORD +85 -0
- absfuyu-5.9.0.dist-info/RECORD +0 -83
- {absfuyu-5.9.0.dist-info → absfuyu-5.11.0.dist-info}/WHEEL +0 -0
- {absfuyu-5.9.0.dist-info → absfuyu-5.11.0.dist-info}/entry_points.txt +0 -0
- {absfuyu-5.9.0.dist-info → absfuyu-5.11.0.dist-info}/licenses/LICENSE +0 -0
absfuyu/tools/sw.py
CHANGED
|
@@ -3,8 +3,8 @@ Absufyu: Software
|
|
|
3
3
|
-----------------
|
|
4
4
|
Software, pyinstaller related stuff
|
|
5
5
|
|
|
6
|
-
Version: 5.
|
|
7
|
-
Date updated:
|
|
6
|
+
Version: 5.11.0
|
|
7
|
+
Date updated: 30/09/2025 (dd/mm/yyyy)
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
# Module level
|
|
@@ -14,12 +14,14 @@ __all__ = [
|
|
|
14
14
|
"get_system_info",
|
|
15
15
|
"get_pyinstaller_exe_dir",
|
|
16
16
|
"get_pyinstaller_resource_path",
|
|
17
|
+
"PyinstallerHelper",
|
|
17
18
|
"HWIDgen",
|
|
18
19
|
"LicenseKeySystem",
|
|
19
20
|
"BasicSoftwareProtection",
|
|
20
21
|
# Support
|
|
21
22
|
"SystemInfo",
|
|
22
23
|
"LicenseKey",
|
|
24
|
+
"PyinstallerHiddenImportPreset",
|
|
23
25
|
]
|
|
24
26
|
|
|
25
27
|
|
|
@@ -46,7 +48,7 @@ from absfuyu.tools.converter import Base64EncodeDecode
|
|
|
46
48
|
from absfuyu.util import stop_after_day
|
|
47
49
|
|
|
48
50
|
|
|
49
|
-
# System Info
|
|
51
|
+
# MARK: System Info
|
|
50
52
|
# ---------------------------------------------------------------------------
|
|
51
53
|
class SystemInfo(NamedTuple):
|
|
52
54
|
"""System info"""
|
|
@@ -93,7 +95,7 @@ def get_system_info() -> SystemInfo:
|
|
|
93
95
|
)
|
|
94
96
|
|
|
95
97
|
|
|
96
|
-
# Pyinstaller
|
|
98
|
+
# MARK: Pyinstaller
|
|
97
99
|
# ---------------------------------------------------------------------------
|
|
98
100
|
@versionchanged("5.6.1", "Fixed behavior")
|
|
99
101
|
def get_pyinstaller_exe_dir() -> Path:
|
|
@@ -123,7 +125,7 @@ def get_pyinstaller_resource_path(relative_path: str) -> Path:
|
|
|
123
125
|
environments and PyInstaller-packaged executables.
|
|
124
126
|
|
|
125
127
|
When running from a PyInstaller bundle, this function resolves the path relative
|
|
126
|
-
to the temporary
|
|
128
|
+
to the temporary ``_MEIPASS`` folder. During normal execution, it resolves the path
|
|
127
129
|
relative to the current script's directory.
|
|
128
130
|
|
|
129
131
|
Parameters
|
|
@@ -151,7 +153,136 @@ def get_pyinstaller_resource_path(relative_path: str) -> Path:
|
|
|
151
153
|
return base_path / relative_path
|
|
152
154
|
|
|
153
155
|
|
|
154
|
-
|
|
156
|
+
class PyinstallerHiddenImportPreset:
|
|
157
|
+
"""
|
|
158
|
+
pyinstaller hidden import preset (library preset)
|
|
159
|
+
|
|
160
|
+
Example:
|
|
161
|
+
--------
|
|
162
|
+
>>> PyinstallerHelper(...).add_hidden_import(*PyinstallerHiddenImportPreset.ABSFUYU)
|
|
163
|
+
"""
|
|
164
|
+
|
|
165
|
+
ABSFUYU = ["absfuyu"]
|
|
166
|
+
DF = ["pandas", "numpy", "openpyxl", "xlsxwriter"] # DataFrame
|
|
167
|
+
VISUAL = ["rich", "tqdm"]
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
@versionadded("5.11.0")
|
|
171
|
+
class PyinstallerHelper(BaseClass):
|
|
172
|
+
"""pyinstaller helper"""
|
|
173
|
+
|
|
174
|
+
def __init__(
|
|
175
|
+
self,
|
|
176
|
+
path_to_file: str | Path,
|
|
177
|
+
relative_to_cwd: bool = True,
|
|
178
|
+
console: bool = True,
|
|
179
|
+
onefile: bool = False,
|
|
180
|
+
noconfirm: bool = False,
|
|
181
|
+
) -> None:
|
|
182
|
+
"""
|
|
183
|
+
pyinstaller cmd helper
|
|
184
|
+
|
|
185
|
+
Parameters
|
|
186
|
+
----------
|
|
187
|
+
path_to_file : str | Path
|
|
188
|
+
Path to .py file to make .exe
|
|
189
|
+
|
|
190
|
+
relative_to_cwd : bool, optional
|
|
191
|
+
Is the file relative to cwd, by default True
|
|
192
|
+
|
|
193
|
+
console : bool, optional
|
|
194
|
+
Include console, by default True
|
|
195
|
+
|
|
196
|
+
onefile : bool, optional
|
|
197
|
+
Convert into one file, by default False
|
|
198
|
+
|
|
199
|
+
noconfirm : bool, optional
|
|
200
|
+
No confirmation, by default False
|
|
201
|
+
"""
|
|
202
|
+
self.source_path = Path(path_to_file)
|
|
203
|
+
self.relative_to_cwd = relative_to_cwd
|
|
204
|
+
self.console = console
|
|
205
|
+
self.onefile = onefile
|
|
206
|
+
self.noconfirm = noconfirm
|
|
207
|
+
|
|
208
|
+
if self.relative_to_cwd:
|
|
209
|
+
# rel = self.source_path.relative_to(Path.cwd())
|
|
210
|
+
# self._base_cmd = ["pyinstaller", f"'.\\{Path('.').joinpath(rel)}'"]
|
|
211
|
+
self._base_cmd = ["pyinstaller", f"'.\\{self.source_path.relative_to(Path.cwd())}'"]
|
|
212
|
+
else:
|
|
213
|
+
self._base_cmd = ["pyinstaller", f"'{self.source_path.resolve()}'"]
|
|
214
|
+
|
|
215
|
+
self._hidden_import = []
|
|
216
|
+
self._icon = ""
|
|
217
|
+
|
|
218
|
+
def add_hidden_import(self, *library: str) -> None:
|
|
219
|
+
"""
|
|
220
|
+
Add hidden import (library)
|
|
221
|
+
"""
|
|
222
|
+
if len(self._hidden_import) < 1:
|
|
223
|
+
self._hidden_import = list(library)
|
|
224
|
+
else:
|
|
225
|
+
self._hidden_import.extend(list(library))
|
|
226
|
+
|
|
227
|
+
def add_icon(self, path_to_icon: str | Path, *, relative_to_cwd: bool | None = None) -> None:
|
|
228
|
+
"""
|
|
229
|
+
Add icon to .exe
|
|
230
|
+
|
|
231
|
+
Parameters
|
|
232
|
+
----------
|
|
233
|
+
path_to_icon : str | Path
|
|
234
|
+
Path to icon file
|
|
235
|
+
|
|
236
|
+
relative_to_cwd : bool | None, optional
|
|
237
|
+
Use boolean value to overwrite relative_to_cwd option of the main engine, by default None
|
|
238
|
+
"""
|
|
239
|
+
p = Path(path_to_icon)
|
|
240
|
+
use_relative = self.relative_to_cwd if relative_to_cwd is None else relative_to_cwd
|
|
241
|
+
|
|
242
|
+
if use_relative:
|
|
243
|
+
rel = p.relative_to(Path.cwd())
|
|
244
|
+
# ensure it always shows with ./ prefix
|
|
245
|
+
# self._icon = f"'{Path('.').joinpath(rel)}'"
|
|
246
|
+
self._icon = f"'.\\{rel}'"
|
|
247
|
+
else:
|
|
248
|
+
self._icon = f"'{p.resolve()}'"
|
|
249
|
+
|
|
250
|
+
def export_cmd(self) -> str:
|
|
251
|
+
"""
|
|
252
|
+
Export pyinstaller cmd
|
|
253
|
+
|
|
254
|
+
Returns
|
|
255
|
+
-------
|
|
256
|
+
str
|
|
257
|
+
pyinstaller command
|
|
258
|
+
"""
|
|
259
|
+
cmd = self._base_cmd
|
|
260
|
+
|
|
261
|
+
# Hidden import
|
|
262
|
+
if len(self._hidden_import) > 0:
|
|
263
|
+
dat = (f"--hidden-import={x}" for x in list(set(self._hidden_import)))
|
|
264
|
+
cmd.append(" ".join(dat))
|
|
265
|
+
|
|
266
|
+
# Console
|
|
267
|
+
if not self.console:
|
|
268
|
+
cmd.append("--noconsole")
|
|
269
|
+
|
|
270
|
+
# One file
|
|
271
|
+
if self.onefile:
|
|
272
|
+
cmd.append("--onefile")
|
|
273
|
+
|
|
274
|
+
# No confirm
|
|
275
|
+
if self.noconfirm:
|
|
276
|
+
cmd.append("--noconfirm")
|
|
277
|
+
|
|
278
|
+
# Icon
|
|
279
|
+
if len(self._icon) > 0:
|
|
280
|
+
cmd.append(self._icon)
|
|
281
|
+
|
|
282
|
+
return " ".join(cmd)
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
# MARK: Key System
|
|
155
286
|
# ---------------------------------------------------------------------------
|
|
156
287
|
class HWIDgen(BaseClass):
|
|
157
288
|
"""
|
|
@@ -385,7 +516,7 @@ class LicenseKeySystem(BaseClass):
|
|
|
385
516
|
return False
|
|
386
517
|
|
|
387
518
|
|
|
388
|
-
# Software
|
|
519
|
+
# MARK: Software
|
|
389
520
|
# ---------------------------------------------------------------------------
|
|
390
521
|
class BasicSoftwareProtection(BaseClass):
|
|
391
522
|
"""
|
absfuyu/tools/web.py
CHANGED
absfuyu/typings.py
CHANGED
absfuyu/util/__init__.py
CHANGED
absfuyu/util/api.py
CHANGED
absfuyu/util/gui.py
CHANGED
|
@@ -3,8 +3,8 @@ Absfuyu: GUI
|
|
|
3
3
|
------------
|
|
4
4
|
Custom tkinter GUI
|
|
5
5
|
|
|
6
|
-
Version: 5.
|
|
7
|
-
Date updated:
|
|
6
|
+
Version: 5.11.0
|
|
7
|
+
Date updated: 30/09/2025 (dd/mm/yyyy)
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
# Module level
|
|
@@ -22,7 +22,19 @@ from absfuyu.pkg_data.logo import AbsfuyuLogo
|
|
|
22
22
|
# Class
|
|
23
23
|
# ---------------------------------------------------------------------------
|
|
24
24
|
class CustomTkinterApp(tk.Tk):
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
def __init__(self, title: str | None = None, size: tuple[int, int] | None = None) -> None:
|
|
27
|
+
"""
|
|
28
|
+
Custom Tkinter GUI
|
|
29
|
+
|
|
30
|
+
Parameters
|
|
31
|
+
----------
|
|
32
|
+
title : str | None, optional
|
|
33
|
+
Title of the app, by default None
|
|
34
|
+
|
|
35
|
+
size : tuple[int, int] | None, optional
|
|
36
|
+
Size of the app (width, height), by default None
|
|
37
|
+
"""
|
|
26
38
|
super().__init__()
|
|
27
39
|
|
|
28
40
|
# Set custom icon
|
|
@@ -30,3 +42,50 @@ class CustomTkinterApp(tk.Tk):
|
|
|
30
42
|
|
|
31
43
|
# Title
|
|
32
44
|
self.title(title)
|
|
45
|
+
|
|
46
|
+
# Set size
|
|
47
|
+
self._absfuyu_set_width_height(size)
|
|
48
|
+
|
|
49
|
+
# @versionadded("5.10.0")
|
|
50
|
+
def _absfuyu_set_width_height(self, size: tuple[int, int] | None = None) -> None:
|
|
51
|
+
"""
|
|
52
|
+
Set width and height for the app.
|
|
53
|
+
|
|
54
|
+
Parameters
|
|
55
|
+
----------
|
|
56
|
+
size : tuple[int, int] | None, optional
|
|
57
|
+
Size of the app (width, height), by default ``None``
|
|
58
|
+
(420 x 250)
|
|
59
|
+
"""
|
|
60
|
+
# Set GUI appears in center
|
|
61
|
+
if size is None:
|
|
62
|
+
_width = 420
|
|
63
|
+
_height = 250
|
|
64
|
+
else:
|
|
65
|
+
_width, _height = size
|
|
66
|
+
|
|
67
|
+
_width_screen = self.winfo_screenwidth()
|
|
68
|
+
_width_screen_offset = 0.0052 # x offset mutiplier
|
|
69
|
+
_x_offset = int(_width_screen * _width_screen_offset)
|
|
70
|
+
|
|
71
|
+
_height_screen = self.winfo_screenheight()
|
|
72
|
+
_height_screen_offset = 0.0926 # y offset mutiplier
|
|
73
|
+
_y_offset = int(_height_screen * _height_screen_offset)
|
|
74
|
+
|
|
75
|
+
if _width > _width_screen:
|
|
76
|
+
_width = int(_width_screen * (1 - 0.001))
|
|
77
|
+
# _x_offset = 0
|
|
78
|
+
|
|
79
|
+
if _height > (_height_screen - _y_offset):
|
|
80
|
+
_height = int(_height_screen * (1 - 0.001))
|
|
81
|
+
_y_offset = 0
|
|
82
|
+
|
|
83
|
+
_x = (_width_screen / 2) - (_width / 2) - _x_offset
|
|
84
|
+
_y = (_height_screen / 2) - (_height / 2) - _y_offset
|
|
85
|
+
|
|
86
|
+
self.geometry(f"{_width}x{_height}+{int(_x)}+{int(_y)}")
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
if __name__ == "__main__":
|
|
90
|
+
app = CustomTkinterApp("absfuyu")
|
|
91
|
+
app.mainloop()
|
absfuyu/util/json_method.py
CHANGED
absfuyu/util/lunar.py
CHANGED
absfuyu/util/path.py
CHANGED
absfuyu/util/performance.py
CHANGED
absfuyu/util/shorten_number.py
CHANGED
absfuyu/util/text_table.py
CHANGED
absfuyu/util/zipped.py
CHANGED
absfuyu/version.py
CHANGED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
absfuyu/__init__.py,sha256=2AX_gwJCphOFknnx2Xo8bsxm2RJZfUOeSqkShX3luLw,601
|
|
2
|
+
absfuyu/__main__.py,sha256=0VycPhRZSmF5mv_PDzec7Vrswlof4ektXZqGXimSJ-8,596
|
|
3
|
+
absfuyu/logger.py,sha256=oylnpABcQdgwjfR_PiiqHywnpJSLF92APW8GsIktQag,13044
|
|
4
|
+
absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
absfuyu/sort.py,sha256=6K-04xm8Fw4FRN-QG9lKhDvj_0sIc_ZPFRUTC4vBwLA,3251
|
|
6
|
+
absfuyu/typings.py,sha256=JmDZF8YOgN-6PL63wQJz-2EFtdf76N754v7fb0Rb2nw,4663
|
|
7
|
+
absfuyu/version.py,sha256=FNfNmhaKzW-HHUIS-TrRqTqG02nSHkai9LDYiepDgKw,14491
|
|
8
|
+
absfuyu/cli/__init__.py,sha256=2EcE7NAeu2cCDbekBlPCYBSLL7yKp7f4sVUB5PDQFNg,1182
|
|
9
|
+
absfuyu/cli/color.py,sha256=KHN_0JCMQmw1tbdbC-H_XQSbFHisO2MdUYPak1hgoSc,1140
|
|
10
|
+
absfuyu/cli/config_group.py,sha256=F1CHnZziUFb8dJO8PUdFxMoco-tGLekL4kGM7erNOAk,1506
|
|
11
|
+
absfuyu/cli/do_group.py,sha256=Y_u002p4GfPA8wSiyi58mkoqOt2-GLntpq2ZLxE-syc,2721
|
|
12
|
+
absfuyu/cli/game_group.py,sha256=U6pkDmvKRJ9WbhO2lJ0nIZueNlub03bzHUyTEZ73LxU,3017
|
|
13
|
+
absfuyu/cli/tool_group.py,sha256=pz3_ZdD5T0DBVDQPA825FXQhXDLu8Ek5V3B9wWXpshM,3417
|
|
14
|
+
absfuyu/config/__init__.py,sha256=CTb3CV0ZPx2-ODo9tGIJiTVluXmqxXDdyp22KpbradE,8239
|
|
15
|
+
absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
|
|
16
|
+
absfuyu/core/__init__.py,sha256=LCk3pfLW-67w-zYt-eT-7RQH1FSv61nto7T103A6sdU,1189
|
|
17
|
+
absfuyu/core/baseclass.py,sha256=2_d0fYR3ulHi_cGGXYsf8TlszW_qsNcrw4VeXe8dXWM,35234
|
|
18
|
+
absfuyu/core/baseclass2.py,sha256=XJQDNvxZRp8x5ZoNKMtLKw-n4bDpGhJzuJL5mBHGQNk,5368
|
|
19
|
+
absfuyu/core/decorator.py,sha256=OZe2W2kv7pY5h1ZqTrkRfpBYfqtSqVYdcTdTvYo7wfs,4177
|
|
20
|
+
absfuyu/core/docstring.py,sha256=HAgB2eH5uKM04pShMKDfo7ouRYlNtMK-eYk_MESylCI,5792
|
|
21
|
+
absfuyu/core/dummy_cli.py,sha256=0l_o2rPPUDTNq0F5_TOO9-l-E7AwCfhUziea35c6kH4,1885
|
|
22
|
+
absfuyu/core/dummy_func.py,sha256=kO1VviOgAE-8d1aVNCFgOtFxHUFlPAH5cFblVHMy9uQ,1427
|
|
23
|
+
absfuyu/dxt/__init__.py,sha256=qZEvBsyQIhFHAeRG3tQBJkreatvkMXzBwFTOzgv41b8,987
|
|
24
|
+
absfuyu/dxt/dictext.py,sha256=Xwfh1oYYWGAf8HFVEdhoWWT-l_fPxh1D5qe11AxAJlI,6228
|
|
25
|
+
absfuyu/dxt/dxt_support.py,sha256=oabykibCKLgpuFjjpp4TY57gvOxpyGgJQVnycNMbgBQ,2110
|
|
26
|
+
absfuyu/dxt/intext.py,sha256=yBlnIo8tBxx5-FFRlC-LDrZuCioR5at4xi86b2whrU0,17838
|
|
27
|
+
absfuyu/dxt/listext.py,sha256=KgKZl1OYBs-KauPkJq0KPArqWh5wg0cFp7hBpPWwdoQ,24498
|
|
28
|
+
absfuyu/dxt/strext.py,sha256=iaOPje75WOs0_Z9Yiq_qshs8acTvxDQ3j226tCfYfEU,16276
|
|
29
|
+
absfuyu/extra/__init__.py,sha256=coIiTPFQfU94lEBjJFqiJTYSJ869sFuTkA3BUW-c0rE,183
|
|
30
|
+
absfuyu/extra/beautiful.py,sha256=c0Ql6EEnuHW-1UCUBWOcxN5_SfCqZGDaHc2948RB1Jo,8138
|
|
31
|
+
absfuyu/extra/data_analysis.py,sha256=aKUH6MALx5JDCuX1ob1NbIOI-n1vfi_PFPMYj3G7TfI,500
|
|
32
|
+
absfuyu/extra/pdf.py,sha256=9zj-FH2uCL-BY9O7b_BdSjWyZ_poWnU-yhy69LBncI8,2484
|
|
33
|
+
absfuyu/extra/rclone.py,sha256=4RpryT71BCGHRw2PB-TsZ-G918uWiZoha8g2ak0HUyA,8485
|
|
34
|
+
absfuyu/extra/xml.py,sha256=RzX0_1Li5KNrx6IKsiaZ26VXbYKutFwTpbyDXvGkRkw,2158
|
|
35
|
+
absfuyu/extra/da/__init__.py,sha256=XT8uyd-b-kvz_Hl4WpdW3VRYkq9Sf7_UwZwmCC8j-fg,1887
|
|
36
|
+
absfuyu/extra/da/dadf.py,sha256=4j0sd7TH9tCpUf6mYR9BFDKm3MsjUWGUhAxECfNuhKI,44235
|
|
37
|
+
absfuyu/extra/da/dadf_base.py,sha256=zZpnAuL2UoUUsyC6aa6kmYYoPxSVs_1MCZqsEvPkNIc,5168
|
|
38
|
+
absfuyu/extra/da/df_func.py,sha256=lI9zJjEuwlFGoiKUPY1Q2ts1q8mvDgulrZ54BUL15AI,2525
|
|
39
|
+
absfuyu/extra/da/mplt.py,sha256=bAZUU4rf11U4bACX0GKu5IOZIU0Iqo6A0JxmxYxhj5s,6306
|
|
40
|
+
absfuyu/fun/__init__.py,sha256=GNhFbJAIVT1Ta9dOJeTKry_zSvu8O19-hhxp2oKzVhY,5606
|
|
41
|
+
absfuyu/fun/rubik.py,sha256=vW_buF5mjgfxl07Lb5esNqrzZDTwLWyNC4X3i9wxYPY,29678
|
|
42
|
+
absfuyu/fun/tarot.py,sha256=btWe52PurkZhAq5621xY7kbfvi-0PTmonPfx_rFBbhU,2402
|
|
43
|
+
absfuyu/game/__init__.py,sha256=OfTU3RFtrNnRDooCPBTFzQo8r_ls6oeks_-8pC7nTcw,4692
|
|
44
|
+
absfuyu/game/game_stat.py,sha256=rX85cT7WUFXSmPypGZrJrPw6niGNb4UAYb_0CM0Jk-U,1237
|
|
45
|
+
absfuyu/game/schulte.py,sha256=1yq4XKLHLZkVYV0wiPaYaZedJTTl5uqkahKo-r-Iw5Q,2706
|
|
46
|
+
absfuyu/game/sudoku.py,sha256=Al1DE4TDG6qeXUNfgtczK6HtVRxtUgr8Mf3rJ791k34,10406
|
|
47
|
+
absfuyu/game/tictactoe.py,sha256=JiCCZcJH-1jeNl-llR07gy563BNAZGW-zUkGDT7ArL0,9959
|
|
48
|
+
absfuyu/game/wordle.py,sha256=LdhGhFMChAqyQ0OoEcc5hTOxlcf4FCc0gkZGZADadSA,101577
|
|
49
|
+
absfuyu/general/__init__.py,sha256=3dhGKt97LEHOYSpJFsaQySb7DNekSlOW6qIKqhq1Oaw,473
|
|
50
|
+
absfuyu/general/content.py,sha256=SxtenA--NdwZjROyLhZ4oNyP7-54PqjZbh7SUROmhbA,17125
|
|
51
|
+
absfuyu/general/human.py,sha256=yhNb9ssXsm9vz8OlKugMy4HlgptVK1YQXxIFjGzAwtA,8100
|
|
52
|
+
absfuyu/general/shape.py,sha256=bvFnk_43I57X4_WEt8mnHz57a8vjT5SyL4SFybzCJBE,38620
|
|
53
|
+
absfuyu/general/tax.py,sha256=459qjkzFTLc2KogurJ2hAtFC_8V_W_8_WIfMLhBg3wk,10602
|
|
54
|
+
absfuyu/pkg_data/__init__.py,sha256=B50J5QK2YyBXyRUFKEt5Ylw_tP5bvle_Ri9Qbb6uMhc,5511
|
|
55
|
+
absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
|
|
56
|
+
absfuyu/pkg_data/deprecated.py,sha256=5bKzDY3dkC94B4kgU8-f9g2YEJ2VaAbosF3llawvliQ,4350
|
|
57
|
+
absfuyu/pkg_data/logo.py,sha256=TUNgcK19aeiGo2iUFUZ0pdQPhiOsBVjnswazDVGMbM8,160799
|
|
58
|
+
absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
|
|
59
|
+
absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
|
|
60
|
+
absfuyu/tools/__init__.py,sha256=BaSPViI9Jce6PVbtZM20U81cLeBGtDyqBeHWROxD89w,917
|
|
61
|
+
absfuyu/tools/checksum.py,sha256=ULuiU33bzyHAvKV1Aebgkp5nIHg7lLm2Eh314D72JmQ,5667
|
|
62
|
+
absfuyu/tools/converter.py,sha256=6c0Ikn1eS5kz0T7RDOeBUQmFUXBecETg_-Y4cGAGTqs,13567
|
|
63
|
+
absfuyu/tools/generator.py,sha256=nlQZKgDowoVOL-HrBVSoBa8nASjVxfi7PglP_iqwS1M,13476
|
|
64
|
+
absfuyu/tools/inspector.py,sha256=PKLIovfcXpWLx6HrBqjY7X0h3B5Iy5NOTbPQppIvnqw,23952
|
|
65
|
+
absfuyu/tools/keygen.py,sha256=VjGPVS89hNtQBDd0lf9AgQOauHpVP0W8BSyI_0WAbTU,7116
|
|
66
|
+
absfuyu/tools/obfuscator.py,sha256=qDQEHJeLrK858qgjXKJH8njLKrrBu3rjvSVUU3wrTb8,13672
|
|
67
|
+
absfuyu/tools/passwordlib.py,sha256=5ZFH9inAC4dnhY6pB8QhAJb3pkgoNgCRWBc9zX4dRAI,11081
|
|
68
|
+
absfuyu/tools/shutdownizer.py,sha256=zOblXdzHyhg5hzD4rOzklnKSmCaltySwjbY6-4uvg08,8550
|
|
69
|
+
absfuyu/tools/sw.py,sha256=EqIyEfG9xGe9A9N-XGhuRth212KXCHjehi6nCq8ZT8Y,21275
|
|
70
|
+
absfuyu/tools/web.py,sha256=WeopRynTkAojJgNQddvFSfoZ1jvC0_y2gAavrFC8RBU,1241
|
|
71
|
+
absfuyu/util/__init__.py,sha256=rtJQxvRLUKIGo9mLATukyCvWJQ24GuoIco2k_O51CmA,6619
|
|
72
|
+
absfuyu/util/api.py,sha256=OtQgP_7-00gTfUodO3u4s107cTHqgAcCj6M9K4xpkjA,4464
|
|
73
|
+
absfuyu/util/gui.py,sha256=sywqI7gn3V9C3OruWd5I6eetbPDEbR-Vo1P5SeqepLs,2606
|
|
74
|
+
absfuyu/util/json_method.py,sha256=GxNN7U8m74dOAu-QVnqG9HWLXpxgSa2XvgHERzV5R1w,2848
|
|
75
|
+
absfuyu/util/lunar.py,sha256=yFz3M_SJowbegJPspk6VKeXTdVFmzHb2PAmybtdJ22o,13631
|
|
76
|
+
absfuyu/util/path.py,sha256=HXJWx-__gkk6VkDPK1H1VqV55CWQl9KzMaVN5yqbzoE,23974
|
|
77
|
+
absfuyu/util/performance.py,sha256=GwQNnhJf3LkDGw_pgKDOd_dfBKQcNAUm-gEEN-Xsm2U,12095
|
|
78
|
+
absfuyu/util/shorten_number.py,sha256=FEQl1-rzbENTN1hlMRPrQ_qkefythdXAEfMSpMWFNUc,8313
|
|
79
|
+
absfuyu/util/text_table.py,sha256=KMG_iPORqM-xrfTut02_mwVDkJoseHlbJ6lfQkmQQoo,13352
|
|
80
|
+
absfuyu/util/zipped.py,sha256=zh3e6PyNB0FnPZ70mOnlHJPzR0FKMGEL3Jyqu10AsQk,3043
|
|
81
|
+
absfuyu-5.11.0.dist-info/METADATA,sha256=iCXdih0xNHnhafPM1kYN5twWkxvIog15WSv5P5orrVo,5673
|
|
82
|
+
absfuyu-5.11.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
83
|
+
absfuyu-5.11.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
|
|
84
|
+
absfuyu-5.11.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
|
|
85
|
+
absfuyu-5.11.0.dist-info/RECORD,,
|
absfuyu-5.9.0.dist-info/RECORD
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
absfuyu/__init__.py,sha256=LL_QzFEOT_l8pBq9qtV1VsYIm62_sLL9Da6_aIIeezs,600
|
|
2
|
-
absfuyu/__main__.py,sha256=G35IDwIqnvEBnkFbDFDWFWCrC9UluSJ0wfSPolwtmXw,595
|
|
3
|
-
absfuyu/logger.py,sha256=D1P_ATBYKLzqGhsQm7-04LmRE5hpp-rXedG8ajrWTbM,13043
|
|
4
|
-
absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
absfuyu/sort.py,sha256=wJgmtbcBybvSQEaenp1dFaCTlk0mdTBMs4Wx7iQTZ0I,3250
|
|
6
|
-
absfuyu/typings.py,sha256=3oys4bh0Oxocx7MhApMGC-Ccb4b2ys9GjNfAdG2xYtc,4662
|
|
7
|
-
absfuyu/version.py,sha256=IDgpcuosJze_Pk5syVV6au8uJzkYKa4RIvWZdBUjAtM,14490
|
|
8
|
-
absfuyu/cli/__init__.py,sha256=o3IcVfq5XeL6sTKDfv85KQA3SFDxEWtWF3ZBXR6MRfM,1181
|
|
9
|
-
absfuyu/cli/color.py,sha256=fNuFez7tXOtW8IUpGvLZJF-6VS75o_3vbt9iKB3qX6g,1139
|
|
10
|
-
absfuyu/cli/config_group.py,sha256=wNmu3cRk33QhnTi3uKRVFruRr47WVtv4KVfIyJqbjHs,1505
|
|
11
|
-
absfuyu/cli/do_group.py,sha256=Med-dTbfl8Tp6eitqe1Z9AOBSzN_03pQgmZ9pYwhH5A,2720
|
|
12
|
-
absfuyu/cli/game_group.py,sha256=N_FDuo3PV4p-dYPymrCrXztN9kICvZNKAqQS3mzEWzE,2623
|
|
13
|
-
absfuyu/cli/tool_group.py,sha256=oic5jF9HOcENgrTxzmAafGo8oJIDv6f1E_4XxntJ27g,3416
|
|
14
|
-
absfuyu/config/__init__.py,sha256=xwEes0x79PYhcFdSvBHVNBpBGdcMwj0QJDdRhW6v9Fs,8238
|
|
15
|
-
absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
|
|
16
|
-
absfuyu/core/__init__.py,sha256=jjhmfXr7tACavHwQZKH81qLyL2UpidGvhbkCKWvG9SY,1188
|
|
17
|
-
absfuyu/core/baseclass.py,sha256=TRX7jdsN2vaiu8YTEey-vDnrC76BmAzUl-3eBUsxpg8,34824
|
|
18
|
-
absfuyu/core/baseclass2.py,sha256=8Ot04MVpC3U4bE0neU6bz3kQvXcUYDqz1X6LKoEpanA,5367
|
|
19
|
-
absfuyu/core/decorator.py,sha256=iXosG3xDjzbvOcpxuoZDXPA0uoxxHKVRtsUoG5Kk5CQ,4176
|
|
20
|
-
absfuyu/core/docstring.py,sha256=U5KmhPnEAALJgLkXkFEP8NPTZpwk7PXAWVLojGKlgO4,5791
|
|
21
|
-
absfuyu/core/dummy_cli.py,sha256=B2vMByIjSIU2G54GfDzijSehuHiYhV9HJRr0H6brR0Y,1884
|
|
22
|
-
absfuyu/core/dummy_func.py,sha256=pueIwH4e48uk9w6Lwz1e9KfciA3NbOliQvvq5Oj2_v4,1426
|
|
23
|
-
absfuyu/dxt/__init__.py,sha256=1do3lIV6xv1jX0Vev-KOU0k3A2N7T1kxr6oY24cju3I,986
|
|
24
|
-
absfuyu/dxt/dictext.py,sha256=fcgpKyKli8REv6BoUDBF603gptA_vPxHHDPcNfmOjSU,6227
|
|
25
|
-
absfuyu/dxt/dxt_support.py,sha256=nWLGhGeuSugUAVGRMc4USMGPn4I4unXpXxom0MIajHM,2109
|
|
26
|
-
absfuyu/dxt/intext.py,sha256=9zAZ4HFl3-UWb0bWsunXlAD2wJ2JoVKK2pBR3ACmC_s,17837
|
|
27
|
-
absfuyu/dxt/listext.py,sha256=RA1sfALcNudXRWMaI2qlW3yfvk9nSmRNDuxNYj2sTcY,24497
|
|
28
|
-
absfuyu/dxt/strext.py,sha256=5-cvRw9aoeMkm6g5ayB0JjufCkeggvbDRgKdMWtEZJE,16275
|
|
29
|
-
absfuyu/extra/__init__.py,sha256=IbdGxdDzNSHzcO4oOD7ggJiHz9x8dw88qPQ9UIDhtHw,182
|
|
30
|
-
absfuyu/extra/beautiful.py,sha256=MrZrBpDl2e8gXD44Th_wDWRKJzlDOxH5rskVaJqPkuE,8137
|
|
31
|
-
absfuyu/extra/data_analysis.py,sha256=MGhtZzEdE2UsFMXcbXEne39TqG_zkefOpGFu1aht350,499
|
|
32
|
-
absfuyu/extra/pdf.py,sha256=Pt9oyc_AmAiUYLlgVSgGlhFzOgEqwgjgGp5IiGu8vwE,2483
|
|
33
|
-
absfuyu/extra/rclone.py,sha256=UjjFgthTNfBMLyXZZKz0pp5qvGhCWc-6cQd0-Baq0f0,8484
|
|
34
|
-
absfuyu/extra/xml.py,sha256=2Dwunm29G8IcHn29lIVdWAXgIk4HfN5WHI3nnRoIkLU,2157
|
|
35
|
-
absfuyu/extra/da/__init__.py,sha256=AS-M5CLOz9a2ySyZclo62zuvwH8LhjR12F6s_pqgoVk,1886
|
|
36
|
-
absfuyu/extra/da/dadf.py,sha256=sm7TWdK5pf9oE_FocwTFYJN3FasPYL7iDQVqbTJk49I,44234
|
|
37
|
-
absfuyu/extra/da/dadf_base.py,sha256=GQywuAOM_L6D5f43dBYeDU_0pThVaRGAvD5UsD5yXh8,5167
|
|
38
|
-
absfuyu/extra/da/df_func.py,sha256=kMnhc7gPqIzsZVVCXNqR1VOPWNVj95BRry1eNv3ol5Q,2524
|
|
39
|
-
absfuyu/extra/da/mplt.py,sha256=c76Z8P8Yym2r2_yHz_vkYNfmBkbWptFIuujZfym7j3w,6305
|
|
40
|
-
absfuyu/fun/__init__.py,sha256=bWoyYZLNZ7vGZI3ffLIou7kEEyLe0eKR8K9UScbEM64,5605
|
|
41
|
-
absfuyu/fun/rubik.py,sha256=Yh1j0A1lsRawe2jTwWow_9OSD7N6zH_cAZi_l9OvjoA,29677
|
|
42
|
-
absfuyu/fun/tarot.py,sha256=4T3Mnbxp84wCuZrij3hWRAmnQoie3XJx8T2Bel1X2FE,2401
|
|
43
|
-
absfuyu/game/__init__.py,sha256=6-9bmXQCNBTJD9jjeXLF9hMxYK9c3oRkOoWVOjbj19o,4691
|
|
44
|
-
absfuyu/game/game_stat.py,sha256=uhAY_NZTxDfLh9r5V4eRviGK738qxqK48w-4rTD--so,1236
|
|
45
|
-
absfuyu/game/sudoku.py,sha256=g5A_CvyJPC6XPVqpnOdY34EVrd8F2aGqhVpmoijmcpU,10405
|
|
46
|
-
absfuyu/game/tictactoe.py,sha256=ByGs3CHIUY6l7u5HNzV2Ud7qd_h3x_MeX7H38ti2r_U,9958
|
|
47
|
-
absfuyu/game/wordle.py,sha256=sjiXQhl7RUdVKjqyjnTzarreBkcW_3kANv-FJK86sAo,101576
|
|
48
|
-
absfuyu/general/__init__.py,sha256=esJ_zX4-W3VE5psYwEC9j8V51AnGf13meQ12kBmFrZY,472
|
|
49
|
-
absfuyu/general/content.py,sha256=mL8qAQ2cjLxDMCqna59tfGJm5RFBoB39F8HNyaLfCcA,17124
|
|
50
|
-
absfuyu/general/human.py,sha256=339fd-2nXp7m2cMxTWbRXQXuLqDsM4X3uJM9763Nh20,8099
|
|
51
|
-
absfuyu/general/shape.py,sha256=5ceXShPcg6uYuobJSKZs7msSJ2gNoLigijYNXdGINtc,38619
|
|
52
|
-
absfuyu/pkg_data/__init__.py,sha256=hM-IrIE9myUhmJwXWVcEtmzkZ9alHAc0iV1PJ5Cmkx8,5510
|
|
53
|
-
absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
|
|
54
|
-
absfuyu/pkg_data/deprecated.py,sha256=8ti-TDB6Ur-5skcUkx0l-4I4SNRLJ7iquijf2pFMN7Q,4349
|
|
55
|
-
absfuyu/pkg_data/logo.py,sha256=gNSBKCUi8eEfBPuS60GwtLsxj918S9tuCR7RZN5B4ng,160798
|
|
56
|
-
absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
|
|
57
|
-
absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
|
|
58
|
-
absfuyu/tools/__init__.py,sha256=hGmgseSpysp30fU9Xk8yfA3G9DCERWSC9PegoDPcwsI,916
|
|
59
|
-
absfuyu/tools/checksum.py,sha256=jFp_-LZITPxZI2zBpsXR0CzJ7kTxucFUd4TPq2hBnso,5666
|
|
60
|
-
absfuyu/tools/converter.py,sha256=19yf3kN3aOmPT5ezsbjmdvwPDdS1iIeuH3WkrS8JBpM,13566
|
|
61
|
-
absfuyu/tools/generator.py,sha256=J7xaRYiLmtopaJNCOgn1wimDi0vbSnDoczZd2SQ7rpk,13475
|
|
62
|
-
absfuyu/tools/inspector.py,sha256=SqKMxtsY89EdENHl80YG-WZ2AkEClN_XW1eeH3fQfsU,23951
|
|
63
|
-
absfuyu/tools/keygen.py,sha256=xtf98RYJaDDmrKmj1PLXBBGKLwXQVaLUpa-Nf7bHDuc,7115
|
|
64
|
-
absfuyu/tools/obfuscator.py,sha256=lCZPJTQDa8xgOkJOOJ218tTJCV3mcuKRp_73oURHYOs,13671
|
|
65
|
-
absfuyu/tools/passwordlib.py,sha256=3FLOqF_aS40agDDGPVuF7MXApY_24ooJowFWrGbCPBQ,11080
|
|
66
|
-
absfuyu/tools/shutdownizer.py,sha256=FXrK0qC6H8T0A_PTXvnbqdK4mvWP_ov1J9bzSKlxME8,8549
|
|
67
|
-
absfuyu/tools/sw.py,sha256=HIS5QajtzxPky8FQOZyHRB-GBo4-uMA7wUTV6uceUSs,17443
|
|
68
|
-
absfuyu/tools/web.py,sha256=G2J8w3eDGGtxFaqcu1ZKUkybQSoqTkhtwqaQ6K-CoaM,1240
|
|
69
|
-
absfuyu/util/__init__.py,sha256=T7rZdsVclAc-V5zIsAcx2YXcVYUx-V9OuCIyqqY5Y_8,6618
|
|
70
|
-
absfuyu/util/api.py,sha256=Wzkbo_kqYuDlTC8KxzomYT2Mvw_7puSzTjVw98XkpVo,4463
|
|
71
|
-
absfuyu/util/gui.py,sha256=YarSl0PW_iP1BnqRG-FtwDP7vzlvLgbnq2NaEHA7yxM,764
|
|
72
|
-
absfuyu/util/json_method.py,sha256=jXTaTwsWRwhX7qepuD6aRxOyqcBicjfRFfqiUu1r4cw,2847
|
|
73
|
-
absfuyu/util/lunar.py,sha256=r_lI_sa1yy3ug5_8ak9HmWqTmv5nUKBNRzjRD35Q6do,13630
|
|
74
|
-
absfuyu/util/path.py,sha256=C_fRM1GPxrQLiYKY9V9fz_6JvIqHjhTvSaT4YwcPjoc,23973
|
|
75
|
-
absfuyu/util/performance.py,sha256=Bw4HE79JfmktamYzEEpbS67lIjM3NlgE0WTSZdHLs7k,12094
|
|
76
|
-
absfuyu/util/shorten_number.py,sha256=FtgQI5I34lEU8t2abRSdjgFbzP-Agy-15kMmPVLgoig,8312
|
|
77
|
-
absfuyu/util/text_table.py,sha256=-Zegyylat9nSRGBSiPRq_clNeFn1d8UKMZ-b1XPcHqI,13351
|
|
78
|
-
absfuyu/util/zipped.py,sha256=U8nwD-FLAJWwhwAjsCCIhnCJJecPe8amb2tCvKgrT68,3042
|
|
79
|
-
absfuyu-5.9.0.dist-info/METADATA,sha256=DC_m9Xim-d4Xhi9KIuNMPupra2_B4VGitEvjh9Jut2A,5672
|
|
80
|
-
absfuyu-5.9.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
81
|
-
absfuyu-5.9.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
|
|
82
|
-
absfuyu-5.9.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
|
|
83
|
-
absfuyu-5.9.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|