absfuyu 5.10.0__py3-none-any.whl → 5.12.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 (82) 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 +2 -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 +3 -3
  16. absfuyu/core/dummy_func.py +2 -2
  17. absfuyu/dxt/__init__.py +2 -2
  18. absfuyu/dxt/dictext.py +186 -6
  19. absfuyu/dxt/dxt_support.py +2 -2
  20. absfuyu/dxt/intext.py +2 -2
  21. absfuyu/dxt/listext.py +320 -7
  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 +73 -3
  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 +2 -2
  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 +344 -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 +5 -2
  65. absfuyu/util/__init__.py +2 -2
  66. absfuyu/util/api.py +2 -2
  67. absfuyu/util/cli.py +118 -0
  68. absfuyu/util/gui.py +2 -2
  69. absfuyu/util/json_method.py +2 -2
  70. absfuyu/util/lunar.py +2 -2
  71. absfuyu/util/path.py +2 -2
  72. absfuyu/util/performance.py +2 -2
  73. absfuyu/util/shorten_number.py +2 -2
  74. absfuyu/util/text_table.py +2 -2
  75. absfuyu/util/zipped.py +2 -2
  76. absfuyu/version.py +2 -2
  77. {absfuyu-5.10.0.dist-info → absfuyu-5.12.0.dist-info}/METADATA +1 -1
  78. absfuyu-5.12.0.dist-info/RECORD +86 -0
  79. absfuyu-5.10.0.dist-info/RECORD +0 -84
  80. {absfuyu-5.10.0.dist-info → absfuyu-5.12.0.dist-info}/WHEEL +0 -0
  81. {absfuyu-5.10.0.dist-info → absfuyu-5.12.0.dist-info}/entry_points.txt +0 -0
  82. {absfuyu-5.10.0.dist-info → absfuyu-5.12.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.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/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.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/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.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -42,12 +42,15 @@ except ImportError:
42
42
  # Type
43
43
  # ---------------------------------------------------------------------------
44
44
  # Types where neither is possible are invariant
45
+ # Type safety must be strict
45
46
  T = TypeVar("T") # Type invariant
46
47
  # Type variables that are covariant can be substituted
47
48
  # with a more specific type without causing errors
49
+ # Safe to treat a Box[int] as a Box[object]
48
50
  T_co = TypeVar("T_co", covariant=True) # Type covariant
49
51
  # Type variables that are contravariant can be substituted
50
52
  # with a more general type without causing errors
53
+ # Safe to use a Box[object] where a Box[int] is needed
51
54
  T_contra = TypeVar("T_contra", contravariant=True) # Type contravariant
52
55
 
53
56
  KT = TypeVar("KT")
absfuyu/util/__init__.py CHANGED
@@ -3,8 +3,8 @@ Absufyu: Utilities
3
3
  ------------------
4
4
  Some random utilities
5
5
 
6
- Version: 5.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/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.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/util/cli.py ADDED
@@ -0,0 +1,118 @@
1
+ """
2
+ Absfuyu: CLI
3
+ ------------
4
+ Custom Argument Parser
5
+
6
+ Version: 5.12.0
7
+ Date updated: 17/10/2025 (dd/mm/yyyy)
8
+ """
9
+
10
+ # Module level
11
+ # ---------------------------------------------------------------------------
12
+ __all__ = ["FuyuArgumentParser"]
13
+
14
+
15
+ # Library
16
+ # ---------------------------------------------------------------------------
17
+ import logging
18
+ import sys
19
+ from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
20
+ from typing import Any, Callable
21
+
22
+
23
+ # Class
24
+ # ---------------------------------------------------------------------------
25
+ class FuyuArgumentParser(ArgumentParser):
26
+ """
27
+ Usage:
28
+ ------
29
+ >>> import sys
30
+ >>> args = FuyuArgumentParser()
31
+ >>> args.start()
32
+ """
33
+
34
+ def __init__(
35
+ self,
36
+ prog: str | None = None,
37
+ description: str | None = None,
38
+ epilog: str | None = None,
39
+ version: str = "0.0.1",
40
+ formatter_class: Any = ArgumentDefaultsHelpFormatter,
41
+ prefix_chars: str = "-",
42
+ argument_default: Any = None,
43
+ conflict_handler: str = "error",
44
+ add_help: bool = True,
45
+ allow_abbrev: bool = True,
46
+ exit_on_error: bool = True,
47
+ ) -> None:
48
+ # Desc
49
+ if description is None:
50
+ description = f"Absfuyu CLI {version}"
51
+
52
+ # Default
53
+ self._default_args = ["--help"]
54
+
55
+ # Super
56
+ super().__init__(
57
+ prog=prog,
58
+ description=description,
59
+ epilog=epilog,
60
+ formatter_class=formatter_class,
61
+ prefix_chars=prefix_chars,
62
+ argument_default=argument_default,
63
+ conflict_handler=conflict_handler,
64
+ add_help=add_help,
65
+ allow_abbrev=allow_abbrev,
66
+ exit_on_error=exit_on_error,
67
+ )
68
+
69
+ # Add version
70
+ self.add_argument("-v", "--version", action="version", version=f"%(prog)s {version}")
71
+
72
+ # Add log level
73
+ _ll_val = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]
74
+ self.add_argument(
75
+ "-ll",
76
+ "--log-level",
77
+ metavar="LOG_LEVEL",
78
+ dest="log_level",
79
+ choices=_ll_val,
80
+ default="ERROR",
81
+ help=f"Log level: {', '.join(_ll_val)}",
82
+ )
83
+
84
+ def _fuyu_set_log_level(self, log_level: str = "ERROR") -> None:
85
+ log_levels = {
86
+ "DEBUG": logging.DEBUG,
87
+ "INFO": logging.INFO,
88
+ "WARNING": logging.WARNING,
89
+ "ERROR": logging.ERROR,
90
+ "CRITICAL": logging.CRITICAL,
91
+ }
92
+ logging.basicConfig(
93
+ level=log_levels[log_level],
94
+ format="[%(asctime)s] [%(module)s] [%(name)s] [%(funcName)s] [%(levelname)-s] %(message)s",
95
+ datefmt="%Y-%m-%d %H:%M:%S",
96
+ )
97
+
98
+ def start(self, default: Callable[[], Any] | None = None):
99
+ """
100
+ Quick start for argument parser
101
+
102
+ Parameters
103
+ ----------
104
+ default : Callable[[], Any] | None, optional
105
+ | Default callable to run, by default ``None``
106
+ | Shows help on default behavior (default=None)
107
+
108
+ Returns
109
+ -------
110
+ Namespace
111
+ Namespace
112
+ """
113
+ if default is None:
114
+ args = self.parse_args(args=None if sys.argv[1:] else self._default_args)
115
+ else:
116
+ args = self.parse_args(args=None if sys.argv[1:] else default())
117
+ self._fuyu_set_log_level(getattr(args, "log_level", "ERROR"))
118
+ return args
absfuyu/util/gui.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: GUI
3
3
  ------------
