absfuyu 5.1.0__py3-none-any.whl → 5.3.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 (73) hide show
  1. absfuyu/__init__.py +1 -1
  2. absfuyu/__main__.py +3 -3
  3. absfuyu/cli/__init__.py +1 -1
  4. absfuyu/cli/color.py +3 -3
  5. absfuyu/cli/config_group.py +2 -2
  6. absfuyu/cli/do_group.py +12 -2
  7. absfuyu/cli/game_group.py +2 -2
  8. absfuyu/cli/tool_group.py +2 -3
  9. absfuyu/config/__init__.py +1 -1
  10. absfuyu/core/__init__.py +1 -1
  11. absfuyu/core/baseclass.py +32 -2
  12. absfuyu/core/baseclass2.py +1 -1
  13. absfuyu/core/decorator.py +4 -4
  14. absfuyu/core/docstring.py +43 -25
  15. absfuyu/core/dummy_cli.py +1 -1
  16. absfuyu/core/dummy_func.py +4 -4
  17. absfuyu/dxt/__init__.py +1 -1
  18. absfuyu/dxt/dictext.py +5 -2
  19. absfuyu/dxt/dxt_support.py +1 -1
  20. absfuyu/dxt/intext.py +5 -2
  21. absfuyu/dxt/listext.py +405 -127
  22. absfuyu/dxt/strext.py +75 -15
  23. absfuyu/extra/__init__.py +1 -1
  24. absfuyu/extra/beautiful.py +1 -1
  25. absfuyu/extra/da/__init__.py +1 -1
  26. absfuyu/extra/da/dadf.py +56 -4
  27. absfuyu/extra/da/dadf_base.py +1 -1
  28. absfuyu/extra/da/df_func.py +1 -1
  29. absfuyu/extra/da/mplt.py +1 -1
  30. absfuyu/extra/data_analysis.py +3 -3
  31. absfuyu/fun/__init__.py +1 -1
  32. absfuyu/fun/tarot.py +1 -1
  33. absfuyu/game/__init__.py +1 -1
  34. absfuyu/game/game_stat.py +1 -1
  35. absfuyu/game/sudoku.py +1 -1
  36. absfuyu/game/tictactoe.py +2 -3
  37. absfuyu/game/wordle.py +1 -1
  38. absfuyu/general/__init__.py +1 -1
  39. absfuyu/general/content.py +2 -2
  40. absfuyu/general/human.py +1 -1
  41. absfuyu/general/shape.py +1 -1
  42. absfuyu/logger.py +1 -1
  43. absfuyu/pkg_data/__init__.py +1 -1
  44. absfuyu/pkg_data/deprecated.py +1 -1
  45. absfuyu/sort.py +1 -1
  46. absfuyu/tools/__init__.py +16 -13
  47. absfuyu/tools/checksum.py +2 -2
  48. absfuyu/tools/converter.py +29 -8
  49. absfuyu/tools/generator.py +251 -110
  50. absfuyu/tools/inspector.py +84 -40
  51. absfuyu/tools/keygen.py +1 -1
  52. absfuyu/tools/obfuscator.py +2 -2
  53. absfuyu/tools/passwordlib.py +3 -4
  54. absfuyu/tools/shutdownizer.py +1 -1
  55. absfuyu/tools/web.py +1 -1
  56. absfuyu/typings.py +136 -0
  57. absfuyu/util/__init__.py +18 -4
  58. absfuyu/util/api.py +36 -16
  59. absfuyu/util/json_method.py +43 -14
  60. absfuyu/util/lunar.py +1 -1
  61. absfuyu/util/path.py +158 -4
  62. absfuyu/util/performance.py +120 -5
  63. absfuyu/util/shorten_number.py +1 -1
  64. absfuyu/util/text_table.py +235 -45
  65. absfuyu/util/zipped.py +4 -3
  66. absfuyu/version.py +2 -2
  67. {absfuyu-5.1.0.dist-info → absfuyu-5.3.0.dist-info}/METADATA +1 -1
  68. absfuyu-5.3.0.dist-info/RECORD +76 -0
  69. absfuyu/core/typings.py +0 -40
  70. absfuyu-5.1.0.dist-info/RECORD +0 -76
  71. {absfuyu-5.1.0.dist-info → absfuyu-5.3.0.dist-info}/WHEEL +0 -0
  72. {absfuyu-5.1.0.dist-info → absfuyu-5.3.0.dist-info}/entry_points.txt +0 -0
  73. {absfuyu-5.1.0.dist-info → absfuyu-5.3.0.dist-info}/licenses/LICENSE +0 -0
@@ -3,8 +3,8 @@ Absufyu: Utilities
3
3
  ------------------
4
4
  Text table
5
5
 
6
- Version: 5.1.0
7
- Date updated: 10/03/2025 (dd/mm/yyyy)
6
+ Version: 5.2.0
7
+ Date updated: 13/03/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -16,7 +16,6 @@ __all__ = ["OneColumnTableMaker"]
16
16
  # ---------------------------------------------------------------------------
17
17
  import os
18
18
  from collections.abc import Sequence
19
- from enum import StrEnum
20
19
  from textwrap import TextWrapper
21
20
  from typing import Literal
22
21
 
@@ -25,9 +24,9 @@ from absfuyu.core import BaseClass
25
24
 
26
25
  # Style
27
26
  # ---------------------------------------------------------------------------
28
- class BoxDrawingCharacter(StrEnum):
27
+ class BoxDrawingCharacterBase:
29
28
  """
30
- Box drawing characters - Normal
29
+ Box drawing characters - Base/Normal characters
31
30
 
32
31
  Characters reference: https://en.wikipedia.org/wiki/Box-drawing_characters
33
32
  """
