absfuyu 5.2.0__py3-none-any.whl → 5.4.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 +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 +12 -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 +32 -2
  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 +15 -6
  19. absfuyu/dxt/dxt_support.py +2 -2
  20. absfuyu/dxt/intext.py +51 -33
  21. absfuyu/dxt/listext.py +138 -10
  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 +57 -41
  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/fun/__init__.py +7 -2
  32. absfuyu/fun/rubik.py +442 -0
  33. absfuyu/fun/tarot.py +2 -2
  34. absfuyu/game/__init__.py +2 -2
  35. absfuyu/game/game_stat.py +2 -2
  36. absfuyu/game/sudoku.py +2 -2
  37. absfuyu/game/tictactoe.py +2 -2
  38. absfuyu/game/wordle.py +2 -2
  39. absfuyu/general/__init__.py +2 -2
  40. absfuyu/general/content.py +2 -2
  41. absfuyu/general/human.py +2 -2
  42. absfuyu/general/shape.py +2 -2
  43. absfuyu/logger.py +2 -2
  44. absfuyu/pkg_data/__init__.py +2 -2
  45. absfuyu/pkg_data/deprecated.py +2 -2
  46. absfuyu/sort.py +2 -2
  47. absfuyu/tools/__init__.py +4 -4
  48. absfuyu/tools/checksum.py +2 -2
  49. absfuyu/tools/converter.py +2 -2
  50. absfuyu/tools/generator.py +2 -2
  51. absfuyu/tools/inspector.py +41 -6
  52. absfuyu/tools/keygen.py +2 -2
  53. absfuyu/tools/obfuscator.py +2 -2
  54. absfuyu/tools/passwordlib.py +2 -2
  55. absfuyu/tools/shutdownizer.py +2 -2
  56. absfuyu/tools/web.py +2 -2
  57. absfuyu/typings.py +7 -2
  58. absfuyu/util/__init__.py +57 -3
  59. absfuyu/util/api.py +2 -2
  60. absfuyu/util/json_method.py +2 -2
  61. absfuyu/util/lunar.py +2 -2
  62. absfuyu/util/path.py +158 -4
  63. absfuyu/util/performance.py +2 -2
  64. absfuyu/util/shorten_number.py +2 -2
  65. absfuyu/util/text_table.py +220 -64
  66. absfuyu/util/zipped.py +2 -2
  67. absfuyu/version.py +2 -2
  68. {absfuyu-5.2.0.dist-info → absfuyu-5.4.0.dist-info}/METADATA +1 -1
  69. absfuyu-5.4.0.dist-info/RECORD +77 -0
  70. absfuyu-5.2.0.dist-info/RECORD +0 -76
  71. {absfuyu-5.2.0.dist-info → absfuyu-5.4.0.dist-info}/WHEEL +0 -0
  72. {absfuyu-5.2.0.dist-info → absfuyu-5.4.0.dist-info}/entry_points.txt +0 -0
  73. {absfuyu-5.2.0.dist-info → absfuyu-5.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -3,8 +3,8 @@ Absufyu: Utilities
3
3
  ------------------
4
4
  Text table
5
5
 
6
- Version: 5.2.0
7
- Date updated: 13/03/2025 (dd/mm/yyyy)
6
+ Version: 5.4.0
7
+ Date updated: 21/03/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -16,32 +16,17 @@ __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
- from typing import Literal, Protocol, cast
20
+ from typing import Literal
22
21
 
23
22
  from absfuyu.core import BaseClass
24
23
 
25
24
 
26
25
  # Style
27
26
  # ---------------------------------------------------------------------------
28
- class BoxDrawingCharacter(Protocol):
29
- UPPER_LEFT_CORNER: str = ""
30
- UPPER_RIGHT_CORNER: str = ""
31
- HORIZONTAL: str = ""
32
- VERTICAL: str = ""
33
- LOWER_LEFT_CORNER: str = ""
34
- LOWER_RIGHT_CORNER: str = ""
35
- VERTICAL_RIGHT: str = ""
36
- VERTICAL_LEFT: str = ""
37
- CROSS: str = ""
38
- HORIZONTAL_UP: str = ""
39
- HORIZONTAL_DOWN: str = ""
40
-
41
-
42
- class BoxDrawingCharacterNormal(StrEnum):
27
+ class BoxDrawingCharacterBase:
43
28
  """
44
- Box drawing characters - Normal
29
+ Box drawing characters - Base/Normal characters
45
30
 
46
31
  Characters reference: https://en.wikipedia.org/wiki/Box-drawing_characters
47
32
  """
@@ -59,12 +44,61 @@ class BoxDrawingCharacterNormal(StrEnum):
59
44
  HORIZONTAL_DOWN = "\u252c"
60
45
 
61
46
 
62
- class BoxDrawingCharacterBold(StrEnum):
63
- """
64
- Box drawing characters - Bold
47
+ class BoxDrawingCharacterNormal(BoxDrawingCharacterBase):
48
+ """Normal"""
49
+
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"
65
72
 
66
- Characters reference: https://en.wikipedia.org/wiki/Box-drawing_characters
67
- """
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"""
68
102
 
69
103
  UPPER_LEFT_CORNER = "\u250f"
70
104
  UPPER_RIGHT_CORNER = "\u2513"
@@ -79,32 +113,15 @@ class BoxDrawingCharacterBold(StrEnum):
79
113
  HORIZONTAL_DOWN = "\u2533"
80
114
 
81
115
 
82
- class BoxDrawingCharacterDashed(StrEnum):
83
- """
84
- Box drawing characters - Dashed
85
-
86
- Characters reference: https://en.wikipedia.org/wiki/Box-drawing_characters
87
- """
88
-
89
- UPPER_LEFT_CORNER = "\u250c"
90
- UPPER_RIGHT_CORNER = "\u2510"
91
- HORIZONTAL = "\u254c"
92
- VERTICAL = "\u254e"
93
- LOWER_LEFT_CORNER = "\u2514"
94
- LOWER_RIGHT_CORNER = "\u2518"
95
- VERTICAL_RIGHT = "\u251c"
96
- VERTICAL_LEFT = "\u2524"
97
- CROSS = "\u253c"
98
- HORIZONTAL_UP = "\u2534"
99
- HORIZONTAL_DOWN = "\u252c"
116
+ class BoxDrawingCharacterDashedBold(BoxDrawingCharacterBold):
117
+ """Dashed bold"""
100
118
 
119
+ HORIZONTAL = "\u254d"
120
+ VERTICAL = "\u254f"
101
121
 
102
- class BoxDrawingCharacterDouble(StrEnum):
103
- """
104
- Box drawing characters - Double
105
122
 
106
- Characters reference: https://en.wikipedia.org/wiki/Box-drawing_characters
107
- """
123
+ class BoxDrawingCharacterDouble(BoxDrawingCharacterBase):
124
+ """Double"""
108
125
 
109
126
  UPPER_LEFT_CORNER = "\u2554"
110
127
  UPPER_RIGHT_CORNER = "\u2557"
@@ -120,15 +137,16 @@ class BoxDrawingCharacterDouble(StrEnum):
120
137
 
121
138
 
122
139
  def get_box_drawing_character(
123
- style: Literal["normal", "bold", "dashed", "double"] = "normal",
124
- ) -> BoxDrawingCharacter:
140
+ style: Literal["normal", "bold", "dashed", "double", "rounded"] | str = "normal",
141
+ ) -> type[BoxDrawingCharacterBase]:
125
142
  """
126
143
  Choose style for Box drawing characters.
127
144
 
128
145
  Parameters
129
146
  ----------
130
- style : Literal["normal", "bold", "dashed", "double"], optional
131
- Style for the table, by default ``"normal"``
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``
132
150
 
133
151
  Returns
134
152
  -------
@@ -136,16 +154,29 @@ def get_box_drawing_character(
136
154
  Box drawing characters in specified style.
137
155
  """
138
156
 
139
- if style.lower() == "normal":
140
- return cast(BoxDrawingCharacter, BoxDrawingCharacterNormal)
141
- elif style.lower() == "bold":
142
- return cast(BoxDrawingCharacter, BoxDrawingCharacterBold)
143
- elif style.lower() == "dashed":
144
- return cast(BoxDrawingCharacter, BoxDrawingCharacterDashed)
145
- elif style.lower() == "double":
146
- return cast(BoxDrawingCharacter, BoxDrawingCharacterDouble)
147
- else:
148
- return cast(BoxDrawingCharacter, BoxDrawingCharacterNormal)
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
149
180
 
150
181
 
151
182
  # Class
@@ -171,7 +202,7 @@ class OneColumnTableMaker(BaseClass):
171
202
  def __init__(
172
203
  self,
173
204
  ncols: int | None = None,
174
- style: Literal["normal", "bold", "dashed", "double"] = "normal",
205
+ style: Literal["normal", "bold", "dashed", "double", "rounded"] = "normal",
175
206
  ) -> None:
176
207
  """
177
208
  Table Maker instance
@@ -184,7 +215,7 @@ class OneColumnTableMaker(BaseClass):
184
215
  defaults to ``88`` when failed to use ``os.get_terminal_size()``.
185
216
  By default ``None``
186
217
 
187
- style : Literal["normal", "bold", "dashed", "double"], optional
218
+ style : Literal["normal", "bold", "dashed", "double", "rounded"], optional
188
219
  Style for the table, by default ``"normal"``
189
220
  """
190
221
 
@@ -304,3 +335,128 @@ class OneColumnTableMaker(BaseClass):
304
335
  if table is None:
305
336
  return ""
306
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
@@ -4,8 +4,8 @@ Absfuyu: Zipped
4
4
  Zipping stuff
5
5
  (deprecated, use absfuyu.util.path.Directory)
6
6
 
7
- Version: 5.2.0
8
- Date updated: 16/03/2025 (dd/mm/yyyy)
7
+ Version: 5.4.0
8
+ Date updated: 21/03/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.2.0
7
- Date updated: 15/03/2025 (dd/mm/yyyy)
6
+ Version: 5.4.0
7
+ Date updated: 21/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.2.0
3
+ Version: 5.4.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,77 @@
1
+ absfuyu/__init__.py,sha256=lu-vrTXtbFKKRmkiE2eNbzembdRFDYBCDdUt-_aKYPY,600
2
+ absfuyu/__main__.py,sha256=fHXCgDuBYOlnNQ6l7N4SX9ejR567HOZ9wTD-7hE5xzs,595
3
+ absfuyu/logger.py,sha256=grr58OGsY44caLC4ktoZjkWdtjGd1JnMew71BP02HIg,13043
4
+ absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ absfuyu/sort.py,sha256=FMZbwalZLbN8mTZ2Sk3Ma6z_7rLp-XzkaSguf8u5WJc,3250
6
+ absfuyu/typings.py,sha256=c6QqvyC857NSVYd9fwyYXZdGGn24zlhVhOc6umBE_Xs,4662
7
+ absfuyu/version.py,sha256=TDbncX4LHHNhTtWuu4uViion2HTAi5TUjTvIp7IA450,14489
8
+ absfuyu/cli/__init__.py,sha256=mKkboqzQeG-wPiKobSK90ZP1Sv9lDoAjU-XgTCfFol0,1181
9
+ absfuyu/cli/color.py,sha256=pj2Qhr_nXn-a5_Nv30U8oZ_5KNedGROOVbB-lSLRx6o,1139
10
+ absfuyu/cli/config_group.py,sha256=0p2Hd3UF9sl6kzAw1ia9DSaMWLK4RS8093VSySngh40,1505
11
+ absfuyu/cli/do_group.py,sha256=W3afR3tBIWh1OhQ_VDKQp9ac_6eCoujFeNGU5QbOS6I,2720
12
+ absfuyu/cli/game_group.py,sha256=rBmZq9c41uwch4dsuIieUHl_MRYZNkFIaWRsH6hoO9Q,2623
13
+ absfuyu/cli/tool_group.py,sha256=ucNkDWmvkcxIoTvIpOWm6w1VI3NJ9cXaGNfwUOcDSgU,3416
14
+ absfuyu/config/__init__.py,sha256=9qPGDq5Iy1HuNllynanvceaW9KjhWvFZsOb8bY5GH5g,8238
15
+ absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
16
+ absfuyu/core/__init__.py,sha256=IqqSaepZUgQepM14Dw8qS66nVa-8jCq-ocADopz8Fv8,1186
17
+ absfuyu/core/baseclass.py,sha256=sMtufbcqGBZW1KXgUhh17y2NdXYbydE-SamcXtaMGYY,23588
18
+ absfuyu/core/baseclass2.py,sha256=FF85FobvmUV9vh0jl_4F6-n2lPutvXm-a-qgdFhftKU,5366
19
+ absfuyu/core/decorator.py,sha256=HE_9MzlJfMBsWrJkL-cSIqT-tckauf9NO10IIwDehRo,4176
20
+ absfuyu/core/docstring.py,sha256=_VzQtfJY6JazWskoBdGr_vAU4oPQmlxPWwTL7HqvfoY,5791
21
+ absfuyu/core/dummy_cli.py,sha256=mMibk_wG_NvV4-RuEaqTnPZjnbtJ-04jsiQ-ZJCcF0A,1884
22
+ absfuyu/core/dummy_func.py,sha256=YsgJogzTu5j7cF8mEVQPoMy1QTbzALX08xfO-A69gUc,1426
23
+ absfuyu/dxt/__init__.py,sha256=i52FMtM86JlGGCGVhon5h02DhL55y-RLAjNpdqrwlUE,986
24
+ absfuyu/dxt/dictext.py,sha256=YM99dTiFX_kgCwLiTAPr-1renx2TgIPOT4FAgS3LQhQ,6325
25
+ absfuyu/dxt/dxt_support.py,sha256=oAbKFV--ainWQ2jEEYZlxPJrgS-l2SJpUC8stCTGW-I,2109
26
+ absfuyu/dxt/intext.py,sha256=tHlbU7B3xA9tuV8muCpISYnfkxbWv2PSSA_UXlpByyM,17835
27
+ absfuyu/dxt/listext.py,sha256=X_myR5piQ800I0-bxnn2m4M2ZAH0z42uIFxy9oH8iI4,22825
28
+ absfuyu/dxt/strext.py,sha256=eSxxXmYayXLyPrgBmtUGVSupU16Yx2XSFl8wf9Wx0Nk,16257
29
+ absfuyu/extra/__init__.py,sha256=-88W-lq9p8DZ3mS353kQhGRq0bDYyCIvhoHC_1efGvY,182
30
+ absfuyu/extra/beautiful.py,sha256=IywSDlHpfLPssa4KWkbMhZ-I-ic-K14Xk2FcAaMhdWg,8137
31
+ absfuyu/extra/data_analysis.py,sha256=tA1CicRy0WbBTwDUaqRsuXmoyzpm9ebD2GrbQnCRdgs,499
32
+ absfuyu/extra/da/__init__.py,sha256=xLwatDczRCIozeVAnb5HxSyA-Y90FpZ9qCUW4nvOuKM,913
33
+ absfuyu/extra/da/dadf.py,sha256=w0GPBSwu25H9ykRJSr5_WCt5tJYdamhyQhIOk3DY0zg,39136
34
+ absfuyu/extra/da/dadf_base.py,sha256=Xy_gNTK4yrn_vMZOeh8gLv8xtwQBhNyy6O15vaNK_vk,5167
35
+ absfuyu/extra/da/df_func.py,sha256=VefneaMOQrTgzxWW4tTWXhmFFxepzclweJlC0f7oInw,2524
36
+ absfuyu/extra/da/mplt.py,sha256=rptxZDhkw3Jx7Gql6vscatm7zCT1Ekxa1sTltsmFGXo,6305
37
+ absfuyu/fun/__init__.py,sha256=gwSaZbZ6PWPD31jlXWyqhcK_-KwRMgyiUdFDLP5xEok,5605
38
+ absfuyu/fun/rubik.py,sha256=IKbzGnrgIvWyFdkjDH-w0NlwiKMTCutf6eTaiD6c3VA,29677
39
+ absfuyu/fun/tarot.py,sha256=XzPCX13Ab4D0u6NYQ3nvLY7dTzyNUuR3lQZBiBPYpzk,2401
40
+ absfuyu/game/__init__.py,sha256=5IieTXFELjyJN3-YUj-uHso2qmLAGGFFuR751970oXQ,4691
41
+ absfuyu/game/game_stat.py,sha256=Axc6vTHBQIli5WmiYASxFXZk3od1Jn_q0jGLTFGn1ts,1236
42
+ absfuyu/game/sudoku.py,sha256=Y9XTBYaFHylKd-euOtF8Ju3xZNG0BYyPO1ExyivOAWg,10405
43
+ absfuyu/game/tictactoe.py,sha256=3Crwt13R9FnBzggpojWQCTFLjQmNsuNtS0aMGQyRcSk,9958
44
+ absfuyu/game/wordle.py,sha256=_Oo-7OpHkqdMn6LBMRxmSn7Opgy-Ufp2SBblkX9SiXA,101576
45
+ absfuyu/general/__init__.py,sha256=TNU8ziZGjc1eksIJZUQh4L91iq3MFg69GscDimszfxc,472
46
+ absfuyu/general/content.py,sha256=CFms2FZr4UoAS1i3eePWDr17bPg9LbK2GdCnDRt5TJ0,17122
47
+ absfuyu/general/human.py,sha256=Mi5b5IFnsHTWoCdTkAujEGubM7yx2iWtKzaD5riEmFg,8099
48
+ absfuyu/general/shape.py,sha256=jWoi9HNTsl27P1h3TyLDHoiglXLpUDtXqGhPuJy8o9Q,38619
49
+ absfuyu/pkg_data/__init__.py,sha256=R32DXgfF-XwX7UyULKiVKCbZIYNQhvvA6J72LkTFzxM,5510
50
+ absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
51
+ absfuyu/pkg_data/deprecated.py,sha256=r52ryc4Zr90LC-m7cjWvayz-fXM08j7mv_9m9u_8NeQ,4349
52
+ absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
53
+ absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
54
+ absfuyu/tools/__init__.py,sha256=RA8OMUhbwVoFdGw9sP_oA-_8k0SU6WF3Qu75WcAUFgk,916
55
+ absfuyu/tools/checksum.py,sha256=mfafE7IXtRdPQf9NYxTvsOqUNhv76cxRux368DGdCVo,5666
56
+ absfuyu/tools/converter.py,sha256=uIXd6UziA0IcuceGowjzaJIiOCIECZwecIrdYk8-F-s,13566
57
+ absfuyu/tools/generator.py,sha256=1Der4pVYk0EIh4v6aMPUsUUBpL7V0-n385h7HihzUtE,13473
58
+ absfuyu/tools/inspector.py,sha256=aCrQm1VJfm28c11XBGdmTSHntALcLZQmS90QxPA36qA,16523
59
+ absfuyu/tools/keygen.py,sha256=OXtQzEHqJMo_3UySdlSrc8dYoSLG_5ynv1Gr6pWVYq0,7115
60
+ absfuyu/tools/obfuscator.py,sha256=L-qb5wdAHvyuLchAfym3NR8DHXL8foPjmaK-ebblN60,13669
61
+ absfuyu/tools/passwordlib.py,sha256=6bHAmb15AV4AQWHwhWCwhFeXpGU8O_OTNzcur3DQYpI,11080
62
+ absfuyu/tools/shutdownizer.py,sha256=WqFNEw0qQoE4GBN6PVRpLk4-AQ64BtHJ7UtwGnkDwC4,8549
63
+ absfuyu/tools/web.py,sha256=UDYo32V1LGGGd-xbJ1JHVCFZhZFCs8uwOMwVOrNDhEc,1240
64
+ absfuyu/util/__init__.py,sha256=n1LIcEJ6YK-bCqz6FP028EhHUD5VQYW8ngnU85ZH910,5723
65
+ absfuyu/util/api.py,sha256=qBDuQA_cHZaRgC678w5AhH0jZPWJnKNDFd1pOfxZ6yA,4463
66
+ absfuyu/util/json_method.py,sha256=gnR-ZOcCcN-d6zjj_wWFP0tKX-8aLkLAvFaP23qJcNk,2847
67
+ absfuyu/util/lunar.py,sha256=bF3edGWAyz0klUxMix6OiTzhNMqoG-v0Wcjv5kbaNo0,13630
68
+ absfuyu/util/path.py,sha256=qYNL3qVqKMJHhM7b3rUAKRXux3eghEsuJR2vj8eZp60,22998
69
+ absfuyu/util/performance.py,sha256=Fq0em8AmQgFMjgETAudzWxqSFMqMXqsbdMofX8Q0QRE,12094
70
+ absfuyu/util/shorten_number.py,sha256=a1QW30hDyZmnd6ejjaXybXrBDGQKWfImOcr1jJ-cGUE,8312
71
+ absfuyu/util/text_table.py,sha256=MFe9LO4ruEAB4VudcWhemMCv_bMRZ5A1QJ4yPYJNzc0,13198
72
+ absfuyu/util/zipped.py,sha256=uNO8Y2PSQnQVqImpKVdBolOvbnC7ZBgVLkb61m2yl9E,3042
73
+ absfuyu-5.4.0.dist-info/METADATA,sha256=4cs4FfWiP75ongcV5mHF2hlreEQsO1ZNw7t21vgYTFY,4965
74
+ absfuyu-5.4.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
75
+ absfuyu-5.4.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
76
+ absfuyu-5.4.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
77
+ absfuyu-5.4.0.dist-info/RECORD,,
@@ -1,76 +0,0 @@
1
- absfuyu/__init__.py,sha256=Me_UQT0wqp5GPpohk7HBD3ijJdIsIafBJJI6vn_SRDQ,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=cVqYN5t0WTWRzvY0WdsCSWZcW-n2JR0JMpYGWOVRKUs,2438
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=x3UIToKNZo09w6xVC_MWQrhZcZJ7q_nFq7sr9s-Ts7g,22591
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=Hr3b6B2si6pbzI_vEmGr2_PiTQpQN2ICcrIrSN5JPPw,19328
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=duhZwbHBm2F5g_QY_gTx1JK1segxKyVsg-wIr4t9q-Y,38688
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=yAO-Iq348oQYAbizMwJHhMEyonpe3HIkxxIwVhZh3Yw,926
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=OHq2Hj7uzisaqto1mngVVYo2rvpzyUGKFSUMpsjDzmw,15107
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=uZkLRlkUwq4p261pB7VHuvn3kxbMHxyXBJTefsWhhgA,19444
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=lkZREFjw_Jh1Hl2vhekROASVHvB3VoWaK9bmRMLp7bU,9112
71
- absfuyu/util/zipped.py,sha256=8I6vW2hTNQtogzT7nKOMhSJrsQup7uRK0nu5JOsikO0,3042
72
- absfuyu-5.2.0.dist-info/METADATA,sha256=pGcb4H4C4H3ZhlhY5C22n1coTfCyp4YA0pkY8kO_BvQ,4965
73
- absfuyu-5.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
74
- absfuyu-5.2.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
75
- absfuyu-5.2.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
76
- absfuyu-5.2.0.dist-info/RECORD,,