4
4
  Custom tkinter GUI
5
5
 
6
- Version: 5.10.0
7
- Date updated: 24/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -3,8 +3,8 @@ Absfuyu: Json Method
3
3
  --------------------
4
4
  ``.json`` file handling
5
5
 
6
- Version: 5.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/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.10.0
8
- Date updated: 23/09/2025 (dd/mm/yyyy)
7
+ Version: 5.12.0
8
+ Date updated: 17/10/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.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/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.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/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.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/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.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/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.10.0
8
- Date updated: 23/09/2025 (dd/mm/yyyy)
7
+ Version: 5.12.0
8
+ Date updated: 17/10/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.10.0
7
- Date updated: 23/09/2025 (dd/mm/yyyy)
6
+ Version: 5.12.0
7
+ Date updated: 17/10/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.10.0
3
+ Version: 5.12.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,86 @@
1
+ absfuyu/__init__.py,sha256=3X9Yjm0yi4VWJs-Ad-WXkRQnGTSS07kKa7CaPUv15K0,601
2
+ absfuyu/__main__.py,sha256=OiWiRoudnoIWxsvuaqZ7I606i-x3y4pVw5jfdi7Hzh8,596
3
+ absfuyu/logger.py,sha256=sck2iGnU7_zzMyQvy_crz2r4fJjEi11dUlx68srhX_0,13044
4
+ absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ absfuyu/sort.py,sha256=h_T8yTR__gi1a6B9Wy5kj5nZBULJtkE4I-YU7eHoa3A,3251
6
+ absfuyu/typings.py,sha256=_SI2QZuXG-LPqVfxbez9oXiv_ukYwChR3ZFYxTwbWPs,4794
7
+ absfuyu/version.py,sha256=Pazz6Lb0-iN3x402Axv5eDsJYSZ6mMojhXCsx4fXaVU,14491
8
+ absfuyu/cli/__init__.py,sha256=NUU5OpiRCiRIZqNd2XYmCsGSICnAXHhK479ulI2ivwE,1182
9
+ absfuyu/cli/color.py,sha256=UiUSJ35wy3jnBi4hdLFcvNShif66fYyUurfoOG9hqx4,1140
10
+ absfuyu/cli/config_group.py,sha256=Mt7UY05JxVwPdaKFXEVbFn2bD1qBTv0odwfkwp-A0U4,1506
11
+ absfuyu/cli/do_group.py,sha256=zcvpVGrdNNQT6KrpS-Htn8akZL_6akaZSOIfVMq0hb0,2721
12
+ absfuyu/cli/game_group.py,sha256=yPy3Ju-i98ZpRQSPlpYT3aJE9-6thTSBmg_qhSz2yqA,3017
13
+ absfuyu/cli/tool_group.py,sha256=XVTvAchTRWX3aXc3WWKrEAe-bHUKzV1V-Aqmq9Y448M,3417
14
+ absfuyu/config/__init__.py,sha256=ms89fqh1PtXWthRrgLFEZrBXvLsMceDRXcFxpGh9o_A,8239
15
+ absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
16
+ absfuyu/core/__init__.py,sha256=5CHKzO8tQSxXBTEKLdrDvyhVdAa4CguWsITFaDqOOxk,1189
17
+ absfuyu/core/baseclass.py,sha256=zwMOh71j8xVTQoabkcn-yFiPWv_Nmc7wBx0MyogN9e4,35234
18
+ absfuyu/core/baseclass2.py,sha256=N9GgsCGI3K8QbHpR9wszSRsGD3_lpKgMMcsg-9PUGeY,5368
19
+ absfuyu/core/decorator.py,sha256=6JCS6NNhsWjqfd7LzNuexNfIWgS2f7REk3YSaIvxDiQ,4177
20
+ absfuyu/core/docstring.py,sha256=xBS5cnvxARjA-ZU3cWJt1Zgv9-Ejd7PsjVWy2Qd43oI,5792
21
+ absfuyu/core/dummy_cli.py,sha256=88wzxgmI37WvOKX57tV4B3vRrEDCGi1zGyPds3xONcE,1878
22
+ absfuyu/core/dummy_func.py,sha256=mGOXHNEp8BZSPeaL7LKfDuYat-_tqAR9dycxhMeZwmI,1427
23
+ absfuyu/dxt/__init__.py,sha256=mLpCPLlgnUGn_HMoCDi3MGER_XgbqiUbEJzDLDW8ht4,987
24
+ absfuyu/dxt/dictext.py,sha256=OrSbeTEghiAIbQfaUYEUeC_QwfSQ_BVEEDmP_8eITwM,12209
25
+ absfuyu/dxt/dxt_support.py,sha256=UVd2IwRmE5e57ZDBYJiWfxtWH8Ageey_uKFBfD85ChU,2110
26
+ absfuyu/dxt/intext.py,sha256=8Xt5XUvoYeqMCk9o_K2OIAc7ZfVzQM_cmNS7HKKUa-w,17838
27
+ absfuyu/dxt/listext.py,sha256=3YIwPDJyK0MO0c3KBIyyeyrXCEYczQ97ButP3uXuass,32338
28
+ absfuyu/dxt/strext.py,sha256=DpwnKBSbUw3QGE8u2wko0rOkZOPrvMMTwSC3-o4bzh0,16276
29
+ absfuyu/extra/__init__.py,sha256=AWZdP4P7SNngRCcIAbGs0YvFCEG4KQUhsjjcL1WmTys,183
30
+ absfuyu/extra/beautiful.py,sha256=060QIgG4x5pSfxJlu5zoE3F_qhmUoLTxwbm37H0JJUI,8138
31
+ absfuyu/extra/data_analysis.py,sha256=81PuT-FUCahQT3wxaYs5kD5zRV60yreW2fflyZukLdI,500
32
+ absfuyu/extra/pdf.py,sha256=wQv0QTow_zMsnGxUfqvkBOLQvS203sZlQemlZ482wKI,2484
33
+ absfuyu/extra/rclone.py,sha256=xcX1DZNFqnA_BKJ87Tvw0nbH2CH5pg63F6QWDKEiek4,8485
34
+ absfuyu/extra/xml.py,sha256=PYeg-aoonOjaEK6jKhfzkg1YJq88JXvP-QhCi_KMazM,2158
35
+ absfuyu/extra/da/__init__.py,sha256=_ygcscmyrqGq4L-1Pl6_rWp40c67Pl7M13ldPRJJYDE,1887
36
+ absfuyu/extra/da/dadf.py,sha256=qGLTmX-enShlHFnvaab0YuGtK_atkJwGqPAcRQEXCEI,46431
37
+ absfuyu/extra/da/dadf_base.py,sha256=bsjQ7BrhVyBauavDx9Zb6kI98_-pBDn3QVIuWv1ZOWw,5168
38
+ absfuyu/extra/da/df_func.py,sha256=J1GFJTTH_1iouhyVtXwA5ap7kgiyx4gajvGImLKmfu8,2525
39
+ absfuyu/extra/da/mplt.py,sha256=6Fk_nr4NV1C8KfzI3u1wwWsShcFcZtsR9yIZTLK3D34,6306
40
+ absfuyu/fun/__init__.py,sha256=u9YoCRz0BFDC5LgKgWrMZhMRFrQOR8QlSOWBCgAxjcw,5606
41
+ absfuyu/fun/rubik.py,sha256=hl6vi8EfiAALYJeJvh19stcxLBD2ipC15r5SjC9Oh0w,29678
42
+ absfuyu/fun/tarot.py,sha256=VuiCtC8uXy7tXpIyK008eP-HKQwU9Al502ML45S7D2U,2402
43
+ absfuyu/game/__init__.py,sha256=CX5NngkqCpT3Vl_zgeDHqgtWWiCutCCuUNI4bVfAXpY,4692
44
+ absfuyu/game/game_stat.py,sha256=HJfOs6J_7LCmTB1slWTYUt4QbipFscJm18PQBbmUJ2U,1237
45
+ absfuyu/game/schulte.py,sha256=s7-LvQA3lHUaB9-JyWKp6m1ysNwyXJzt8kReLuco3uY,2706
46
+ absfuyu/game/sudoku.py,sha256=BvQdZOV-ASCBJkXRqtJuqbwkdT5DhiqtMooTK2LqTmM,10406
47
+ absfuyu/game/tictactoe.py,sha256=a9ElnbWSvMNT9FgkdJzI0Zr36iS832o4QtHkhm72O_Y,9959
48
+ absfuyu/game/wordle.py,sha256=Wf-t6TiXWj1oeYqpwXEzlDdYpykMWrufr9W13Uft2wk,101577
49
+ absfuyu/general/__init__.py,sha256=LtQVNhFIOpkY2XJtFFoKU5VEZzhVVNTiGszdwpqLcKQ,473
50
+ absfuyu/general/content.py,sha256=C_1LPaxL7aDQMIkTJc2J7mfJquafZoqE9PZpw5FatIU,17125
51
+ absfuyu/general/human.py,sha256=MT0rzFHHFep5gAhSmFjokgzkZmv1LS-ITXNieRcVdvY,8100
52
+ absfuyu/general/shape.py,sha256=p9IblFDEiYDbNKamUwq-3NDUFr6woOJFgqKFL2vsPaY,38620
53
+ absfuyu/general/tax.py,sha256=ub5rWH4Ip5DeO3aKCbg__wRR5WZv0X_4O8eOT9TKDW4,11129
54
+ absfuyu/pkg_data/__init__.py,sha256=yZcEE6B-gcAvqDq_7SfR6cZ6ZdYKhsUsMADIfah9xbM,5511
55
+ absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
56
+ absfuyu/pkg_data/deprecated.py,sha256=qm5m0l8Fu2AbNhDGH5MZKRuC1Q-lZFiXeKeq-tgtLSo,4350
57
+ absfuyu/pkg_data/logo.py,sha256=2jSH90s1qkwX1AC6uuzFBqRkCUtH7XnzLLHElpJndhk,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=ArHZ8LS10kgK0EXtdcGXM0PYHCyFUede0pLVBpcBB50,917
61
+ absfuyu/tools/checksum.py,sha256=jbUhYCDtWdgdfEvnSc4H7WDqOWo_FIXMoZHZTEzCuk0,5667
62
+ absfuyu/tools/converter.py,sha256=dvmyhL8T7jMHLTHCfgseWuGVxUpRdipEeMfdkjluaiA,13567
63
+ absfuyu/tools/generator.py,sha256=lWCzMmgBkwL1YDjdtuL0Pb_2qVKtj9IBNx5121yCPnQ,13476
64
+ absfuyu/tools/inspector.py,sha256=nqF3RS6R6cqVm3GFOPH7T3CxnhKiaO5AU31mNyfZdTs,23952
65
+ absfuyu/tools/keygen.py,sha256=LPUU0M9yN1MqpMCGPMvmflfXSRbi-oMVT0_lGEVyoMY,7116
66
+ absfuyu/tools/obfuscator.py,sha256=13RbmSPMNWJAfjMnE1RMRA_mBF_25FzTx2iUc5DeF7o,13672
67
+ absfuyu/tools/passwordlib.py,sha256=VWA2Ct7fqwhajHgmOP5OryTEPPh8M4MtuNrI4aVorL4,11081
68
+ absfuyu/tools/shutdownizer.py,sha256=S1CiHl4YCTrap2YZT-zwKMh4CFEySKwR54EtwtocUmQ,8550
69
+ absfuyu/tools/sw.py,sha256=MRd0ljJ_qB5cI1wuN2oVcu-hEA_wZpEX81cGscD32LU,21275
70
+ absfuyu/tools/web.py,sha256=82_iR9NTKfxMafndcbQf14Q-rAntmj_X7XEIfFP8GNs,1241
71
+ absfuyu/util/__init__.py,sha256=M4hM_JDuwZTcfpPVwvGkP6mp-Ye3R6gxSbTGI-iSYmQ,6619
72
+ absfuyu/util/api.py,sha256=wMu7efWnCxFQ1PjSoKQfehm_FYYfiXW5Xv0CouNgqtI,4464
73
+ absfuyu/util/cli.py,sha256=Yt0BaIy26HhYMZhtP3NXM2WLye47OE97YwcxFZ4jGs8,3557
74
+ absfuyu/util/gui.py,sha256=VPKDJJUX1tJJYI9cosEZB-RxfB08e8w8C_XIo0IxKXM,2606
75
+ absfuyu/util/json_method.py,sha256=x-iJtAGzidpfPx_rHuQZ8WHikp644zX5tGP4tzIBGH8,2848
76
+ absfuyu/util/lunar.py,sha256=jm0pFuPspsNqaIZYaQ_lj-6kLHU5irzPcLihZL_JYKE,13631
77
+ absfuyu/util/path.py,sha256=lRqNksVTw-FJUDBdRQmiZjqEiU0OYsByoG2b5ejy9oI,23974
78
+ absfuyu/util/performance.py,sha256=l4trWhBNsHXtSmxoAb6LBMskBev-A9bfvjbwTdsNcGw,12095
79
+ absfuyu/util/shorten_number.py,sha256=GgHh4jS0v-__AZVmvFPCObg2OsCO6YKNzfNiR0Jazt4,8313
80
+ absfuyu/util/text_table.py,sha256=VI2OsZc9J_tgtbZ5FbobWSia2A5cDs4ftmoTI7tPG18,13352
81
+ absfuyu/util/zipped.py,sha256=xpJhZte9gXKIZOLvPO1uFLz7F-s7fXl7QK91H_0uob4,3043
82
+ absfuyu-5.12.0.dist-info/METADATA,sha256=7wyTUqnLNajATpq0Z6G0kmKFicDUIbZyfcKyhyF8B0A,5673
83
+ absfuyu-5.12.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
84
+ absfuyu-5.12.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
85
+ absfuyu-5.12.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
86
+ absfuyu-5.12.0.dist-info/RECORD,,
@@ -1,84 +0,0 @@
1
- absfuyu/__init__.py,sha256=Kn41SODqNeyIrPmz4GQdaIIGRc5_SkJzQHVd2s29gWU,601
2
- absfuyu/__main__.py,sha256=nBayi3zgsLZy2-5Q8-3ycMn59WXZdnB2g2-geR-CDJY,596
3
- absfuyu/logger.py,sha256=X5magM5aI309pl5fw1bFRd4PIr0I38fcukKVe6uMzFc,13044
4
- absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- absfuyu/sort.py,sha256=3QG7oRQ_H0X9kAGC3gEtX1YLwg-sJmv6WHSBCHVDvWE,3251
6
- absfuyu/typings.py,sha256=WudA_1vz2zDshNPhumlsCKhkafQKkMUgOT_DZYtME0I,4663
7
- absfuyu/version.py,sha256=56ONdqRF3eSfx95xRQSNouxQNBQQmu6xkWxPdCS4Hps,14491
8
- absfuyu/cli/__init__.py,sha256=PXr-vlTlVe2WY4OtXnX8y1RWnsYpOD1uIXEo9tDfkAw,1182
9
- absfuyu/cli/color.py,sha256=2nMOCwVQjLYIJkOy6GjbCQcxRWcIbgQXmGc5PZrR6tg,1140
10
- absfuyu/cli/config_group.py,sha256=z21drceojAVEDsx_SlLK0m9_dyO0NWYh1qU8VvXopNs,1506
11
- absfuyu/cli/do_group.py,sha256=RpFNot40cxmAuIGYIwtwwpPhPAnZwA9usQ6w1sO7Y4g,2721
12
- absfuyu/cli/game_group.py,sha256=JMY2tYj-Mbc8lu3mG4d8Xvf9mEg6DekvDcdmXBA-v9s,3017
13
- absfuyu/cli/tool_group.py,sha256=A5y9pxQX98Ap9T-csSgQMO0whAgav7_IypxSQJWl_iM,3417
14
- absfuyu/config/__init__.py,sha256=tAE7aSTWAiSFcR8QkZcvGuz2rfc_hrqVmrdYCogOPSE,8239
15
- absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
16
- absfuyu/core/__init__.py,sha256=srsm3KrxFxlY6TNbLNyzEcgWOplHQGIXtyI8pV7ND4M,1189
17
- absfuyu/core/baseclass.py,sha256=ZTky0VBe7qVZ8UuuOg4yGuN1iYMwCUXdkZA7S4qSC6s,34825
18
- absfuyu/core/baseclass2.py,sha256=a11SNyWA-II9Cmn8JDYX7EArVBgza3V2Lh7j3FZbYGY,5368
19
- absfuyu/core/decorator.py,sha256=a7iOBLrkmWnzuCIjnkM0DB8bbL48Fs3riWYy3gsM4Wo,4177
20
- absfuyu/core/docstring.py,sha256=un6V2AfLQVIhkKcKFWlwWizg65v9jaasRI8ksoPj35Q,5792
21
- absfuyu/core/dummy_cli.py,sha256=1CIeqNg956yaZJm6OmEO99cV2cMCRJDqVC-hYpfAJUk,1885
22
- absfuyu/core/dummy_func.py,sha256=AcqGbpPpd8aY2Ue8n-VrFWX4DbiUgixie0iRVfwNmn0,1427
23
- absfuyu/dxt/__init__.py,sha256=Bn9CLY8V3L2pXpHJ7hqm1zbEHleG6NgUKCnu_E70ups,987
24
- absfuyu/dxt/dictext.py,sha256=2eCK6pd25QHCg-qJgXd5LkAwsOqq1XUJWsQKIaSvHUI,6228
25
- absfuyu/dxt/dxt_support.py,sha256=t0XTUcQnZWn8NvVfOz7XCewwO6rOe7n_wriXpqPxGWs,2110
26
- absfuyu/dxt/intext.py,sha256=AM1Pv6_dNm3xe19z_S6sUXsnzC0j167q35lGOWYG4pA,17838
27
- absfuyu/dxt/listext.py,sha256=XReKOIxo8NPYs_dcFeaz8h2VNHWIwC4P5XNRYJ3ovWo,24498
28
- absfuyu/dxt/strext.py,sha256=2ufjFRdKl2doGLjoEE2uk5pgRUxFY8UTPLETSH2wW60,16276
29
- absfuyu/extra/__init__.py,sha256=UhqyhodBOB4eod1NEGra83zqGLfoPzyURdL9BRk3Rzk,183
30
- absfuyu/extra/beautiful.py,sha256=hajYYkLEmT8ZB-235FrA135UP2XAhi6E9enKK_ZYjVk,8138
31
- absfuyu/extra/data_analysis.py,sha256=_ZGkTmh_IHpmPvOwyXSB6asaMB42xLeuLhd0LRFyskg,500
32
- absfuyu/extra/pdf.py,sha256=2R5kDMFgM8rHvteNPf8cwrs_zLxN9bNd0t0I-TKgDlM,2484
33
- absfuyu/extra/rclone.py,sha256=HN-wW8KMTGfWXLT3_AC1tv7jookh_QQ6djgifkQDFdM,8485
34
- absfuyu/extra/xml.py,sha256=R6mQmUPtCQi3tlV_yBo5SwjuCnwsqnSb5O4PCsHIToc,2158
35
- absfuyu/extra/da/__init__.py,sha256=c2tHlSkQIO2pm9NAVzVivCj1oNNUCA30z3erHjj5CNs,1887
36
- absfuyu/extra/da/dadf.py,sha256=UGIciQJB1AIMvFTfXI4xjhvA4GPOy34QKLA8rUUo98o,44235
37
- absfuyu/extra/da/dadf_base.py,sha256=ATpu2j5WKl3sdkoF_7TT5kY0JOYPmVuypHyHKNUrnxQ,5168
38
- absfuyu/extra/da/df_func.py,sha256=mlp0KWX4AbS17q3SCmQxnWxiYLgH1Fks05opEcp09lI,2525
39
- absfuyu/extra/da/mplt.py,sha256=tryzNNK-QHK372JKeUGlagOD439JgzjrSygVSluB8Ps,6306
40
- absfuyu/fun/__init__.py,sha256=w6x6SdFx3mSPgppDu0Q1rgI-JKviuh2HH2_KdHH4xTU,5606
41
- absfuyu/fun/rubik.py,sha256=lKjZI9ds0rpp24ZSknMTcpMvpq4jR0Kw8kdPIHRQDI0,29678
42
- absfuyu/fun/tarot.py,sha256=4eoIz_Jp1odlZjkZxrg1nc58PaRThAiuA2TZBVuwkeY,2402
43
- absfuyu/game/__init__.py,sha256=W41wpnapFO0Lkoo5mXh7_WBboibl65RnyimWa88P--A,4692
44
- absfuyu/game/game_stat.py,sha256=ArSL_sjJH9g46MVep2j-_WWjvJUr9-VXsW1Ho84tqmI,1237
45
- absfuyu/game/schulte.py,sha256=T85GrBZrwjf4bZGBSn2aWTS3WYG_MPAEzWpuo694NC4,2706
46
- absfuyu/game/sudoku.py,sha256=bkGoRm_YwoXJjMSjdpTfKTMEG9t_Aed_x3xa0jIaM8w,10406
47
- absfuyu/game/tictactoe.py,sha256=Q7J9Y2zzFafwxlnbIk3Cm9f2AHOYjRscPLD6yiLnEmQ,9959
48
- absfuyu/game/wordle.py,sha256=-7Ekc6PAai_jlQBce9l7rN_BcQv8WGQxXsM3Im8aLtw,101577
49
- absfuyu/general/__init__.py,sha256=Tkb3FI2Hly_CWLbiu2dHigS1P6S9sZvYfuo9gGdGb-o,473
50
- absfuyu/general/content.py,sha256=Yi7v5PKFEnkRaqlIXbyannP9lY7PYRBvNfRqxCDJUa8,17125
51
- absfuyu/general/human.py,sha256=AtqGomQ48b7-xHZ_CkqVjpKHAGR1G9rQEXsW7QRvTeo,8100
52
- absfuyu/general/shape.py,sha256=3ZlxW97Mm2DThN4CRiXtDaU_0X5c_E90HQHE8XN6wxE,38620
53
- absfuyu/pkg_data/__init__.py,sha256=u_FoiLCJyIQn0KH-ugmTmLXMpEL0GjA0fsxyWwnpgvU,5511
54
- absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
55
- absfuyu/pkg_data/deprecated.py,sha256=6meqTi01MXcP5rfJM72Au106YJLkv5wHDWidONTxGSQ,4350
56
- absfuyu/pkg_data/logo.py,sha256=0O7E3A345WMb2mc94uIpk1ylEa0qNnGo3Vb0IOl2fzw,160799
57
- absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
58
- absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
59
- absfuyu/tools/__init__.py,sha256=4rQFDPMh11lKxGCbv4g3TFvKs_3JHqzJWCO2NT8wjyc,917
60
- absfuyu/tools/checksum.py,sha256=s0dskhbZjrvfNREz3-I65wD3gREkQbIcaJ2AfilaxhU,5667
61
- absfuyu/tools/converter.py,sha256=gk9-yr0ksdrLW8BmbqLvWPm9iJ-UD1Q0LCQkeG74R6U,13567
62
- absfuyu/tools/generator.py,sha256=QjfejY1iePvaeQqcxfmJI56ttoFJ4uGmZV6iojISt3I,13476
63
- absfuyu/tools/inspector.py,sha256=1DuSg96J5WItwyB2QvcjOp5tjDqGx-el4DcODzgcAe0,23952
64
- absfuyu/tools/keygen.py,sha256=iPvAhcgHWw1N7jEVBRgdrHKoStniqrcdbtyFx7vV2So,7116
65
- absfuyu/tools/obfuscator.py,sha256=on2iHp-UZeu4WzA7ysgs6YiP9K2hPYSJ0qxhUcS0QM4,13672
66
- absfuyu/tools/passwordlib.py,sha256=tow8ibxr2QkyYDyY_gGSBYozYz-F0PYRXTh0oK4PDTU,11081
67
- absfuyu/tools/shutdownizer.py,sha256=uQgMmAF6KhZCanqDm5Vg8FlfoOhUkOYyHBUGCKJ7dZ8,8550
68
- absfuyu/tools/sw.py,sha256=ae0PXmLQAV3yZkqPyOF4ewLTIwloqNp4MAoUhGu9_Z8,17444
69
- absfuyu/tools/web.py,sha256=KzNEHl1gDW7DZcw7_xtDeLK_rMD7UqIaUWYNRbUr1p4,1241
70
- absfuyu/util/__init__.py,sha256=xMeNAFLivG6TgOewnMSe1Lso-5_qQYMPglNWRcfukqA,6619
71
- absfuyu/util/api.py,sha256=4Ls51cd1ybQ2_bnT11MUkY7-GXMaEsiD5ci_5ldC3UI,4464
72
- absfuyu/util/gui.py,sha256=kCD-NiJHLV2WoZSPi_YlbRxOfpOn0lvlQht5HUrBRd0,2606
73
- absfuyu/util/json_method.py,sha256=fnZEDgY3Ppkg4ZTqOl8glGTzBmT1s8IJLTfLe6MxLb0,2848
74
- absfuyu/util/lunar.py,sha256=Z_1jBp_VCdGiPC1mrO6L1o78nJa6-owokdpPLnFy70g,13631
75
- absfuyu/util/path.py,sha256=bsQl7VlOQgB8RgyOqqxZssPINmXCFYsw8Dr81wZTF2I,23974
76
- absfuyu/util/performance.py,sha256=77-a4Zk_0-PaDgirpTjyhE57Z61c05XA9Dao-eaEKSY,12095
77
- absfuyu/util/shorten_number.py,sha256=4b3HPCYe4WOGNXQREJKdHO_rWZJZB_uonO2JVV6X8B8,8313
78
- absfuyu/util/text_table.py,sha256=THCU-cg9DlatrizxNEXjmtOwNsvr0RDqTnenDES4Nww,13352
79
- absfuyu/util/zipped.py,sha256=2sc6ltt8gOqlvNvso51KgHWm3zirA59t0-akV-GktFM,3043
80
- absfuyu-5.10.0.dist-info/METADATA,sha256=Ha58xE1LRJkQfzxobaA1Qb896DKkp4FBm97z4ShEhDg,5673
81
- absfuyu-5.10.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
82
- absfuyu-5.10.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
83
- absfuyu-5.10.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
84
- absfuyu-5.10.0.dist-info/RECORD,,