@@ -45,12 +44,61 @@ class BoxDrawingCharacter(StrEnum):
45
44
  HORIZONTAL_DOWN = "\u252c"
46
45
 
47
46
 
48
- class BoxDrawingCharacterBold(StrEnum):
49
- """
50
- Box drawing characters - Bold
47
+ class BoxDrawingCharacterNormal(BoxDrawingCharacterBase):
48
+ """Normal"""
51
49
 
52
- Characters reference: https://en.wikipedia.org/wiki/Box-drawing_characters
53
- """
50
+ pass
51
+
52
+
53
+ class BoxDrawingCharacterDashed(BoxDrawingCharacterNormal):
54
+ """Dashed"""
55
+
56
+ HORIZONTAL = "\u254c"
57
+ VERTICAL = "\u254e"
58
+
59
+
60
+ class BoxDrawingCharacterDashed3(BoxDrawingCharacterNormal):
61
+ """Triple dashed"""
62
+
63
+ HORIZONTAL = "\u2504"
64
+ VERTICAL = "\u2506"
65
+
66
+
67
+ class BoxDrawingCharacterDashed4(BoxDrawingCharacterNormal):
68
+ """Quadruple dashed"""
69
+
70
+ HORIZONTAL = "\u2508"
71
+ VERTICAL = "\u250a"
72
+
73
+
74
+ class BoxDrawingCharacterRounded(BoxDrawingCharacterNormal):
75
+ """Rounded"""
76
+
77
+ UPPER_LEFT_CORNER = "\u256d"
78
+ UPPER_RIGHT_CORNER = "\u256e"
79
+ LOWER_LEFT_CORNER = "\u2570"
80
+ LOWER_RIGHT_CORNER = "\u256f"
81
+
82
+
83
+ class BoxDrawingCharacterDiamond(BoxDrawingCharacterNormal):
84
+ """Diamond"""
85
+
86
+ UPPER_LEFT_CORNER = "\u2571"
87
+ UPPER_RIGHT_CORNER = "\u2572"
88
+ LOWER_LEFT_CORNER = "\u2572"
89
+ LOWER_RIGHT_CORNER = "\u2571"
90
+
91
+
92
+ class BoxDrawingCharacterDashedRound(
93
+ BoxDrawingCharacterDashed, BoxDrawingCharacterRounded
94
+ ):
95
+ """Dashed rounded"""
96
+
97
+ pass
98
+
99
+
100
+ class BoxDrawingCharacterBold(BoxDrawingCharacterBase):
101
+ """Bold"""
54
102
 
55
103
  UPPER_LEFT_CORNER = "\u250f"
56
104
  UPPER_RIGHT_CORNER = "\u2513"
@@ -65,32 +113,15 @@ class BoxDrawingCharacterBold(StrEnum):
65
113
  HORIZONTAL_DOWN = "\u2533"
66
114
 
67
115
 
68
- class BoxDrawingCharacterDashed(StrEnum):
69
- """
70
- Box drawing characters - Dashed
116
+ class BoxDrawingCharacterDashedBold(BoxDrawingCharacterBold):
117
+ """Dashed bold"""
71
118
 
72
- Characters reference: https://en.wikipedia.org/wiki/Box-drawing_characters
73
- """
119
+ HORIZONTAL = "\u254d"
120
+ VERTICAL = "\u254f"
74
121
 
75
- UPPER_LEFT_CORNER = "\u250c"
76
- UPPER_RIGHT_CORNER = "\u2510"
77
- HORIZONTAL = "\u254c"
78
- VERTICAL = "\u254e"
79
- LOWER_LEFT_CORNER = "\u2514"
80
- LOWER_RIGHT_CORNER = "\u2518"
81
- VERTICAL_RIGHT = "\u251c"
82
- VERTICAL_LEFT = "\u2524"
83
- CROSS = "\u253c"
84
- HORIZONTAL_UP = "\u2534"
85
- HORIZONTAL_DOWN = "\u252c"
86
-
87
-
88
- class BoxDrawingCharacterDouble(StrEnum):
89
- """
90
- Box drawing characters - Double
91
122
 
92
- Characters reference: https://en.wikipedia.org/wiki/Box-drawing_characters
93
- """
123
+ class BoxDrawingCharacterDouble(BoxDrawingCharacterBase):
124
+ """Double"""
94
125
 
95
126
  UPPER_LEFT_CORNER = "\u2554"
96
127
  UPPER_RIGHT_CORNER = "\u2557"
@@ -105,6 +136,49 @@ class BoxDrawingCharacterDouble(StrEnum):
105
136
  HORIZONTAL_DOWN = "\u2566"
106
137
 
107
138
 
