absfuyu 5.0.0__py3-none-any.whl → 5.0.1__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 (58) hide show
  1. absfuyu/__init__.py +1 -1
  2. absfuyu/__main__.py +1 -1
  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 +1 -1
  10. absfuyu/core/__init__.py +1 -1
  11. absfuyu/core/baseclass.py +5 -5
  12. absfuyu/core/baseclass2.py +1 -1
  13. absfuyu/core/docstring.py +24 -21
  14. absfuyu/core/dummy_func.py +7 -5
  15. absfuyu/dxt/__init__.py +1 -1
  16. absfuyu/dxt/dictext.py +1 -1
  17. absfuyu/dxt/dxt_support.py +1 -1
  18. absfuyu/dxt/intext.py +1 -1
  19. absfuyu/dxt/listext.py +1 -1
  20. absfuyu/dxt/strext.py +2 -2
  21. absfuyu/extra/__init__.py +2 -2
  22. absfuyu/extra/beautiful.py +2 -1
  23. absfuyu/extra/data_analysis.py +1 -1
  24. absfuyu/fun/__init__.py +1 -1
  25. absfuyu/fun/tarot.py +2 -2
  26. absfuyu/game/__init__.py +2 -2
  27. absfuyu/game/game_stat.py +2 -2
  28. absfuyu/game/sudoku.py +2 -2
  29. absfuyu/game/tictactoe.py +2 -2
  30. absfuyu/game/wordle.py +2 -2
  31. absfuyu/general/__init__.py +4 -4
  32. absfuyu/general/content.py +2 -2
  33. absfuyu/general/shape.py +1 -1
  34. absfuyu/logger.py +2 -2
  35. absfuyu/pkg_data/__init__.py +1 -1
  36. absfuyu/pkg_data/deprecated.py +2 -2
  37. absfuyu/sort.py +2 -2
  38. absfuyu/tools/__init__.py +1 -1
  39. absfuyu/tools/checksum.py +1 -1
  40. absfuyu/tools/converter.py +1 -1
  41. absfuyu/tools/obfuscator.py +2 -2
  42. absfuyu/tools/passwordlib.py +2 -2
  43. absfuyu/tools/web.py +2 -2
  44. absfuyu/util/__init__.py +2 -2
  45. absfuyu/util/api.py +1 -1
  46. absfuyu/util/lunar.py +2 -2
  47. absfuyu/util/path.py +1 -1
  48. absfuyu/util/performance.py +1 -1
  49. absfuyu/util/shorten_number.py +1 -1
  50. absfuyu/util/zipped.py +2 -2
  51. absfuyu/version.py +59 -42
  52. {absfuyu-5.0.0.dist-info → absfuyu-5.0.1.dist-info}/METADATA +2 -2
  53. absfuyu-5.0.1.dist-info/RECORD +68 -0
  54. absfuyu-5.0.0.dist-info/RECORD +0 -68
  55. /absfuyu/{general → tools}/generator.py +0 -0
  56. {absfuyu-5.0.0.dist-info → absfuyu-5.0.1.dist-info}/WHEEL +0 -0
  57. {absfuyu-5.0.0.dist-info → absfuyu-5.0.1.dist-info}/entry_points.txt +0 -0
  58. {absfuyu-5.0.0.dist-info → absfuyu-5.0.1.dist-info}/licenses/LICENSE +0 -0
absfuyu/__init__.py CHANGED
@@ -22,7 +22,7 @@ Using in cmd:
22
22
  __title__ = "absfuyu"
23
23
  __author__ = "AbsoluteWinter"
24
24
  __license__ = "MIT License"
