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.

Files changed (81) hide show
  1. absfuyu/__init__.py +1 -1
  2. absfuyu/__main__.py +2 -2
  3. absfuyu/cli/__init__.py +2 -2
  4. absfuyu/cli/color.py +2 -2
  5. absfuyu/cli/config_group.py +2 -2
  6. absfuyu/cli/do_group.py +2 -2
  7. absfuyu/cli/game_group.py +20 -2
  8. absfuyu/cli/tool_group.py +2 -2
  9. absfuyu/config/__init__.py +2 -2
  10. absfuyu/core/__init__.py +2 -2
  11. absfuyu/core/baseclass.py +20 -3
  12. absfuyu/core/baseclass2.py +2 -2
  13. absfuyu/core/decorator.py +2 -2
  14. absfuyu/core/docstring.py +2 -2
  15. absfuyu/core/dummy_cli.py +2 -2
  16. absfuyu/core/dummy_func.py +2 -2
  17. absfuyu/dxt/__init__.py +2 -2
  18. absfuyu/dxt/dictext.py +2 -2
  19. absfuyu/dxt/dxt_support.py +2 -2
  20. absfuyu/dxt/intext.py +2 -2
  21. absfuyu/dxt/listext.py +13 -18
  22. absfuyu/dxt/strext.py +2 -2
  23. absfuyu/extra/__init__.py +2 -2
  24. absfuyu/extra/beautiful.py +2 -2
  25. absfuyu/extra/da/__init__.py +2 -2
  26. absfuyu/extra/da/dadf.py +2 -2
  27. absfuyu/extra/da/dadf_base.py +2 -2
  28. absfuyu/extra/da/df_func.py +2 -2
  29. absfuyu/extra/da/mplt.py +2 -2
  30. absfuyu/extra/data_analysis.py +2 -2
  31. absfuyu/extra/pdf.py +2 -2
  32. absfuyu/extra/rclone.py +2 -2
  33. absfuyu/extra/xml.py +2 -2
  34. absfuyu/fun/__init__.py +2 -2
  35. absfuyu/fun/rubik.py +2 -2
  36. absfuyu/fun/tarot.py +2 -2
  37. absfuyu/game/__init__.py +2 -2
  38. absfuyu/game/game_stat.py +2 -2
  39. absfuyu/game/schulte.py +78 -0
  40. absfuyu/game/sudoku.py +2 -2
  41. absfuyu/game/tictactoe.py +2 -2
  42. absfuyu/game/wordle.py +2 -2
  43. absfuyu/general/__init__.py +2 -2
  44. absfuyu/general/content.py +2 -2
  45. absfuyu/general/human.py +2 -2
  46. absfuyu/general/shape.py +2 -2
  47. absfuyu/general/tax.py +324 -0
  48. absfuyu/logger.py +2 -2
  49. absfuyu/pkg_data/__init__.py +2 -2
  50. absfuyu/pkg_data/deprecated.py +2 -2
  51. absfuyu/pkg_data/logo.py +2 -2
  52. absfuyu/sort.py +2 -2
  53. absfuyu/tools/__init__.py +2 -2
  54. absfuyu/tools/checksum.py +2 -2
  55. absfuyu/tools/converter.py +2 -2
  56. absfuyu/tools/generator.py +2 -2
  57. absfuyu/tools/inspector.py +2 -2
  58. absfuyu/tools/keygen.py +2 -2
  59. absfuyu/tools/obfuscator.py +2 -2
  60. absfuyu/tools/passwordlib.py +2 -2
  61. absfuyu/tools/shutdownizer.py +2 -2
  62. absfuyu/tools/sw.py +138 -7
  63. absfuyu/tools/web.py +2 -2
  64. absfuyu/typings.py +2 -2
  65. absfuyu/util/__init__.py +2 -2
  66. absfuyu/util/api.py +2 -2
  67. absfuyu/util/gui.py +62 -3
  68. absfuyu/util/json_method.py +2 -2
  69. absfuyu/util/lunar.py +2 -2
  70. absfuyu/util/path.py +2 -2
  71. absfuyu/util/performance.py +2 -2
  72. absfuyu/util/shorten_number.py +2 -2
  73. absfuyu/util/text_table.py +2 -2
  74. absfuyu/util/zipped.py +2 -2
  75. absfuyu/version.py +2 -2
  76. {absfuyu-5.9.0.dist-info → absfuyu-5.11.0.dist-info}/METADATA +1 -1
  77. absfuyu-5.11.0.dist-info/RECORD +85 -0
  78. absfuyu-5.9.0.dist-info/RECORD +0 -83
  79. {absfuyu-5.9.0.dist-info → absfuyu-5.11.0.dist-info}/WHEEL +0 -0
  80. {absfuyu-5.9.0.dist-info → absfuyu-5.11.0.dist-info}/entry_points.txt +0 -0
  81. {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.9.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
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 `_MEIPASS` folder. During normal execution, it resolves the path
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
- # Key System
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
@@ -3,8 +3,8 @@ Absfuyu: Web
3
3
  ------------
4
4
  Web, ``request``, ``BeautifulSoup`` stuff
5
5
 
6
- Version: 5.9.0
7
- Date updated: 19/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Library
absfuyu/typings.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Pre-defined typing
5
5
 
6
- Version: 5.9.0
7
- Date updated: 19/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/util/__init__.py CHANGED
@@ -3,8 +3,8 @@ Absufyu: Utilities
3
3
  ------------------
4
4
  Some random utilities
5
5
 
6
- Version: 5.9.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/util/api.py CHANGED
@@ -3,8 +3,8 @@ Absufyu: API
3
3
  ------------
4
4
  Fetch data stuff
5
5
 
6
- Version: 5.9.0
7
- Date updated: 19/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/util/gui.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: GUI
3
3
  ------------
4
4
  Custom tkinter GUI
5
5
 
6
- Version: 5.9.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
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
- def __init__(self, title: str | None = None) -> None:
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()
@@ -3,8 +3,8 @@ Absfuyu: Json Method
3
3
  --------------------
4
4
  ``.json`` file handling
5
5
 
6
- Version: 5.9.0
7
- Date updated: 19/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/util/lunar.py CHANGED
@@ -4,8 +4,8 @@ Absfuyu: Lunar calendar
4
4
  -----------------------
5
5
  Convert to lunar calendar
6
6
 
7
- Version: 5.9.0
8
- Date updated: 19/09/2025 (dd/mm/yyyy)
7
+ Version: 5.11.0
8
+ Date updated: 30/09/2025 (dd/mm/yyyy)
9
9
 
10
10
  Source:
11
11
  -------
absfuyu/util/path.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Path
3
3
  -------------
4
4
  Path related
5
5
 
6
- Version: 5.9.0
7
- Date updated: 19/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
 
9
9
  Feature:
10
10
  --------
@@ -3,8 +3,8 @@ Absfuyu: Performance
3
3
  --------------------
4
4
  Performance Check
5
5
 
6
- Version: 5.9.0
7
- Date updated: 19/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
 
9
9
  Feature:
10
10
  --------
@@ -3,8 +3,8 @@ Absfuyu: Shorten number
3
3
  -----------------------
4
4
  Short number base on suffixes
5
5
 
6
- Version: 5.9.0
7
- Date updated: 19/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -3,8 +3,8 @@ Absufyu: Utilities
3
3
  ------------------
4
4
  Text table
5
5
 
6
- Version: 5.9.0
7
- Date updated: 19/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/util/zipped.py CHANGED
@@ -4,8 +4,8 @@ Absfuyu: Zipped
4
4
  Zipping stuff
5
5
  (deprecated, use absfuyu.util.path.Directory)
6
6
 
7
- Version: 5.9.0
8
- Date updated: 19/09/2025 (dd/mm/yyyy)
7
+ Version: 5.11.0
8
+ Date updated: 30/09/2025 (dd/mm/yyyy)
9
9
  """
10
10
 
11
11
  # Module level
absfuyu/version.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Version
3
3
  ----------------
4
4
  Package versioning module
5
5
 
6
- Version: 5.9.0
7
- Date updated: 19/09/2025 (dd/mm/yyyy)
6
+ Version: 5.11.0
7
+ Date updated: 30/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: absfuyu
3
- Version: 5.9.0
3
+ Version: 5.11.0
4
4
  Summary: A small collection of code
5
5
  Project-URL: Homepage, https://github.com/AbsoluteWinter/absfuyu-public
6
6
  Project-URL: Documentation, https://absolutewinter.github.io/absfuyu-docs/
@@ -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,,
@@ -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,,