139
+ def get_box_drawing_character(
140
+ style: Literal["normal", "bold", "dashed", "double", "rounded"] | str = "normal",
141
+ ) -> type[BoxDrawingCharacterBase]:
142
+ """
143
+ Choose style for Box drawing characters.
144
+
145
+ Parameters
146
+ ----------
147
+ style : Literal["normal", "bold", "dashed", "double", "rounded"] | str, optional
148
+ Style for the table, by default ``"normal"``.
149
+ Extra style: ``drounded``, ``diamond``, ``dbold``, ``dashed3``, ``dashed4``
150
+
151
+ Returns
152
+ -------
153
+ BoxDrawingCharacter
154
+ Box drawing characters in specified style.
155
+ """
156
+
157
+ match style.lower().strip():
158
+ case "normal":
159
+ return BoxDrawingCharacterNormal
160
+ case "bold":
161
+ return BoxDrawingCharacterBold
162
+ case "dashed":
163
+ return BoxDrawingCharacterDashed
164
+ case "dashed3":
165
+ return BoxDrawingCharacterDashed3
166
+ case "dashed4":
167
+ return BoxDrawingCharacterDashed4
168
+ case "double":
169
+ return BoxDrawingCharacterDouble
170
+ case "rounded":
171
+ return BoxDrawingCharacterRounded
172
+ case "drounded":
173
+ return BoxDrawingCharacterDashedRound
174
+ case "diamond":
175
+ return BoxDrawingCharacterDiamond
176
+ case "dbold":
177
+ return BoxDrawingCharacterDashedBold
178
+ case _:
179
+ return BoxDrawingCharacterNormal
180
+
181
+
108
182
  # Class
109
183
  # ---------------------------------------------------------------------------
110
184
  class OneColumnTableMaker(BaseClass):
@@ -128,7 +202,7 @@ class OneColumnTableMaker(BaseClass):
128
202
  def __init__(
129
203
  self,
130
204
  ncols: int | None = None,
131
- style: Literal["normal", "bold", "dashed", "double"] = "normal",
205
+ style: Literal["normal", "bold", "dashed", "double", "rounded"] = "normal",
132
206
  ) -> None:
133
207
  """
134
208
  Table Maker instance
@@ -141,7 +215,7 @@ class OneColumnTableMaker(BaseClass):
141
215
  defaults to ``88`` when failed to use ``os.get_terminal_size()``.
142
216
  By default ``None``
143
217
 
144
- style : Literal["normal", "bold", "dashed", "double"], optional
218
+ style : Literal["normal", "bold", "dashed", "double", "rounded"], optional
145
219
  Style for the table, by default ``"normal"``
146
220
  """
147
221
 
@@ -159,16 +233,7 @@ class OneColumnTableMaker(BaseClass):
159
233
  self._paragraphs: list[Sequence[str]] = []
160
234
 
161
235
  # Style
162
- if style == "normal":
163
- self._table_char = BoxDrawingCharacter
164
- elif style == "bold":
165
- self._table_char = BoxDrawingCharacterBold # type: ignore
166
- elif style == "dashed":
167
- self._table_char = BoxDrawingCharacterDashed # type: ignore
168
- elif style == "double":
169
- self._table_char = BoxDrawingCharacterDouble # type: ignore
170
- else:
171
- self._table_char = BoxDrawingCharacter # type: ignore
236
+ self._table_char = get_box_drawing_character(style=style)
172
237
 
173
238
  # Text wrapper