25
- __version__ = "5.0.0"
25
+ __version__ = "5.0.1"
26
26
  __all__ = [
27
27
  "core",
28
28
  "config",
absfuyu/__main__.py CHANGED
@@ -4,7 +4,7 @@ ABSFUYU
4
4
  COMMAND LINE INTERFACE
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 18/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Library
absfuyu/cli/__init__.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU
3
3
  -------
4
4
  COMMAND LINE INTERFACE
5
5
 
6
- Version: 1.1.0
7
- Date updated: 09/02/2025 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 16/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  __all__ = ["cli"]
absfuyu/cli/color.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Color
5
5
 
6
- Version: 1.0.0
7
- Date updated: 14/04/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Config
5
5
 
6
- Version: 1.0.0
7
- Date updated: 14/04/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 16/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  __all__ = ["config_group"]
absfuyu/cli/do_group.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Do
5
5
 
6
- Version: 1.4.0
7
- Date updated: 07/02/2025 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  __all__ = ["do_group"]
absfuyu/cli/game_group.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Game
5
5
 
6
- Version: 1.0.0
7
- Date updated: 14/04/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 16/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  __all__ = ["game_group"]
absfuyu/cli/tool_group.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Tool
5
5
 
6
- Version: 1.0.0
7
- Date updated: 10/02/2025 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  __all__ = ["tool_group"]
@@ -4,7 +4,7 @@ Absfuyu: Configuration
4
4
  Package configuration module
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 12/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/core/__init__.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Core
4
4
  Bases for other features
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 13/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/core/baseclass.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Core
4
4
  Bases for other features
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 12/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -51,12 +51,12 @@ class ShowAllMethodsMixin:
51
51
  @classmethod
52
52
  def show_all_methods(
53
53
  cls,
54
+ print_result: bool = False,
54
55
  include_classmethod: bool = True,
55
56
  classmethod_indicator: str = "<classmethod>",
56
57
  include_staticmethod: bool = True,
57
58
  staticmethod_indicator: str = "<staticmethod>",
58
59
  include_private_method: bool = False,
59
- print_result: bool = False,
60
60
  ) -> dict[str, list[str]]:
61
61
  """
62
62
  Class method to display all methods of the class and its parent classes,
@@ -64,6 +64,9 @@ class ShowAllMethodsMixin:
64
64
 
65
65
  Parameters
66
66
  ----------
67
+ print_result : bool, optional
68
+ Beautifully print the output, by default ``False``
69
+
67
70
  include_classmethod : bool, optional
68
71
  Whether to include classmethod in the output, by default ``True``
69
72
 
@@ -83,9 +86,6 @@ class ShowAllMethodsMixin:
83
86
  include_private_method : bool, optional
84
87
  Whether to include private method in the output, by default ``False``
85
88
 
86
- print_result : bool, optional
87
- Beautifully print the output, by default ``False``
88
-
89
89
  Returns
90
90
  -------
91
91
  dict[str, list[str]]
@@ -4,7 +4,7 @@ Absfuyu: Core
4
4
  Bases for other features (with library)
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 12/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/core/docstring.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Core
4
4
  Sphinx docstring decorator
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 13/02/2025 (dd/mm/yyyy)
7
+ Date updated: 23/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -28,9 +28,9 @@ from typing import ClassVar, ParamSpec, TypeVar, overload
28
28
 
29
29
  # Type
30
30
  # ---------------------------------------------------------------------------
31
- P = ParamSpec("P") # Parameter type
32
- R = TypeVar("R") # Return type - Can be anything
33
- T = TypeVar("T", bound=type) # Type type - Can be any subtype of `type`
31
+ _P = ParamSpec("_P") # Parameter type
32
+ _R = TypeVar("_R") # Return type - Can be anything
33
+ _T = TypeVar("_T", bound=type) # Type type - Can be any subtype of `type`
34
34
 
35
35
  _SPHINX_DOCS_TEMPLATE = Template("$line_break*$mode in version $version$reason*")
36
36
 
@@ -88,10 +88,13 @@ class SphinxDocstring:
88
88
  self.mode = mode
89
89
 
90
90
  @overload
91
- def __call__(self, obj: T) -> T: ... # Class overload
91
+ def __call__(self, obj: _T) -> _T: ... # Class overload
92
+
92
93
  @overload
93
- def __call__(self, obj: Callable[P, R]) -> Callable[P, R]: ... # Function overload
94
- def __call__(self, obj: T | Callable[P, R]) -> T | Callable[P, R]:
94
+ def __call__(
95
+ self, obj: Callable[_P, _R]
96
+ ) -> Callable[_P, _R]: ... # Function overload
97
+ def __call__(self, obj: _T | Callable[_P, _R]) -> _T | Callable[_P, _R]:
95
98
  # Class wrapper
96
99
  if isinstance(obj, type): # if inspect.isclass(obj):
97
100
  obj.__doc__ = (obj.__doc__ or "") + self._generate_version_note(
@@ -101,7 +104,7 @@ class SphinxDocstring:
101
104
 
102
105
  # Function wrapper
103
106
  @wraps(obj)
104
- def wrapper(*args: P.args, **kwargs: P.kwargs) -> R:
107
+ def wrapper(*args: _P.args, **kwargs: _P.kwargs) -> _R:
105
108
  return obj(*args, **kwargs)
106
109
 
107
110
  # Add docstring
@@ -127,19 +130,19 @@ class SphinxDocstring:
127
130
  if docs is None:
128
131
  return res
129
132
 
130
- # # Index of the last whitespaces
131
- # # https://stackoverflow.com/a/13649118
132
- # res = next((i for i, c in enumerate(docs) if not c.isspace()), 0)
133
- # return res if res % 2 == 0 else res - 1
134
-
135
- # Alternative solution
136
- for char in docs:
137
- if char == " ":
138
- res += 1
139
- if char == "\t":
140
- res += 4
141
- if not char.isspace():
142
- break
133
+ try:
134
+ # Replace tabs with space and split line
135
+ lines = docs.expandtabs(4).splitlines()
136
+ except UnicodeError:
137
+ return res
138
+ else:
139
+ # Get indentation of each line and unique it
140
+ indent_set = {len(line) - len(line.lstrip()) for line in lines[1:]}
141
+ # Drop 0
142
+ res_list = sorted([x for x in indent_set if x > 0])
143
+
144
+ if res_list:
145
+ return res_list[0]
143
146
  return res
144
147
 
145
148
  def _generate_version_note(self, num_of_white_spaces: int) -> str:
@@ -4,7 +4,7 @@ Absfuyu: Core
4
4
  Dummy functions when other libraries are unvailable
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 14/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -23,8 +23,9 @@ from importlib import import_module
23
23
  # ---------------------------------------------------------------------------
24
24
  # tqdm wrapper
25
25
  try:
26
- tqdm = import_module("tqdm").tqdm
27
- except ModuleNotFoundError:
26
+ _tqdm = import_module("tqdm")
27
+ tqdm = getattr(_tqdm, "tqdm") # noqa
28
+ except (ModuleNotFoundError, AttributeError):
28
29
 
29
30
  def tqdm(iterable, *args, **kwargs):
30
31
  """
@@ -36,8 +37,9 @@ except ModuleNotFoundError:
36
37
 
37
38
  # unidecode wrapper
38
39
  try:
39
- unidecode = import_module("unidecode").unidecode
40
- except ModuleNotFoundError:
40
+ _unidecode = import_module("unidecode")
41
+ unidecode = getattr(_unidecode, "unidecode") # noqa
42
+ except (ModuleNotFoundError, AttributeError):
41
43
 
42
44
  def unidecode(*args, **kwargs):
43
45
  """
absfuyu/dxt/__init__.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Data Extension
4
4
  Extension for data type such as ``list``, ``str``, ``dict``, ...
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 11/01/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
 
9
9
  Features:
10
10
  ---------
absfuyu/dxt/dictext.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Data Extension
4
4
  dict extension
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 14/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -4,7 +4,7 @@ Absfuyu: Data Extension
4
4
  Support classes
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 11/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/dxt/intext.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Data Extension
4
4
  int extension
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 11/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/dxt/listext.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Data Extension
4
4
  list extension
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 11/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/dxt/strext.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Data Extension
4
4
  str extension
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 11/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -18,8 +18,8 @@ import random
18
18
  from typing import NotRequired, Self, TypedDict
19
19
 
20
20
  from absfuyu.core import ShowAllMethodsMixin, deprecated, versionadded, versionchanged
21
- from absfuyu.general.generator import Charset, Generator
22
21
  from absfuyu.logger import logger
22
+ from absfuyu.tools.generator import Charset, Generator
23
23
  from absfuyu.util import set_min_max
24
24
 
25
25
 
absfuyu/extra/__init__.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Extra
3
3
  --------------
4
4
  Features that require additional libraries
5
5
 
6
- Version: 1.0.1
7
- Date updated: 24/11/2023 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
 
@@ -4,7 +4,7 @@ Absfuyu: Beautiful
4
4
  A decorator that makes output more beautiful
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 18/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -77,6 +77,7 @@ class PerformanceOutput(NamedTuple):
77
77
  return out
78
78
 
79
79
 
80
+ # TODO: header and footer layout to 1,2,3 instead of true false
80
81
  class BeautifulOutput:
81
82
  """A decorator that makes output more beautiful"""
82
83
 
@@ -4,7 +4,7 @@ Absfuyu: Data Analysis [W.I.P]
4
4
  Extension for ``pd.DataFrame``
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 13/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/fun/__init__.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Fun
4
4
  Some fun or weird stuff
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 13/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Library
absfuyu/fun/tarot.py CHANGED
@@ -4,8 +4,8 @@ Absfuyu: Tarot
4
4
  Tarot stuff
5
5
 
6
6
 
7
- Version: 1.0.4
8
- Date updated: 14/11/2024 (dd/mm/yyyy)
7
+ Version: 5.0.0
8
+ Date updated: 22/02/2025 (dd/mm/yyyy)
9
9
 
10
10
  Usage:
11
11
  ------
absfuyu/game/__init__.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Game
3
3
  -------------
4
4
  Contain some game that can be played on terminal
5
5
 
6
- Version: 1.1.0
7
- Date updated: 14/04/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/game/game_stat.py CHANGED
@@ -1,8 +1,8 @@
1
1
  """
2
2
  Game: Game Stat
3
3
 
4
- Version: 1.0.0
5
- Date updated: 14/04/2024 (dd/mm/yyyy)
4
+ Version: 5.0.0
5
+ Date updated: 22/02/2025 (dd/mm/yyyy)
6
6
  """
7
7
 
8
8
  # Module level
absfuyu/game/sudoku.py CHANGED
@@ -3,8 +3,8 @@ Game: Sudoku
3
3
  ------------
4
4
  Sudoku 9x9 Solver
5
5
 
6
- Version: 1.0.3
7
- Date updated: 15/11/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
 
9
9
  Credit:
10
10
  -------
absfuyu/game/tictactoe.py CHANGED
@@ -2,8 +2,8 @@
2
2
  Game: Tic Tac Toe
3
3
  -----------------
4
4
 
5
- Version: 2.0.4
6
- Date updated: 15/11/2024 (dd/mm/yyyy)
5
+ Version: 5.0.0
6
+ Date updated: 22/02/2025 (dd/mm/yyyy)
7
7
  """
8
8
 
9
9
 
absfuyu/game/wordle.py CHANGED
@@ -2,8 +2,8 @@
2
2
  Game: Wordle Solver
3
3
  -------------------
4
4
 
5
- Version: 1.1.4
6
- Date updated: 14/04/2024 (dd/mm/yyyy)
5
+ Version: 5.0.0
6
+ Date updated: 22/02/2025 (dd/mm/yyyy)
7
7
 
8
8
  Usage:
9
9
  ------
@@ -3,8 +3,8 @@ Absfuyu: General
3
3
  ----------------
4
4
  Collection of useful classes
5
5
 
6
- Version: 1.1.4
7
- Date updated: 15/03/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
 
9
9
  Features:
10
10
  ---------
@@ -15,9 +15,9 @@ Features:
15
15
 
16
16
  # Module level
17
17
  # ---------------------------------------------------------------------------
18
- __all__ = ["content", "generator", "human"]
18
+ __all__ = ["content", "shape", "human"]
19
19
 
20
20
 
21
21
  # Libary
22
22
  # ---------------------------------------------------------------------------
23
- from absfuyu.general import content, generator, human
23
+ from absfuyu.general import content, human, shape
@@ -3,8 +3,8 @@ Absfuyu: Content
3
3
  ----------------
4
4
  Handle .txt file
5
5
 
6
- Version: 1.2.6
7
- Date updated: 05/04/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
 
9
9
  Usage:
10
10
  ------
absfuyu/general/shape.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Shape
4
4
  Shapes
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 19/02/2025 (dd/mm/yyyy)
7
+ Date updated: 23/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/logger.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Logger
3
3
  ---------------
4
4
  Custom Logger Module
5
5
 
6
- Version: 1.3.2
7
- Date updated: 05/04/2024 (mm/dd/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
 
9
9
  Usage:
10
10
  ------
@@ -4,7 +4,7 @@ Absfuyu: Package data
4
4
  Load package data
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 14/11/2024 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -3,8 +3,8 @@ Absfuyu: Package data
3
3
  ---------------------
4
4
  Deprecated (but might have some use)
5
5
 
6
- Version: 2.2.3
7
- Date updated: 14/11/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Library
absfuyu/sort.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Sort
3
3
  -------------
4
4
  Sort Module
5
5
 
6
- Version: 1.3.0
7
- Date updated: 11/02/2025 (mm/dd/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/tools/__init__.py CHANGED
@@ -4,5 +4,5 @@ Absfuyu: Tools
4
4
  Some useful tools
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 15/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
absfuyu/tools/checksum.py CHANGED
@@ -4,7 +4,7 @@ Absufyu: Checksum
4
4
  Check MD5, SHA256, ...
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 13/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -4,7 +4,7 @@ Absufyu: Converter
4
4
  Convert stuff
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 11/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
 
9
9
  Feature:
10
10
  --------
@@ -4,7 +4,7 @@ Absfuyu: Obfuscator
4
4
  Obfuscate code
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 23/02/2025 (dd/mm/yyyy)
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -24,8 +24,8 @@ from typing import ClassVar
24
24
 
25
25
  from absfuyu.core import BaseClass, ShowAllMethodsMixin, versionadded
26
26
  from absfuyu.dxt import Text
27
- from absfuyu.general.generator import Charset, Generator
28
27
  from absfuyu.logger import logger
28
+ from absfuyu.tools.generator import Charset, Generator
29
29
 
30
30
 
31
31
  # Class
@@ -4,7 +4,7 @@ Absfuyu: Passwordlib
4
4
  Password library
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 19/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -23,9 +23,9 @@ from urllib.parse import quote, urlencode
23
23
 
24
24
  from absfuyu.core import BaseClass, deprecated, versionadded
25
25
  from absfuyu.dxt import DictExt, Text
26
- from absfuyu.general.generator import Charset, Generator
27
26
  from absfuyu.logger import logger
28
27
  from absfuyu.pkg_data import DataList, DataLoader
28
+ from absfuyu.tools.generator import Charset, Generator
29
29
  from absfuyu.util import set_min
30
30
 
31
31
 
absfuyu/tools/web.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Web
3
3
  ------------
4
4
  Web, ``request``, ``BeautifulSoup`` stuff
5
5
 
6
- Version: 1.0.2
7
- Date updated: 05/04/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Library
absfuyu/util/__init__.py CHANGED
@@ -3,8 +3,8 @@ Absufyu: Utilities
3
3
  ------------------
4
4
  Some random utilities
5
5
 
6
- Version: 1.5.2
7
- Date updated: 25/11/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Library
absfuyu/util/api.py CHANGED
@@ -4,7 +4,7 @@ Absufyu: API
4
4
  Fetch data stuff
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 13/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/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: 1.0.3
8
- Date updated: 15/11/2024 (dd/mm/yyyy)
7
+ Version: 5.0.0
8
+ Date updated: 22/02/2025 (dd/mm/yyyy)
9
9
 
10
10
  Source:
11
11
  -------
absfuyu/util/path.py CHANGED
@@ -4,7 +4,7 @@ Absfuyu: Path
4
4
  Path related
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 13/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
 
9
9
  Feature:
10
10
  --------
@@ -4,7 +4,7 @@ Absfuyu: Performance
4
4
  Performance Check
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 13/02/2025 (dd/mm/yyyy)
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
 
9
9
  Feature:
10
10
  --------
@@ -4,7 +4,7 @@ Absfuyu: Shorten number
4
4
  Short number base on suffixes
5
5
 
6
6
  Version: 5.0.0
7
- Date updated: 18/02/2025 (dd/mm/yyyy)
7
+ Date updated: 24/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/util/zipped.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Zipped
3
3
  ---------------
4
4
  Zipping stuff (deprecated soon, most features already in absfuyu.util.path.Directory)
5
5
 
6
- Version: 1.1.0
7
- Date updated: 07/01/2025 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 22/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/version.py CHANGED
@@ -3,10 +3,12 @@ Absfuyu: Version
3
3
  ----------------
4
4
  Package versioning module
5
5
 
6
- Version: 2.1.1
7
- Date updated: 14/04/2024 (dd/mm/yyyy)
6
+ Version: 5.0.0
7
+ Date updated: 25/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
+ # Module level
11
+ # ---------------------------------------------------------------------------
10
12
  __all__ = [
11
13
  # Options
12
14
  "ReleaseOption",
@@ -18,42 +20,50 @@ __all__ = [
18
20
  ]
19
21
 
20
22
 
23
+ # Library
24
+ # ---------------------------------------------------------------------------
21
25
  import json
22
26
  import re
23
27
  import subprocess
24
- from typing import List, Tuple, TypedDict, Union
28
+ from enum import StrEnum
29
+ from typing import Self, TypedDict
25
30
  from urllib.error import URLError
26
31
  from urllib.request import Request, urlopen
27
32
 
33
+ from absfuyu.core import BaseClass
28
34
  from absfuyu.logger import logger
29
35
 
30
36
 
31
- class ReleaseOption:
37
+ # Class
38
+ # ---------------------------------------------------------------------------
39
+ class ReleaseOption(StrEnum):
32
40
  """
33
41
  ``MAJOR``, ``MINOR``, ``PATCH``
34
42
  """
35
43
 
36
- MAJOR: str = "major"
37
- MINOR: str = "minor"
38
- PATCH: str = "patch"
44
+ MAJOR = "major"
45
+ MINOR = "minor"
46
+ PATCH = "patch"
39
47
 
40
- def all_option() -> List[str]: # type: ignore
48
+ @classmethod
49
+ def all_option(cls) -> list[str]:
41
50
  """Return a list of release options"""
42
- return [__class__.MAJOR, __class__.MINOR, __class__.PATCH] # type: ignore
51
+ return [cls.MAJOR.value, cls.MINOR.value, cls.PATCH.value]
43
52
 
44
53
 
45
- class ReleaseLevel:
54
+ class ReleaseLevel(StrEnum):
46
55
  """
47
56
  ``FINAL``, ``DEV``, ``RC``
48
57
  """
49
58
 
50
- FINAL: str = "final"
51
- DEV: str = "dev"
52
- RC: str = "rc" # Release candidate
59
+ FINAL = "final"
60
+ DEV = "dev"
61
+ RC = "rc" # Release candidate
53
62
 
54
- def all_level() -> List[str]: # type: ignore
63
+ @classmethod
64
+ def all_level(cls) -> list[str]:
55
65
  """Return a list of release levels"""
56
- return [__class__.FINAL, __class__.DEV, __class__.RC] # type: ignore
66
+ return [cls.FINAL.value, cls.DEV.value, cls.RC.value]
57
67
 
58
68
 
59
69
  class VersionDictFormat(TypedDict):
@@ -74,30 +84,36 @@ class VersionDictFormat(TypedDict):
74
84
  serial: int
75
85
 
76
86
 
77
- class Version:
87
+ class Version(BaseClass):
78
88
  """Version"""
79
89
 
80
90
  def __init__(
81
91
  self,
82
- major: Union[int, str],
83
- minor: Union[int, str],
84
- patch: Union[int, str],
92
+ major: int | str,
93
+ minor: int | str,
94
+ patch: int | str,
85
95
  release_level: str = ReleaseLevel.FINAL,
86
- serial: Union[int, str] = 0,
96
+ serial: int | str = 0,
87
97
  ) -> None:
88
98
  """
89
99
  Create ``Version`` instance
90
100
 
91
- :param major: Major change
92
- :type major: int | str
93
- :param minor: Minor change
94
- :type minor: int | str
95
- :param patch: Patch
96
- :type patch: int | str
97
- :param release_level: Release level: ``final``|``rc``|``dev``
98
- :type release_level: str
99
- :param serial: Serial for release level ``rc``|``dev``
100
- :type serial: int | str
101
+ Parameters
102
+ ----------
103
+ major : int | str
104
+ Major change
105
+
106
+ minor : int | str
107
+ Minor change
108
+
109
+ patch : int | str
110
+ Patch
111
+
112
+ release_level : str, optional
113
+ Release level: ``final`` | ``rc`` | ``dev``, by default ``ReleaseLevel.FINAL``
114
+
115
+ serial : int | str, optional
116
+ Serial for release level ``rc`` | ``dev``, by default ``0``
101
117
  """
102
118
  self.major: int = major if isinstance(major, int) else int(major)
103
119
  self.minor: int = minor if isinstance(minor, int) else int(minor)
@@ -108,15 +124,16 @@ class Version:
108
124
  def __str__(self) -> str:
109
125
  return self.version
110
126
 
111
- def __repr__(self) -> str:
112
- if self.release_level.startswith(ReleaseLevel.FINAL):
113
- return f"{self.__class__.__name__}(major={self.major}, minor={self.minor}, patch={self.patch})"
114
- else:
115
- return (
116
- f"{self.__class__.__name__}("
117
- f"major={self.major}, minor={self.minor}, patch={self.patch}, "
118
- f"release_level={self.release_level}, serial={self.serial})"
119
- )
127
+ # def __repr__(self) -> str:
128
+ # cls_name = self.__class__.__name__
129
+ # if self.release_level.startswith(ReleaseLevel.FINAL):
130
+ # return f"{cls_name}(major={self.major}, minor={self.minor}, patch={self.patch})"
131
+ # else:
132
+ # return (
133
+ # f"{cls_name}("
134
+ # f"major={self.major}, minor={self.minor}, patch={self.patch}, "
135
+ # f"release_level={self.release_level}, serial={self.serial})"
136
+ # )
120
137
 
121
138
  def __format__(self, format_spec: str) -> str:
122
139
  """
@@ -166,8 +183,8 @@ class Version:
166
183
 
167
184
  @classmethod
168
185
  def from_tuple(
169
- cls, iterable: Union[Tuple[int, int, int], Tuple[int, int, int, str, int]]
170
- ):
186
+ cls, iterable: tuple[int, int, int] | tuple[int, int, int, str, int]
187
+ ) -> Self:
171
188
  """
172
189
  Convert to ``Version`` from a ``tuple``
173
190
 
@@ -203,7 +220,7 @@ class Version:
203
220
  raise ValueError("iterable must have len of 5 or 3")
204
221
 
205
222
  @classmethod
206
- def from_str(cls, version_string: str):
223
+ def from_str(cls, version_string: str) -> Self:
207
224
  """
208
225
  Convert to ``Version`` from a ``str``
209
226
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: absfuyu
3
- Version: 5.0.0
3
+ Version: 5.0.1
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/
@@ -110,7 +110,7 @@ There are many additional features available to explore.
110
110
 
111
111
  For more detailed information about the project, please refer to the documentation available at the following link:
112
112
 
113
- > [Project Documentation](https://absolutewinter.github.io/absfuyu/)
113
+ > [Project Documentation](https://absolutewinter.github.io/absfuyu-docs/)
114
114
 
115
115
  ## **DEVELOPMENT SETUP**
116
116
 
@@ -0,0 +1,68 @@
1
+ absfuyu/__init__.py,sha256=pDzdGzKO07dKGuByDoOGJGxanWFB9XKqTNY0BunlEyU,600
2
+ absfuyu/__main__.py,sha256=9bLz3WK0oG0jGTLE9pd3e3j3ldVaCfO2dsLFNneJ6fU,603
3
+ absfuyu/logger.py,sha256=zEu8Px0kCmdeMtawf8UWb_fwff1_ZG45U0iUjI6g9GU,13043
4
+ absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ absfuyu/sort.py,sha256=BsXuDMuO-Q6hUZwmFspyLo5jc7rxgBFSdektIlVJ0BQ,3250
6
+ absfuyu/version.py,sha256=Smkc97D0lbfLcMFuMyfBqCmsKjgo7ws-NqbMmL9I4_Q,14489
7
+ absfuyu/cli/__init__.py,sha256=QQv0pYorucbEoeTydtHVPwMdpiiMK_eWTxinZgQviS8,1181
8
+ absfuyu/cli/color.py,sha256=S_y20gw4FEVtc_cCdRjxGW8HALi2vvRT8YurmwjMH54,774
9
+ absfuyu/cli/config_group.py,sha256=fvWkm70LnIiL6yc9Fn7Dlg32xsjiADyLAnS3_dx1VOE,1230
10
+ absfuyu/cli/do_group.py,sha256=8ZwtNEZ7nadPIr-KH-Dwj1y4trZsKOgUwiof52zbUYM,2131
11
+ absfuyu/cli/game_group.py,sha256=21U-8QCIZtdWf6fYBPip-sT0YvP4yoB9FmogW6NSCwA,2348
12
+ absfuyu/cli/tool_group.py,sha256=Sx3HJHJTtsEaagsCxykrkwgp3ft9aH6BRAqs1V4mI0Q,3164
13
+ absfuyu/config/__init__.py,sha256=4SrWqzP_PyIjMH9QT4JjSzJqtsOWmUFlEJeoCjGd_3g,8238
14
+ absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
15
+ absfuyu/core/__init__.py,sha256=vs2FCaiXoiG0v7nRMKMickfHbeC_quTtj6JiZpI7-iU,1186
16
+ absfuyu/core/baseclass.py,sha256=hNmqP8YIBuNUXGduNck31rXXuZ4smTUPbMKBV-Gj41Q,10204
17
+ absfuyu/core/baseclass2.py,sha256=4MZTUz8WSzJn-uGY5-lSHTzkDCsRDgLnntvMwQaF8_s,5366
18
+ absfuyu/core/decorator.py,sha256=MpmgAb1gsXgRDEyMJLvSxUWEG0WC4aTFYJAEwjdauAI,1901
19
+ absfuyu/core/docstring.py,sha256=1QaqnbQLVB9qjPz2a_oCFG04XxXmOM8yWUdEVmYzYCc,5287
20
+ absfuyu/core/dummy_cli.py,sha256=_-Gsmg2beO7fTSP-3nSGwqVmiVKpzTICIuHfGetQbw8,1884
21
+ absfuyu/core/dummy_func.py,sha256=msbauMSxlbbzLzgdJqeydhAF-R4WZiA5_h6h2_8809U,1221
22
+ absfuyu/dxt/__init__.py,sha256=XvvcsN9Ax9ywFEuvlq4JEY4Mto3_qhp56JgWwCiWUPY,986
23
+ absfuyu/dxt/dictext.py,sha256=aiCvNhdDQvuYteVKptLkpC0ni9rIbN26cYEPKpIbqps,5998
24
+ absfuyu/dxt/dxt_support.py,sha256=7xo2-gQWfgsqvLdh7pcyK1rx4XU1-G7nWx0VbKQ69tQ,2109
25
+ absfuyu/dxt/intext.py,sha256=h9p8OEzb0--8u7wq50BfGG1ExY7egV_Yh8CgP2hKsdw,16716
26
+ absfuyu/dxt/listext.py,sha256=_sCdbnKsEAR-V60wIZxyCtXIRA7HzTu6WvIgSb_TDjQ,13964
27
+ absfuyu/dxt/strext.py,sha256=5YWpDz-6lZH500KcQXyQRZ_7bsRWBROfTZi0Mkr5b00,14626
28
+ absfuyu/extra/__init__.py,sha256=fd7WZQYt_aRsTxih5n_DvXY-5PIGCawzia4uQ5Y3huc,182
29
+ absfuyu/extra/beautiful.py,sha256=Ae0zhieHIbMMIJUsxDmMEEw1X14CcoyAgr-Ic2YYR9I,8137
30
+ absfuyu/extra/data_analysis.py,sha256=fqJgmHv9KRP2SHFTUWGMPCB8zMgfXni1jMWwn1mPYRU,32005
31
+ absfuyu/fun/__init__.py,sha256=20kZpFoivJXhV9oHUHOuiPCbcGvQWFE9v62EUkj4cyU,5435
32
+ absfuyu/fun/tarot.py,sha256=xIJNKAxgDckE4UNn8lBaLMasOT1md04BaDI_h23AmsA,2401
33
+ absfuyu/game/__init__.py,sha256=iKrXSOFCFFCwQVHNIRJp1ItNqSOGRQHb-31_MamVE3U,4691
34
+ absfuyu/game/game_stat.py,sha256=OMMz4iyyMxvEHbhVEka2uEDtREyidcOO-HX5XZi5G88,1236
35
+ absfuyu/game/sudoku.py,sha256=yJt950Lwcbq-sxXw-lyi1bB1Ds0y9vqYfKNRzfXwRLY,10405
36
+ absfuyu/game/tictactoe.py,sha256=2VV0wM3pi1weVjTR0Yp0hiWqN09yPcHeUXoqa9YVI4U,9960
37
+ absfuyu/game/wordle.py,sha256=cD0AOhXp5uOnyEh6vtTODmJyXcjSmQz27Di3y6xB9JM,101576
38
+ absfuyu/general/__init__.py,sha256=OamzZUsVcaPcwA5wA5PYPv5xl-GHmAO9cL-vzX4TJy0,472
39
+ absfuyu/general/content.py,sha256=5wWYto6Na8SMyA6Lh5_C_cgKNok_JCDhQCQhsImNCBQ,17122
40
+ absfuyu/general/human.py,sha256=o1TswjgN8zRfCmkEgchS1HVq036twBB64u1Dt4KLI1I,8099
41
+ absfuyu/general/shape.py,sha256=GclEwdKtciPaGsZIDpmIDvC7UiHcRKRaxIi7yqBTnfs,38619
42
+ absfuyu/pkg_data/__init__.py,sha256=gWOdNVaisaMfn2XBYAammTytGwZK_iTKMgyirhNCN3I,5510
43
+ absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
44
+ absfuyu/pkg_data/deprecated.py,sha256=NG8aqVPrC08xPBZb1n1FwNTGi2ah03zzcrp8zieaf1k,4349
45
+ absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
46
+ absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
47
+ absfuyu/tools/__init__.py,sha256=u5IvTdxpr1uEE9nPXmMaDzFHGZRja_CTwKYs505N8C8,118
48
+ absfuyu/tools/checksum.py,sha256=cA0jL7IX7CLMuunZfiaTVZNnfg0CEy8LXaxX_UnlNuo,5156
49
+ absfuyu/tools/converter.py,sha256=QxWPHSJtl-_i3q8LaKWeIcdUDkkhhO7jty1K-SgQYCY,11615
50
+ absfuyu/tools/generator.py,sha256=C54TJ3DZ5TXFYRI7_jLdtjTMcWxACX4Jmlo27Zh90Ew,8996
51
+ absfuyu/tools/keygen.py,sha256=JxhUiiaUHaGqVicXY46JjVrH3ke2QlnsRJqgIvlxUsg,7115
52
+ absfuyu/tools/obfuscator.py,sha256=c1tBG3nbGFi7ejjRbxgBMSYV8sBQCy9Ko6r9iBO3UwY,12685
53
+ absfuyu/tools/passwordlib.py,sha256=s_Z9EoHCnEpHwvei5Yigo9VKkDL3sNPUkDeg8cjfSWk,9630
54
+ absfuyu/tools/shutdownizer.py,sha256=z5z5ofdAtOBat1m7lz95FwXZI0fMarl2mChBMwUMi4I,8549
55
+ absfuyu/tools/web.py,sha256=JHeW9koW_5uRwE507_mtNJ8v0R7W2yvjDxJSClkWzLM,1240
56
+ absfuyu/util/__init__.py,sha256=h23kB8cx4-KLMiRPFnHlxTYVqt4ortI8wCc9vUc5UVg,3831
57
+ absfuyu/util/api.py,sha256=gd3QCuxRfOmiGhUpN3qqdWfD0o3VFOafbKplEwWpcz0,4288
58
+ absfuyu/util/json_method.py,sha256=a4xVabcw18HBLJthkmf5KNUcQya45-A8AFEpcGIDx3Q,2197
59
+ absfuyu/util/lunar.py,sha256=P6hF6H4BmJcY0S2Jq0_TkcaiLU5O-CnyfHYoLaWTx00,13630
60
+ absfuyu/util/path.py,sha256=ehKib-zSISx0XguRr-OlRnNlmR27rhVSfDGmjqh6CCg,16434
61
+ absfuyu/util/performance.py,sha256=kZbgC8CPEjzO8JWrTjT1NqAkQ3022M4zzp7G3caeUbk,8585
62
+ absfuyu/util/shorten_number.py,sha256=401H1k0wxc2W6qycH_gsEGtUmYdJt6KRzMNR4m94W38,7788
63
+ absfuyu/util/zipped.py,sha256=nJzKxLwle9wSiKL-615J40ARiK2y0mGCwNYJ0fOCHus,2979
64
+ absfuyu-5.0.1.dist-info/METADATA,sha256=ypxRsGR4WuBk9BMllZqqanH766SY5mUswgvVnHVUcpI,4844
65
+ absfuyu-5.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
66
+ absfuyu-5.0.1.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
67
+ absfuyu-5.0.1.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
68
+ absfuyu-5.0.1.dist-info/RECORD,,
@@ -1,68 +0,0 @@
1
- absfuyu/__init__.py,sha256=0fFKIm3iQEyqB0IdZIIqBe5bF7CCRl7ZD4mxwa_GxF0,600
2
- absfuyu/__main__.py,sha256=vUKjwcjMvynbeygRLuXWMKR2vR7CndZ496xx2Qzb6xk,603
3
- absfuyu/logger.py,sha256=VP9-sXtGVyDkHUyRSaGUfCrl_wn8wOnmtCLcUNec-yg,13043
4
- absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- absfuyu/sort.py,sha256=WjH0asrvl02TMlAhG77X-wGcGHIIQd-jWU_Xv9Xv-qc,3250
6
- absfuyu/version.py,sha256=KMaeXNl93L4VU2RnTySoFv23IDyTvHfy84nyatFcKaE,14128
7
- absfuyu/cli/__init__.py,sha256=mYX6lVAat9UOI9qR-ZDFw_4WOLVA9r-jTtW8d2fBEKM,1181
8
- absfuyu/cli/color.py,sha256=Cvpqwc5mb4-71OplswgfxmJ8D9jf9gkjM7l3qV902X0,774
9
- absfuyu/cli/config_group.py,sha256=FsyYm2apSyAA2PAD12CpHAizenRds_QlLf8j0AlLuVo,1230
10
- absfuyu/cli/do_group.py,sha256=QBOL3Z6E70-_kPOivaH160lmFyOL2Zl70Qjda_fV0Fc,2131
11
- absfuyu/cli/game_group.py,sha256=ySpL2hm4VCplhNY0s22kBGI5eFCdJj9fm1T58yftU74,2348
12
- absfuyu/cli/tool_group.py,sha256=ZruYcBLCjP2G0CgyE19WsRJ2kn2H1fKEZ0pa0KF6tyI,3164
13
- absfuyu/config/__init__.py,sha256=yWN-TguDXcWJg5EiCGRnKLsTZQfIYvKVHhzASNp2S0s,8238
14
- absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
15
- absfuyu/core/__init__.py,sha256=oZpRrxIU66dN4UYO61TM72oE0Ijs_3wajdYCg12SJlw,1186
16
- absfuyu/core/baseclass.py,sha256=t5oyfwBw5Mm5wLp2o_JnTNx0v9njEb_OeRlzOTbc5KM,10204
17
- absfuyu/core/baseclass2.py,sha256=5meEqRk0pPoDlhA0_qti_-p-fHvxT6XqwitHLpFVl_Q,5366
18
- absfuyu/core/decorator.py,sha256=MpmgAb1gsXgRDEyMJLvSxUWEG0WC4aTFYJAEwjdauAI,1901
19
- absfuyu/core/docstring.py,sha256=2TmPXXtJKszfBPPHXDMPjrTCpVFwxmS8J5XhWb4myNc,5228
20
- absfuyu/core/dummy_cli.py,sha256=_-Gsmg2beO7fTSP-3nSGwqVmiVKpzTICIuHfGetQbw8,1884
21
- absfuyu/core/dummy_func.py,sha256=AS7kgMWeXZoYF94gocyydAfkyOM7W2v1F9wNQ40ta-Q,1097
22
- absfuyu/dxt/__init__.py,sha256=IHTjk-GdeKp5s9mhH87WUrHVb9gY34WUzrjQEw0q9II,986
23
- absfuyu/dxt/dictext.py,sha256=_q45v98x2sB38QBROg-Fbd6Aw63HO5hPIEJENI39d-E,5998
24
- absfuyu/dxt/dxt_support.py,sha256=dWMbFYiRUhX9QHxChYo_YzwCywylUi1R5h28y13Wn4I,2109
25
- absfuyu/dxt/intext.py,sha256=wMmjt24c-0Kk3gJx1ln0ULNdrxmgeDh3zUOUTD6cQBo,16716
26
- absfuyu/dxt/listext.py,sha256=lqWVQ1uBZ3zm0d1S0oVz0qjTagbucZjQ3htcFzc24tg,13964
27
- absfuyu/dxt/strext.py,sha256=UDS818z4Rv92gCgdlfz_ibr3vsip6Sgxp-yfI8JyPho,14628
28
- absfuyu/extra/__init__.py,sha256=lyJwiRHvCL3qNYKK9mbjNrzIHGDPERyfwl8_V6g4PEE,182
29
- absfuyu/extra/beautiful.py,sha256=llxgAYco5-bg6VC1kMwA7VyCSJgu4LdCHBG0pM1PWs8,8072
30
- absfuyu/extra/data_analysis.py,sha256=0zfjWm3t1nyp0n0rsPKzWmcR0ZvF7BpQsjn9niGqhps,32005
31
- absfuyu/fun/__init__.py,sha256=tDSDIDHrJPQ_hWV7ASpbAUCIQ6B1t1IPq4ahrZQqfWk,5435
32
- absfuyu/fun/tarot.py,sha256=E9NKwhebU4EGOcbQkt4Ni7o6ZIYq8-h7_Fz3jk0Arpw,2401
33
- absfuyu/game/__init__.py,sha256=tkNxTbdkPtAhGEdqXFQARHYApEhcD68CeDF_oHMzVeA,4691
34
- absfuyu/game/game_stat.py,sha256=mOs6UOvNUmr-vNOomNJK0lY9o9m9Rs0b9GEMGeXaAdE,1236
35
- absfuyu/game/sudoku.py,sha256=ascN8ey7SimldXT8ae3AWv4bxlfwT4X14JdmxY2o808,10405
36
- absfuyu/game/tictactoe.py,sha256=_JLeIhxHEIDLRJay7i1kagxx8kCDhZNgTrXt7Rl0ntc,9960
37
- absfuyu/game/wordle.py,sha256=izvV_lOZwPnslDdQ73PnwD5t5ECKVWGhpZvHAZH-2EY,101576
38
- absfuyu/general/__init__.py,sha256=EITlDmPAp6lcAWR9Bq707j4FZ9jAD9PblftOK1XvGDA,480
39
- absfuyu/general/content.py,sha256=wGzYufji8PmHy6ygGFclf_u6DZudnYaeHtR9d2of_1E,17122
40
- absfuyu/general/generator.py,sha256=C54TJ3DZ5TXFYRI7_jLdtjTMcWxACX4Jmlo27Zh90Ew,8996
41
- absfuyu/general/human.py,sha256=o1TswjgN8zRfCmkEgchS1HVq036twBB64u1Dt4KLI1I,8099
42
- absfuyu/general/shape.py,sha256=dAYSihPnanax4jMPSvZMIzMbo9puvxIqdQxuSlDLl4I,38619
43
- absfuyu/pkg_data/__init__.py,sha256=Jn8fHDsPCd8w4YoOo3EpoExxda5BRAjHQJRdYwwTYeA,5510
44
- absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
45
- absfuyu/pkg_data/deprecated.py,sha256=L1ju3m_P8DbqQ1l18XgneVixorWiLJ5HeKh_K3wovXM,4349
46
- absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
47
- absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
48
- absfuyu/tools/__init__.py,sha256=g6-2banBKxGfAbsVTd-OZhLujixXApsQmx2RlAB_aGE,118
49
- absfuyu/tools/checksum.py,sha256=1WLC9GGmjehxhhV-BgdxJbA45QhN850u_znOgwoYDP0,5156
50
- absfuyu/tools/converter.py,sha256=tdDQpdzbB9RdcZIlcV6LzldDkVEiwCFzRoWCfJVCpn4,11615
51
- absfuyu/tools/keygen.py,sha256=JxhUiiaUHaGqVicXY46JjVrH3ke2QlnsRJqgIvlxUsg,7115
52
- absfuyu/tools/obfuscator.py,sha256=vy_nIyQeDci6vHFbHL907Ha6RUZm9axsSZw_nKyyYBc,12687
53
- absfuyu/tools/passwordlib.py,sha256=jEmKW63fTyGOtBPPVi44fMtcNu1W7m2Qkox-GHxTxH4,9632
54
- absfuyu/tools/shutdownizer.py,sha256=z5z5ofdAtOBat1m7lz95FwXZI0fMarl2mChBMwUMi4I,8549
55
- absfuyu/tools/web.py,sha256=rVF-60IT8J_RVxMPzz5bhgBq3i1WmwbR5ouzQ_CZwhQ,1240
56
- absfuyu/util/__init__.py,sha256=3Ylck5HBHAhFd_B_v6Bh3C1qyI1M0Kk9sK9nNIBLHqU,3831
57
- absfuyu/util/api.py,sha256=xXwffnpq1qxBIag_MOriKe3ueaCdsaq-WFRIH-8yFqI,4288
58
- absfuyu/util/json_method.py,sha256=a4xVabcw18HBLJthkmf5KNUcQya45-A8AFEpcGIDx3Q,2197
59
- absfuyu/util/lunar.py,sha256=8dxXdGU7V_5L9fOeq36oKDzs_DcLnIiFwIpHa1O22yc,13630
60
- absfuyu/util/path.py,sha256=0hRzobegpblgCIluy9wXFNCwlDoovz_ccVCwaVqvgo8,16434
61
- absfuyu/util/performance.py,sha256=aN_0WGJfupqh8FdgsEU4llkDpUNAlojlWXtlRGMFmJE,8585
62
- absfuyu/util/shorten_number.py,sha256=7-uH4zwy594pVnqqGe75IoS7vqEXx3DIA9nRl8hrQpw,7788
63
- absfuyu/util/zipped.py,sha256=fXLVt4hnIgN2hwhvbwxzYQC1r--RX2Hgb429r767WDI,2979
64
- absfuyu-5.0.0.dist-info/METADATA,sha256=J29q7jABMmx_LkCQVw9aL9BYsGk3QdTBsA4W0WyeF2s,4839
65
- absfuyu-5.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
66
- absfuyu-5.0.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
67
- absfuyu-5.0.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
68
- absfuyu-5.0.0.dist-info/RECORD,,
File without changes