174
239
  self._text_wrapper = TextWrapper(
@@ -270,3 +335,128 @@ class OneColumnTableMaker(BaseClass):
270
335
  if table is None:
271
336
  return ""
272
337
  return "\n".join(table)
338
+
339
+
340
+ # W.I.P
341
+ # ---------------------------------------------------------------------------
342
+ class _BoxDrawingCharacterFactory:
343
+ _TRANSLATE: dict[str, str] = {
344
+ "n": "normal",
345
+ "d": "dashed",
346
+ "b": "bold",
347
+ "r": "rounded",
348
+ "x": "double",
349
+ }
350
+
351
+ UPPER_LEFT_CORNER: list[tuple[str, str]] = [
352
+ ("\u250c", "n,d"),
353
+ ("\u256d", "r"),
354
+ ("\u250f", "b"),
355
+ ("\u2554", "x"),
356
+ ]
357
+ UPPER_RIGHT_CORNER: list[tuple[str, str]] = [
358
+ ("\u2510", "n,d"),
359
+ ("\u256e", "r"),
360
+ ("\u2513", "b"),
361
+ ("\u2557", "x"),
362
+ ]
363
+ HORIZONTAL: list[tuple[str, str]] = [
364
+ ("\u2500", "n,r"),
365
+ ("\u254c", "d"),
366
+ ("\u2501", "b"),
367
+ ("\u2550", "x"),
368
+ ]
369
+ VERTICAL: list[tuple[str, str]] = [
370
+ ("\u2502", "n,r"),
371
+ ("\u254e", "d"),
372
+ ("\u2503", "b"),
373
+ ("\u2551", "x"),
374
+ ]
375
+ LOWER_LEFT_CORNER: list[tuple[str, str]] = [
376
+ ("\u2514", "n,d"),
377
+ ("\u2570", "r"),
378
+ ("\u2517", "b"),
379
+ ("\u255a", "x"),
380
+ ]
381
+ LOWER_RIGHT_CORNER: list[tuple[str, str]] = [
382
+ ("\u2518", "n,d"),
383
+ ("\u256f", "r"),
384
+ ("\u251b", "b"),
385
+ ("\u255d", "x"),
386
+ ]
387
+ VERTICAL_RIGHT: list[tuple[str, str]] = [
388
+ ("\u251c", "n,d,r"),
389
+ ("\u2523", "b"),
390
+ ("\u2560", "x"),
391
+ ]
392
+ VERTICAL_LEFT: list[tuple[str, str]] = [
393
+ ("\u2524", "n,d,r"),
394
+ ("\u252b", "b"),
395
+ ("\u2563", "x"),
396
+ ]
397
+ CROSS: list[tuple[str, str]] = [
398
+ ("\u253c", "n,d,r"),
399
+ ("\u254b", "b"),
400
+ ("\u256c", "x"),
401
+ ]
402
+ HORIZONTAL_UP: list[tuple[str, str]] = [
403
+ ("\u2534", "n,d,r"),
404
+ ("\u253b", "b"),
405
+ ("\u2569", "x"),
406
+ ]
407
+ HORIZONTAL_DOWN: list[tuple[str, str]] = [
408
+ ("\u252c", "n,d,r"),
409
+ ("\u2533", "b"),
410
+ ("\u2566", "x"),
411
+ ]
412
+
413
+ _FIELDS: tuple[str, ...] = (
414
+ "UPPER_LEFT_CORNER",
415
+ "UPPER_RIGHT_CORNER",
416
+ "HORIZONTAL",
417
+ "VERTICAL",
418
+ "LOWER_LEFT_CORNER",
419
+ "LOWER_RIGHT_CORNER",
420
+ "VERTICAL_RIGHT",
421
+ "VERTICAL_LEFT",
422
+ "CROSS",
423
+ "HORIZONTAL_UP",
424
+ "HORIZONTAL_DOWN",
425
+ )
426
+
427
+ def __init__(self, style: str | None = None):
428
+ self.style = style
429
+
430
+ @classmethod
431
+ def _make_style(cls) -> dict[str, dict[str, str]]:
432
+ """
433
+ Creates a style dictionary based on the class attributes.
434
+
435
+ Returns
436
+ -------
437
+ dict[str, dict[str, str]]
438
+ A dictionary mapping group names to style configurations.
439
+ """
440
+
441
+ # Initialize an empty style dictionary
442
+ style: dict[str, dict[str, str]] = {}
443
+
444
+ # Create a dictionary mapping field names to themselves
445
+ field_map = {field: "" for field in cls._FIELDS}
446
+
447
+ # Initialize style entries for each translation key
448
+ for x in cls._TRANSLATE.keys():
449
+ style[x] = field_map
450
+
451
+ # Extract character data from class fields
452
+ char_data: list[tuple[str, list[tuple[str, str]]]] = [
453
+ (field, getattr(cls, field)) for field in cls._FIELDS
454
+ ]
455
+
456
+ # Populate the style dictionary with character mappings
457
+ for name, chars in char_data:
458
+ for char, groups in chars:
459
+ for group in map(str.strip, groups.split(",")):
460
+ style[group][name] = char
461
+
462
+ return style
absfuyu/util/zipped.py CHANGED
@@ -1,10 +1,11 @@
1
1
  """
2
2
  Absfuyu: Zipped
3
3
  ---------------
4
- Zipping stuff (deprecated soon, most features already in absfuyu.util.path.Directory)
4
+ Zipping stuff
5
+ (deprecated, use absfuyu.util.path.Directory)
5
6
 
6
- Version: 5.1.0
7
- Date updated: 10/03/2025 (dd/mm/yyyy)
7
+ Version: 5.2.0
8
+ Date updated: 16/03/2025 (dd/mm/yyyy)
8
9
  """
9
10
 
10
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.1.0
7
- Date updated: 10/03/2025 (dd/mm/yyyy)
6
+ Version: 5.2.0
7
+ Date updated: 15/03/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.1.0
3
+ Version: 5.3.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,76 @@
1
+ absfuyu/__init__.py,sha256=ZWPuZGswjKjM1ioYK2Mxrf7QY6uzmOScgr3WjqEYzMI,600
2
+ absfuyu/__main__.py,sha256=j6vPe7oFtED_nC__UeSsmoNiE474ErYW-gVpQmRKQ0c,595
3
+ absfuyu/logger.py,sha256=J-O12HYtQzP8Zm_4NtpzBQruAbqxSgsOtH4MKGJJAs8,13043
4
+ absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ absfuyu/sort.py,sha256=vl48Ijm16Jasj5unp3HLU0d-7jN-FihOoyI_x8wBUlA,3250
6
+ absfuyu/typings.py,sha256=b6HfKgOFC6Nw9wcPr57jhMvH4YrvJIGfMBWji9qYXKU,4598
7
+ absfuyu/version.py,sha256=HxRg7XUVfBKVgAebxK9YrPbys_sVTEKqHD1QW4VdEOM,14489
8
+ absfuyu/cli/__init__.py,sha256=81GpY_LfmtMBdFdBbkti-YUAdBgzVxRXiXCdM7PgJKM,1181
9
+ absfuyu/cli/color.py,sha256=s64Sq7O_2ICJgWle8msh3tpoirlG8wEVsm7w7tba3eM,1139
10
+ absfuyu/cli/config_group.py,sha256=Y4M7FlXUJcLhTC_Vzul-xW7VQ-CGGi2SiYJiY2NK3DI,1505
11
+ absfuyu/cli/do_group.py,sha256=72Xp6NF-ms5O3BcCmhyOp-ueeVj-gWi8KDRPwwA_qpc,2720
12
+ absfuyu/cli/game_group.py,sha256=L621kuN4ncpFakxB2sofuByivA-ySr1ZFZrur8uXnCA,2623
13
+ absfuyu/cli/tool_group.py,sha256=RV_Fnap66KGm33DgvTZsPHenhbMx9IwYZgvNzVA7cj0,3416
14
+ absfuyu/config/__init__.py,sha256=ZpWb3yuO_9UgmZiDzuvwMXyeJMMMLP8xRrw25fjLpHY,8238
15
+ absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
16
+ absfuyu/core/__init__.py,sha256=PQf_DHqI5zU-TIQbiARfF5mQG4R77FiX-5ySOZfJ9wY,1186
17
+ absfuyu/core/baseclass.py,sha256=r1mf4MdxNnVKQd72LNWCerNGjhDBhJQjv3DoKIeaZVM,23588
18
+ absfuyu/core/baseclass2.py,sha256=NWCeAmS5-coLlq1Q9Y9ouFe1mefA0Q9YRKnhCeBx6yA,5366
19
+ absfuyu/core/decorator.py,sha256=xnzIFMcVfxfm7Den4QnZ4AEaHSdszcHSpWyPABm4YPY,4176
20
+ absfuyu/core/docstring.py,sha256=gAVovS1zVn_H9e-xkNY4xQtEQMf_p3PRpdTfpGqA5_A,5791
21
+ absfuyu/core/dummy_cli.py,sha256=hqsjrEbT-BPLRaODdoslwc53YQyM67Rse057gvlnOSo,1884
22
+ absfuyu/core/dummy_func.py,sha256=1XK6E3RDoQqN7eYkuGpoo025g0JcEHrBFrVZz71XIlk,1426
23
+ absfuyu/dxt/__init__.py,sha256=c-KOWD7LNwV6cBRv9RjEP2D6C8lBhx8Q0CtdcXFA0_Q,986
24
+ absfuyu/dxt/dictext.py,sha256=Sp4jMPvKLb61nU6g4JJ86dsxIhlc3eZXTsys1oXy41M,6073
25
+ absfuyu/dxt/dxt_support.py,sha256=dB313kVTWRVHGhsA2daNBjmU3xNz6_B72Cn6JbgvvpE,2109
26
+ absfuyu/dxt/intext.py,sha256=9fV9-CsY1mbaH6k3BkLo1nSn99JN1M0m2ES2zQpuXDE,17454
27
+ absfuyu/dxt/listext.py,sha256=fJ8vB6xMYx01ecKS8M7foAKrpoVbrPtmCWGrqSCBUVw,22633
28
+ absfuyu/dxt/strext.py,sha256=ILOtcbF23qWX_relkW8HWNnJCGouIDEh2X5OAXDHNWk,16257
29
+ absfuyu/extra/__init__.py,sha256=w47uEx0KkUfSVuX9_WYM2xVBcfHd93b9YzTlWs8dkwc,182
30
+ absfuyu/extra/beautiful.py,sha256=OjaNY457I7eePklQ8sN6I1b11QrkmIzra8IW-Aj3NlM,8137
31
+ absfuyu/extra/data_analysis.py,sha256=AZA4V-c-ZBe7Zkv1_P6exSyWr5UjHmH5Dv0P1MxVXw8,499
32
+ absfuyu/extra/da/__init__.py,sha256=S-jDX96fQ7s6mFxCNFrkqM4ckQGuEAHdCMN4TgzASkw,913
33
+ absfuyu/extra/da/dadf.py,sha256=3p5qUl1VFuhp_KJ1ORLU0EORcPteZE_VbsbCWkmH_n0,39083
34
+ absfuyu/extra/da/dadf_base.py,sha256=IhJiYu4whWjkV6hUBrvHF9kRdXyCO2swwt2_GfvNAu8,5167
35
+ absfuyu/extra/da/df_func.py,sha256=IWVIjQdKc7TGfVK8qmhsikoyWhHhrvd9aM2JH7J6giM,2524
36
+ absfuyu/extra/da/mplt.py,sha256=POoD7a7iUmivzcVUtbhZgFhSFkEMoLgPDhE6Wxn5HWE,6305
37
+ absfuyu/fun/__init__.py,sha256=YUXIHAkluHR40ld3pY-5qy7Dim18BFXOwP9aQWGf4Qw,5435
38
+ absfuyu/fun/tarot.py,sha256=LuA_ioFjpBuRRE95eIqa66YuyOjhsgidezIfR_oV1C0,2401
39
+ absfuyu/game/__init__.py,sha256=w_7djRlaH_bRnXDIE7k2o3IH7mEnI3HoPNATsHO3RVk,4691
40
+ absfuyu/game/game_stat.py,sha256=3qIhHowsKSw03538hgikjDXcNnFZnFAeh8oQGgatMWA,1236
41
+ absfuyu/game/sudoku.py,sha256=yWH6qFYjFQELpq47ip3CU07jzL5rvWpc6tGhuyhbAAw,10405
42
+ absfuyu/game/tictactoe.py,sha256=Ae53kHZL9CmqUKAz6IUUv5T1ARBkC8zeOf3tqm8su3g,9958
43
+ absfuyu/game/wordle.py,sha256=CWWh_W1-I7nS_v33EgNTxbFyEXyPApeLB6kzOMZhHrg,101576
44
+ absfuyu/general/__init__.py,sha256=vufEDiUeK5uleZS5AQ-0vbMe31nfgTRxcUtW3kwxbV8,472
45
+ absfuyu/general/content.py,sha256=Dabw5rLgfryLw8ApD6qOSJBAe6Pz1Eh5A8JAsX_01Ug,17122
46
+ absfuyu/general/human.py,sha256=Uf8Eih7Xoq3WrFX8aoYSDcqTAJxCBhVJLm_EzuY-a4w,8099
47
+ absfuyu/general/shape.py,sha256=elZcTGQ11_-qczMwNoiw5Y4sQpWRd_tgmzyUPIdmwJ4,38619
48
+ absfuyu/pkg_data/__init__.py,sha256=-RscaF305zV76dFI_gecNm76_Smkx0OHP0OxSNKb2J0,5510
49
+ absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
50
+ absfuyu/pkg_data/deprecated.py,sha256=FhUFNgjjeaneBU66ImZuzJRKNZJ7OA_qLz2QoDbUn8M,4349
51
+ absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
52
+ absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
53
+ absfuyu/tools/__init__.py,sha256=txSLDE9FSXggNEPkW-NA_UIyTRDFTTjLSLiBcJznIWg,916
54
+ absfuyu/tools/checksum.py,sha256=OaMkEyHawqZpVwrYaSLgv7ErKDtQb1Wk10u0pKQbkMs,5666
55
+ absfuyu/tools/converter.py,sha256=sXHtKl5QyLDv8pjz-msq5ZXgGjMbQplKaGivMnyiAm8,13566
56
+ absfuyu/tools/generator.py,sha256=o6RT3h8oSiLibubdBQTptKQUUHb5YBcGUR0-imVwKhk,13473
57
+ absfuyu/tools/inspector.py,sha256=6vNaLx2sEE-6r88I18aKGMBhQyiGjY9SLtLnwjaFjoU,15703
58
+ absfuyu/tools/keygen.py,sha256=Ic_Vsk_QHqJ7331CyDcPm59csLB0ar_Vka9NMs07dO0,7115
59
+ absfuyu/tools/obfuscator.py,sha256=mViEFLHjyic2Zlr8Q7v3S8xmpTUexLA2RvDfqUngrpE,13669
60
+ absfuyu/tools/passwordlib.py,sha256=vxN6mwZAvHiUppSVv5yS_djkVLeutgrR3exXaj2AZo8,11080
61
+ absfuyu/tools/shutdownizer.py,sha256=Yye7rVzH3CeVNWFnKvUIYXeKkKOyXNBcF65hPv8QpK4,8549
62
+ absfuyu/tools/web.py,sha256=0hWiPSsprJPy_x1Ml_MEUwTkfocHj6Ew_77WDms5K6Y,1240
63
+ absfuyu/util/__init__.py,sha256=MrHykiPbfR-r_U3Rf1l4_ZGPfHQgGL7AWUU0WrzBvfc,4187
64
+ absfuyu/util/api.py,sha256=zB2XxI2fzYAmX-fpPHFXTWizKixHDf3fTsZkDUcvZv4,4463
65
+ absfuyu/util/json_method.py,sha256=rHJ_omzJ9lwEacnTLprLVJmbZrRXepCbBYb57ElGW7M,2847
66
+ absfuyu/util/lunar.py,sha256=5zVsCl1UdsFW8sR7BHquF0VGyVNpJdyJcdZGkcDyuh0,13630
67
+ absfuyu/util/path.py,sha256=Jj_GrsuxvtAaaXjIrbwsz96cSnktR8SXewpBtU7WGDE,22998
68
+ absfuyu/util/performance.py,sha256=TzsubH_1qrSNPSk42R5WthY6WlGD9EC5Gm9XpMLZU7M,12094
69
+ absfuyu/util/shorten_number.py,sha256=B7VDIlS3IYutlFkktv1pedEOGViC6P6BpeAOJn2BYWQ,8312
70
+ absfuyu/util/text_table.py,sha256=w6CebQFfQtXc2NPkPwyo_IbQPbDyMdaDVZnl_joA2rk,13198
71
+ absfuyu/util/zipped.py,sha256=8I6vW2hTNQtogzT7nKOMhSJrsQup7uRK0nu5JOsikO0,3042
72
+ absfuyu-5.3.0.dist-info/METADATA,sha256=aqBwqlDhpAGaxoGUgCLqwjDkgFJkk-LwVK2FhLyjc5s,4965
73
+ absfuyu-5.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
74
+ absfuyu-5.3.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
75
+ absfuyu-5.3.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
76
+ absfuyu-5.3.0.dist-info/RECORD,,
absfuyu/core/typings.py DELETED
@@ -1,40 +0,0 @@
1
- """
2
- Absfuyu: Core
3
- -------------
4
- Pre-defined typing
5
-
6
- Version: 5.1.0
7
- Date updated: 10/03/2025 (dd/mm/yyyy)
8
- """
9
-
10
- # Module Package
11
- # ---------------------------------------------------------------------------
12
- __all__ = ["_T", "_P", "_R", "_CALLABLE", "_CT", "_N", "_Number", "override"]
13
-
14
-
15
- # Library
16
- # ---------------------------------------------------------------------------
17
- from collections.abc import Callable
18
- from typing import ParamSpec, TypeVar
19
-
20
- try:
21
- from typing import override # type: ignore
22
- except ImportError:
23
- from absfuyu.core.decorator import dummy_decorator as override
24
-
25
-
26
- # Type
27
- # ---------------------------------------------------------------------------
28
- _T = TypeVar("_T") # Type
29
-
30
- # Callable
31
- _P = ParamSpec("_P") # Parameter type
32
- _R = TypeVar("_R") # Return type - Can be anything
33
- _CALLABLE = Callable[_P, _R]
34
-
35
- # Class type - Can be any subtype of `type`
36
- _CT = TypeVar("_CT", bound=type)
37
-
38
- # Number type
39
- _N = TypeVar("_N", int, float)
40
- _Number = int | float
@@ -1,76 +0,0 @@
1
- absfuyu/__init__.py,sha256=MPfDLhEfJJT_AmFbllAkm98G8n2fTwgFHeV5I6mpceM,600
2
- absfuyu/__main__.py,sha256=ABkOGXf7rO7QS033Dftpa2qA2f78JcXtmvEHL1_r43U,603
3
- absfuyu/logger.py,sha256=iVV3_ZO8Pr7vemapiIyXN4TPjvSXLE4qKbMMoguHwx0,13043
4
- absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- absfuyu/sort.py,sha256=PELMTOEinksYBEaa1_mUD0Prepi4eMeD73y3kMCKTk0,3250
6
- absfuyu/version.py,sha256=uuL4CQmZvjhYWGONFG4H5JelVaFKqQcnl47gZQqSr6w,14489
7
- absfuyu/cli/__init__.py,sha256=V_PyNK-nC5TUGrCZE7iaigjhImT2gFw5mA_yiVRWBUE,1181
8
- absfuyu/cli/color.py,sha256=TvzLxTH1_uF5miHhdJkxybOXa2bYkKRIuBMlaDC7hbA,1147
9
- absfuyu/cli/config_group.py,sha256=407VbRz_-FJjy1Gj-gjxyEMe3oANcu7qVLdwoJov_Ac,1505
10
- absfuyu/cli/do_group.py,sha256=qGEgAx_ysY_HULL4oSrOXou2SJJmIxZvy1OyQqaxjC8,2438
11
- absfuyu/cli/game_group.py,sha256=2MPgpE_hEFBAsFYobVPAf3X-eUzZYsJXGh0uGNdkGXs,2623
12
- absfuyu/cli/tool_group.py,sha256=xCNHMGsDkFF1xIQVCm-ubstZeCKjjFgvzq6MOt03eyE,3418
13
- absfuyu/config/__init__.py,sha256=kuTdGTlt6cvsouAVZxXRjvZXOGPSwWq0EbigZ2ps9cI,8238
14
- absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
15
- absfuyu/core/__init__.py,sha256=L4O0yMufkinY7Sep1EqU0793H2vXgKnZ2j0NwgiM9Cg,1186
16
- absfuyu/core/baseclass.py,sha256=sQIiIIL5cOrdFtm_JV3u30NFXqlctexQNfFp0C-wGM8,22591
17
- absfuyu/core/baseclass2.py,sha256=e0T_reiN8d0d-YtmHnfwNCBqebEyceEz_Z-4_nXTsKY,5366
18
- absfuyu/core/decorator.py,sha256=IqMsUL4gsuYnNWH_Hv9XMXE_tzn7DuAwIqzwESgqVbA,4191
19
- absfuyu/core/docstring.py,sha256=3ApYWaH0mI8P4r7rSbcHBgkmFcAXD8hY52JqUcNW6Ng,5287
20
- absfuyu/core/dummy_cli.py,sha256=VJYrY3Em-0HbOdVOLVvInh8OOV7he4ZFcvZWMTgbHIs,1884
21
- absfuyu/core/dummy_func.py,sha256=x327grH4jcBZUJMXkt5R1GrPHxS_NTQHwqvIx31c8SA,1442
22
- absfuyu/core/typings.py,sha256=IFXkHvT4kNV4ZB1UC5iJ_WB0eDdMKXpfTJL1j-KAs8E,1021
23
- absfuyu/dxt/__init__.py,sha256=5LvbjQUn_YK8BvyrlcpE969sdyJTcfAbfwQSKaFFbFo,986
24
- absfuyu/dxt/dictext.py,sha256=UpH3q3rWXahii4MVAx3OSeJK9k-BJhBv0_DL5U-etjw,5998
25
- absfuyu/dxt/dxt_support.py,sha256=rbc4KT5k2KetE2gQRXbeGa-iA1WfKqlvexnckJuY9BI,2109
26
- absfuyu/dxt/intext.py,sha256=SXl7qj3yFaju-efwmH78Dp84e7tJSbqgQFAPiAPsXbU,17380
27
- absfuyu/dxt/listext.py,sha256=ffr-DGBswrMkWHvoDrixYGFQ38tRaoHHcSAmhEaVrI0,14711
28
- absfuyu/dxt/strext.py,sha256=9l9BOmM18_uCjmh4-nOF2O43kmWjXttIMe3_6QlWBpc,14626
29
- absfuyu/extra/__init__.py,sha256=vorZl56ZYkI-9L_FUdawi0n2UemRtxMMkSqK95AACZA,182
30
- absfuyu/extra/beautiful.py,sha256=Bzlh1yWQxfOu1SMYA-EJDviksEHs9zqkYC64jc2Sy4k,8137
31
- absfuyu/extra/data_analysis.py,sha256=kZU89eWNNdj16CR7HIPBfs9SJNqZw0nafsA5WpKl1B4,568
32
- absfuyu/extra/da/__init__.py,sha256=vLPcbCwsoGd3hqrsK3Y14p5JEQayvKN0FuqMx-dteig,913
33
- absfuyu/extra/da/dadf.py,sha256=fvfoOVCAbI2G3_AyHHIXDfBaBMG0fhXPn8e5qMQyFOc,37624
34
- absfuyu/extra/da/dadf_base.py,sha256=AcwyAUcenBLQKMXprNFAohgFqpQqDq-vuuxaDSlHiEc,5167
35
- absfuyu/extra/da/df_func.py,sha256=9yxm7k0O_f5KW0BhAuhZf7lWlZLJfd-zaZ7ApHn0QBA,2524
36
- absfuyu/extra/da/mplt.py,sha256=OmHdvqlbr94wLnbICpuactAf-dCaol6qKM3-63ZcFKU,6305
37
- absfuyu/fun/__init__.py,sha256=No69qm7BlYwNUuSFYO8GfxqO18FRnINAtn10LoFq7bM,5435
38
- absfuyu/fun/tarot.py,sha256=25G9ncr5a5DFkcx3pfq8ON7Y76crZSL9vIaPDVzceRQ,2401
39
- absfuyu/game/__init__.py,sha256=eMNamB9D59Lr5NWqikHsSskOzo0O86w-4wUc2E5mYhA,4691
40
- absfuyu/game/game_stat.py,sha256=qdcKXVXOorlgiPaePjULXkyRCIc4Gl2qanJ3wp3HMjg,1236
41
- absfuyu/game/sudoku.py,sha256=kuE2_Yj4DNX5ucx_2cUm2hmPt1YFGAhsXMOc0AutNlg,10405
42
- absfuyu/game/tictactoe.py,sha256=kd3jm3x6qHa_f0bBuSLgZC4yYjYVLLMyGOnnb8vBBS4,9960
43
- absfuyu/game/wordle.py,sha256=nSPrYnLC4KXndBRsS87OMUyhacuB5BjrNbDoqPMxVKQ,101576
44
- absfuyu/general/__init__.py,sha256=QdigyO32IATSvildy8Wz9euKplrhBWo3ZUihtFkozTw,472
45
- absfuyu/general/content.py,sha256=AWjHVEi3L9E-bFmJsjezMsLkHUiu8HI1mBx0Sl5Vyd4,17122
46
- absfuyu/general/human.py,sha256=nqxtAq9sOxU7pfaBqy7UvwEoB3pk9-oj1j8wA1wqwn4,8099
47
- absfuyu/general/shape.py,sha256=2hroh_azs7gkkYLQlay2ayxP_8L5dZX6FcDJjniC-tI,38619
48
- absfuyu/pkg_data/__init__.py,sha256=YZbaTAAMCVbBgQ_pdkcp8VKT5FPxnf9CEEHCvTXnleU,5510
49
- absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
50
- absfuyu/pkg_data/deprecated.py,sha256=gzPZe91S2zFaaUApcmvlZvwfjiTb77vuzBv7Q-yRf_A,4349
51
- absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
52
- absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
53
- absfuyu/tools/__init__.py,sha256=-8fUNP5PPcrcmb1HEtEQYPFrRP1_ASptSKxXX3sQ3lk,777
54
- absfuyu/tools/checksum.py,sha256=H_ynMXYBHfXU0UNI8OF-LRDYsTGkejrLzLp8tLmkQB0,5666
55
- absfuyu/tools/converter.py,sha256=bVnI1xNGJIVgGq3mmxxWn_GmYkDmwTI5JS-Z4or7o6c,12951
56
- absfuyu/tools/generator.py,sha256=2gKmJVJToO5ywGM-lEA8AODjEg6VoVHT1D1fSddYbXc,8996
57
- absfuyu/tools/inspector.py,sha256=ur89cj2Fax-01Jbu-U0og9f2gzPOzk2E1qMC-rTL1XQ,13985
58
- absfuyu/tools/keygen.py,sha256=tEh-dz6PY29PTiqOCzqWH6j1HxW_7tjgUjdm2kKyRGk,7115
59
- absfuyu/tools/obfuscator.py,sha256=4zJC1HEkP_EuQohAufQwmsqFA91qeia2wG5n9qaxlU4,13669
60
- absfuyu/tools/passwordlib.py,sha256=1Iv2lBjodF-fZavnbP70iS9Jvp9O16ziprg0LXnuPok,11128
61
- absfuyu/tools/shutdownizer.py,sha256=3dEMQITEdDa1MHiEApWW1FUtWSm-0BquKgALt2XZi28,8549
62
- absfuyu/tools/web.py,sha256=SElkz3b4rewWHP7shbdgIh06g_QoDBdZGnQ-jl3cT0M,1240
63
- absfuyu/util/__init__.py,sha256=dqqOBqFjNslJJ_sUt23D_HgZEXmxNlexLYnvcS4D7vw,3831
64
- absfuyu/util/api.py,sha256=JghzqXJy9kAy__M-ZknhthEmOIU5rjJ4le5ZCLV4Bpk,4288
65
- absfuyu/util/json_method.py,sha256=MjCi0hQg6T992BTnKMCsZixsS6tZhYRZC4BNCJJ5zrc,2197
66
- absfuyu/util/lunar.py,sha256=VVngR59NfDxcWJlGrbJkcykrnb_F7IOMn_gsfWOZe6Q,13630
67
- absfuyu/util/path.py,sha256=tOGyvlPxjE64x0vSHYKQs6ABA3c5xPlJ8WXCNmio-MQ,19444
68
- absfuyu/util/performance.py,sha256=FokAopq44txHUIG-4zU2dKdIVoBMJgGr-iPktLFDjeg,8632
69
- absfuyu/util/shorten_number.py,sha256=Cbotfqq0NBkOgmMJy3gue56p-PXfXxok7tBWDadN82s,8312
70
- absfuyu/util/text_table.py,sha256=L5w3mxYezatm-zriqR78_RtYt8oxNzZizYn17hiZz-8,8181
71
- absfuyu/util/zipped.py,sha256=EfwUDg5eWbu78oRsmr-eST-AdSzyrPU0l8KO4D8dhcQ,3067
72
- absfuyu-5.1.0.dist-info/METADATA,sha256=gLOnkMbrFEJLDkGuIraAMK32TR31ELNwkFrM0FXhMmo,4965
73
- absfuyu-5.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
74
- absfuyu-5.1.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
75
- absfuyu-5.1.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
76
- absfuyu-5.1.0.dist-info/RECORD,,