absfuyu 5.3.0__tar.gz → 5.4.0__tar.gz

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 (120) hide show
  1. {absfuyu-5.3.0 → absfuyu-5.4.0}/PKG-INFO +1 -1
  2. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/__init__.py +1 -1
  3. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/__main__.py +2 -2
  4. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/cli/__init__.py +2 -2
  5. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/cli/color.py +2 -2
  6. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/cli/config_group.py +2 -2
  7. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/cli/do_group.py +2 -2
  8. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/cli/game_group.py +2 -2
  9. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/cli/tool_group.py +2 -2
  10. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/config/__init__.py +2 -2
  11. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/core/__init__.py +2 -2
  12. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/core/baseclass.py +2 -2
  13. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/core/baseclass2.py +2 -2
  14. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/core/decorator.py +2 -2
  15. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/core/docstring.py +2 -2
  16. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/core/dummy_cli.py +2 -2
  17. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/core/dummy_func.py +2 -2
  18. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/dxt/__init__.py +2 -2
  19. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/dxt/dictext.py +15 -6
  20. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/dxt/dxt_support.py +2 -2
  21. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/dxt/intext.py +51 -33
  22. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/dxt/listext.py +14 -2
  23. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/dxt/strext.py +2 -2
  24. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/extra/__init__.py +2 -2
  25. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/extra/beautiful.py +2 -2
  26. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/extra/da/__init__.py +2 -2
  27. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/extra/da/dadf.py +57 -54
  28. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/extra/da/dadf_base.py +2 -2
  29. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/extra/da/df_func.py +2 -2
  30. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/extra/da/mplt.py +2 -2
  31. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/extra/data_analysis.py +2 -2
  32. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/fun/__init__.py +7 -2
  33. absfuyu-5.4.0/src/absfuyu/fun/rubik.py +442 -0
  34. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/fun/tarot.py +2 -2
  35. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/game/__init__.py +2 -2
  36. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/game/game_stat.py +2 -2
  37. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/game/sudoku.py +2 -2
  38. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/game/tictactoe.py +2 -2
  39. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/game/wordle.py +2 -2
  40. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/general/__init__.py +2 -2
  41. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/general/content.py +2 -2
  42. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/general/human.py +2 -2
  43. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/general/shape.py +2 -2
  44. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/logger.py +2 -2
  45. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/pkg_data/__init__.py +2 -2
  46. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/pkg_data/deprecated.py +2 -2
  47. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/sort.py +2 -2
  48. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/__init__.py +2 -2
  49. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/checksum.py +2 -2
  50. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/converter.py +2 -2
  51. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/generator.py +2 -2
  52. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/inspector.py +24 -3
  53. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/keygen.py +2 -2
  54. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/obfuscator.py +2 -2
  55. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/passwordlib.py +2 -2
  56. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/shutdownizer.py +2 -2
  57. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/tools/web.py +2 -2
  58. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/typings.py +7 -2
  59. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/util/__init__.py +57 -3
  60. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/util/api.py +2 -2
  61. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/util/json_method.py +2 -2
  62. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/util/lunar.py +2 -2
  63. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/util/path.py +2 -2
  64. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/util/performance.py +2 -2
  65. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/util/shorten_number.py +2 -2
  66. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/util/text_table.py +2 -2
  67. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/util/zipped.py +2 -2
  68. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/version.py +2 -2
  69. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/conftest.py +2 -2
  70. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_api.py +2 -2
  71. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_beautiful.py +2 -2
  72. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_config.py +2 -2
  73. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_converter.py +2 -2
  74. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_core.py +2 -2
  75. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_data_analysis.py +2 -2
  76. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_dictext.py +2 -2
  77. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_everything.py +21 -3
  78. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_extra.py +2 -2
  79. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_fun.py +2 -2
  80. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_game.py +2 -2
  81. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_generator.py +2 -2
  82. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_inspector.py +2 -2
  83. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_intext.py +2 -2
  84. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_listext.py +2 -2
  85. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_logger.py +2 -2
  86. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_obfuscator.py +2 -2
  87. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_passwordlib.py +2 -2
  88. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_performance.py +2 -2
  89. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_pkg_data.py +2 -2
  90. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_shape.py +2 -2
  91. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_shorten_number.py +2 -2
  92. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_strext.py +2 -2
  93. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_text_table.py +2 -2
  94. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_tools.py +2 -2
  95. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_util.py +10 -3
  96. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/test_version.py +2 -2
  97. {absfuyu-5.3.0 → absfuyu-5.4.0}/.gitignore +0 -0
  98. {absfuyu-5.3.0 → absfuyu-5.4.0}/LICENSE +0 -0
  99. {absfuyu-5.3.0 → absfuyu-5.4.0}/README.md +0 -0
  100. {absfuyu-5.3.0 → absfuyu-5.4.0}/dev_requirements.txt +0 -0
  101. {absfuyu-5.3.0 → absfuyu-5.4.0}/docs/Makefile +0 -0
  102. {absfuyu-5.3.0 → absfuyu-5.4.0}/docs/_template/versioning.html +0 -0
  103. {absfuyu-5.3.0 → absfuyu-5.4.0}/docs/conf.py +0 -0
  104. {absfuyu-5.3.0 → absfuyu-5.4.0}/docs/index.rst +0 -0
  105. {absfuyu-5.3.0 → absfuyu-5.4.0}/docs/info.md +0 -0
  106. {absfuyu-5.3.0 → absfuyu-5.4.0}/docs/make.bat +0 -0
  107. {absfuyu-5.3.0 → absfuyu-5.4.0}/docs/modules.rst +0 -0
  108. {absfuyu-5.3.0 → absfuyu-5.4.0}/images/Logo Full.png +0 -0
  109. {absfuyu-5.3.0 → absfuyu-5.4.0}/images/Logo Square.png +0 -0
  110. {absfuyu-5.3.0 → absfuyu-5.4.0}/images/Logo White.png +0 -0
  111. {absfuyu-5.3.0 → absfuyu-5.4.0}/images/repository-image-crop.png +0 -0
  112. {absfuyu-5.3.0 → absfuyu-5.4.0}/images/repository-image-white.png +0 -0
  113. {absfuyu-5.3.0 → absfuyu-5.4.0}/images/repository-image.png +0 -0
  114. {absfuyu-5.3.0 → absfuyu-5.4.0}/pyproject.toml +0 -0
  115. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/config/config.json +0 -0
  116. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/pkg_data/chemistry.pkl +0 -0
  117. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/pkg_data/passwordlib_lzma.pkl +0 -0
  118. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/pkg_data/tarot.pkl +0 -0
  119. {absfuyu-5.3.0 → absfuyu-5.4.0}/src/absfuyu/py.typed +0 -0
  120. {absfuyu-5.3.0 → absfuyu-5.4.0}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: absfuyu
3
- Version: 5.3.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/
@@ -22,7 +22,7 @@ Using in cmd:
22
22
  __title__ = "absfuyu"
23
23
  __author__ = "AbsoluteWinter"
24
24
  __license__ = "MIT License"
25
- __version__ = "5.3.0"
25
+ __version__ = "5.4.0"
26
26
  __all__ = [
27
27
  "core",
28
28
  "config",
@@ -3,8 +3,8 @@ ABSFUYU
3
3
  -------
4
4
  COMMAND LINE INTERFACE
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
  # Library
@@ -3,8 +3,8 @@ ABSFUYU
3
3
  -------
4
4
  COMMAND LINE INTERFACE
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/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
  __all__ = ["cli"]
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Color
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 Package
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Config
5
5
 
6
- Version: 5.2.0
7
- Date updated: 12/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 Package
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Do
5
5
 
6
- Version: 5.2.0
7
- Date updated: 12/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 Package
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Game
5
5
 
6
- Version: 5.2.0
7
- Date updated: 12/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 Package
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Tool
5
5
 
6
- Version: 5.2.0
7
- Date updated: 12/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 Package
@@ -3,8 +3,8 @@ Absfuyu: Configuration
3
3
  ----------------------
4
4
  Package configuration module
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/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
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Bases for other features
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/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 Package
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Bases for other features
5
5
 
6
- Version: 5.2.0
7
- Date updated: 11/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 Package
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Bases for other features (with library)
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/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 Package
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Decorator
5
5
 
6
- Version: 5.2.0
7
- Date updated: 14/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 Package
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Sphinx docstring decorator
5
5
 
6
- Version: 5.2.0
7
- Date updated: 14/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 Package
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Dummy cli
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/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 Package
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Dummy functions when other libraries are unvailable
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 Package
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  Extension for data type such as ``list``, ``str``, ``dict``, ...
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/03/2025 (dd/mm/yyyy)
6
+ Version: 5.4.0
7
+ Date updated: 21/03/2025 (dd/mm/yyyy)
8
8
 
9
9
  Features:
10
10
  ---------
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  dict extension
5
5
 
6
- Version: 5.2.0
7
- Date updated: 12/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 Package
@@ -16,10 +16,19 @@ __all__ = ["DictExt", "DictAnalyzeResult"]
16
16
  # ---------------------------------------------------------------------------
17
17
  import operator
18
18
  from collections.abc import Callable
19
- from typing import Any, NamedTuple, Self
19
+ from typing import Any, NamedTuple, Self, TypeVar
20
20
 
21
21
  from absfuyu.core import ShowAllMethodsMixin, versionadded, versionchanged
22
22
 
23
+ # from absfuyu.typings import KT as _KT
24
+ # from absfuyu.typings import VT as _VT
25
+
26
+
27
+ # Type
28
+ # ---------------------------------------------------------------------------
29
+ KT = TypeVar("KT")
30
+ VT = TypeVar("VT")
31
+
23
32
 
24
33
  # Class
25
34
  # ---------------------------------------------------------------------------
@@ -34,7 +43,7 @@ class DictAnalyzeResult(NamedTuple):
34
43
  min_list: list
35
44
 
36
45
 
37
- class DictExt(ShowAllMethodsMixin, dict):
46
+ class DictExt(ShowAllMethodsMixin, dict[KT, VT]):
38
47
  """
39
48
  ``dict`` extension
40
49
 
@@ -106,7 +115,7 @@ class DictExt(ShowAllMethodsMixin, dict):
106
115
  # return self.__class__(zip(self.values(), self.keys()))
107
116
  return self.__class__({v: k for k, v in self.items()})
108
117
 
109
- def apply(self, func: Callable, apply_to_value: bool = True) -> Self:
118
+ def apply(self, func: Callable[[Any], Any], apply_to_value: bool = True) -> Self:
110
119
  """
111
120
  Apply function to ``DictExt.keys()`` or ``DictExt.values()``
112
121
 
@@ -141,7 +150,7 @@ class DictExt(ShowAllMethodsMixin, dict):
141
150
  @versionadded("3.4.0")
142
151
  def aggregate(
143
152
  self,
144
- other_dict: dict,
153
+ other_dict: dict[KT, VT],
145
154
  default_value: Any = 0,
146
155
  operator_func: Callable[[Any, Any], Any] = operator.add, # operator add
147
156
  ) -> Self:
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  Support classes
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/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 Package
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  int extension
5
5
 
6
- Version: 5.2.0
7
- Date updated: 12/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 Package
@@ -16,9 +16,10 @@ __all__ = ["IntExt", "Pow"]
16
16
  # ---------------------------------------------------------------------------
17
17
  import math
18
18
  from collections import Counter
19
- from typing import Any, Self
19
+ from typing import Any, Literal, Self, overload
20
20
 
21
- from absfuyu.core import ShowAllMethodsMixin, versionadded, versionchanged
21
+ from absfuyu.core.baseclass import ShowAllMethodsMixin
22
+ from absfuyu.core.docstring import deprecated, versionadded, versionchanged
22
23
  from absfuyu.dxt.dxt_support import DictBoolTrue
23
24
 
24
25
 
@@ -32,20 +33,23 @@ class Pow:
32
33
  self.power_by = power_by
33
34
 
34
35
  def __str__(self) -> str:
36
+ return self.__repr__()
37
+
38
+ def __repr__(self) -> str:
35
39
  if self.power_by == 1:
36
40
  return str(self.number)
37
41
  else:
38
42
  return f"{self.number}^{self.power_by}"
39
43
  # return f"{self.__class__.__name__}({self.number}, {self.power_by})"
40
44
 
41
- def __repr__(self) -> str:
42
- return self.__str__()
43
-
44
45
  def to_list(self) -> list[int]:
45
46
  """
46
47
  Convert into list
47
48
 
48
- :rtype: list[int | float]
49
+ Returns
50
+ -------
51
+ list[int | float]
52
+ list
49
53
  """
50
54
  return [self.number] * self.power_by # type: ignore
51
55
 
@@ -53,7 +57,10 @@ class Pow:
53
57
  """
54
58
  Calculate the ``self.number`` to the power of ``self.power_by``
55
59
 
56
- :rtype: float
60
+ Returns
61
+ -------
62
+ float
63
+ Result
57
64
  """
58
65
  # return self.number**self.power_by
59
66
  return math.pow(self.number, self.power_by)
@@ -67,7 +74,8 @@ class IntExt(ShowAllMethodsMixin, int):
67
74
  >>> IntExt.show_all_methods()
68
75
  """
69
76
 
70
- # convert stuff
77
+ # convert
78
+ @deprecated("5.4.0", reason="Use format(...) instead")
71
79
  def to_binary(self) -> str:
72
80
  """
73
81
  Convert to binary number
@@ -80,7 +88,7 @@ class IntExt(ShowAllMethodsMixin, int):
80
88
 
81
89
  Example:
82
90
  --------
83
- >>> test = IntNumber(10)
91
+ >>> test = IntExt(10)
84
92
  >>> test.to_binary()
85
93
  '1010'
86
94
  """
@@ -98,7 +106,7 @@ class IntExt(ShowAllMethodsMixin, int):
98
106
 
99
107
  Example:
100
108
  --------
101
- >>> test = IntNumber(10)
109
+ >>> test = IntExt(10)
102
110
  >>> test.to_celcius_degree()
103
111
  -12.222222222222221
104
112
  """
@@ -117,7 +125,7 @@ class IntExt(ShowAllMethodsMixin, int):
117
125
 
118
126
  Example:
119
127
  --------
120
- >>> test = IntNumber(10)
128
+ >>> test = IntExt(10)
121
129
  >>> test.to_fahrenheit_degree()
122
130
  50.0
123
131
  """
@@ -130,13 +138,13 @@ class IntExt(ShowAllMethodsMixin, int):
130
138
 
131
139
  Returns
132
140
  -------
133
- IntNumber
134
- Reversed number
141
+ Self
142
+ Reversed number.
135
143
 
136
144
 
137
145
  Example:
138
146
  --------
139
- >>> test = IntNumber(102)
147
+ >>> test = IntExt(102)
140
148
  >>> test.reverse()
141
149
  201
142
150
  """
@@ -384,13 +392,13 @@ class IntExt(ShowAllMethodsMixin, int):
384
392
 
385
393
  Returns
386
394
  -------
387
- IntNumber
388
- Least common multiple
395
+ Self
396
+ Least common multiple.
389
397
 
390
398
 
391
399
  Example:
392
400
  --------
393
- >>> test = IntNumber(102)
401
+ >>> test = IntExt(102)
394
402
  >>> test.lcm(5)
395
403
  510
396
404
  """
@@ -408,13 +416,13 @@ class IntExt(ShowAllMethodsMixin, int):
408
416
 
409
417
  Returns
410
418
  -------
411
- IntNumber
412
- Greatest common divisor
419
+ Self
420
+ Greatest common divisor.
413
421
 
414
422
 
415
423
  Example:
416
424
  --------
417
- >>> test = IntNumber(1024)
425
+ >>> test = IntExt(1024)
418
426
  >>> test.gcd(8)
419
427
  8
420
428
  """
@@ -433,28 +441,31 @@ class IntExt(ShowAllMethodsMixin, int):
433
441
 
434
442
  Returns
435
443
  -------
436
- IntNumber
437
- IntNumber
444
+ Self
445
+ IntExt
438
446
 
439
447
 
440
448
  Example:
441
449
  --------
442
- >>> test = IntNumber(119)
450
+ >>> test = IntExt(119)
443
451
  >>> test.add_to_one_digit()
444
452
  2
445
453
 
446
- >>> test = IntNumber(119)
454
+ >>> test = IntExt(119)
447
455
  >>> test.add_to_one_digit(master_number=True)
448
456
  11
449
457
  """
458
+
450
459
  number = int(self)
451
- if number < 0:
460
+ if number < 0: # Convert positive
452
461
  number *= -1
462
+
453
463
  while len(str(number)) != 1:
454
464
  number = sum(map(int, str(number)))
455
465
  if master_number:
456
466
  if number == 22 or number == 11:
457
467
  break # Master number
468
+
458
469
  return self.__class__(number)
459
470
 
460
471
  @versionchanged("5.0.0", reason="Removed ``short_form`` parameter")
@@ -470,7 +481,7 @@ class IntExt(ShowAllMethodsMixin, int):
470
481
 
471
482
  Example:
472
483
  --------
473
- >>> test = IntNumber(1024)
484
+ >>> test = IntExt(1024)
474
485
  >>> test.divisible_list()
475
486
  [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
476
487
  """
@@ -481,6 +492,12 @@ class IntExt(ShowAllMethodsMixin, int):
481
492
 
482
493
  return divi_list
483
494
 
495
+ @overload
496
+ def prime_factor(self) -> list[Pow]: ...
497
+
498
+ @overload
499
+ def prime_factor(self, short_form: Literal[False] = ...) -> list[int]: ...
500
+
484
501
  def prime_factor(self, short_form: bool = True) -> list[int] | list[Pow]:
485
502
  """
486
503
  Prime factor
@@ -503,14 +520,15 @@ class IntExt(ShowAllMethodsMixin, int):
503
520
 
504
521
  Example:
505
522
  --------
506
- >>> test = IntNumber(1024)
523
+ >>> test = IntExt(1024)
507
524
  >>> test.prime_factor()
508
525
  [2^10]
509
526
 
510
- >>> test = IntNumber(1024)
527
+ >>> test = IntExt(1024)
511
528
  >>> test.prime_factor(short_form=False)
512
529
  [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
513
530
  """
531
+
514
532
  # Generate list
515
533
  factors = []
516
534
  divisor = 2
@@ -533,7 +551,7 @@ class IntExt(ShowAllMethodsMixin, int):
533
551
  # analyze
534
552
  def analyze(self, short_form: bool = True) -> dict[str, dict[str, Any]]:
535
553
  """
536
- Analyze the number with almost all ``IntNumber`` method
554
+ Analyze the number with almost all ``IntExt`` method
537
555
 
538
556
  Parameters
539
557
  ----------
@@ -549,7 +567,7 @@ class IntExt(ShowAllMethodsMixin, int):
549
567
 
550
568
  Example:
551
569
  --------
552
- >>> test = IntNumber(1024)
570
+ >>> test = IntExt(1024)
553
571
  >>> test.analyze()
554
572
  {
555
573
  'summary': {'number': 1024, 'length': 4, 'even': True, 'prime factor': [2^10], 'divisible': [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]},
@@ -562,7 +580,7 @@ class IntExt(ShowAllMethodsMixin, int):
562
580
  "number": self,
563
581
  "length": len(str(self)),
564
582
  "even": self.is_even(),
565
- "prime factor": self.prime_factor(short_form=short_form),
583
+ "prime factor": self.prime_factor(short_form=short_form), # type: ignore[call-overload]
566
584
  "divisible": self.divisible_list(),
567
585
  },
568
586
  "convert": {
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  list extension
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 Package
@@ -72,6 +72,12 @@ class ListExt(ShowAllMethodsMixin, list):
72
72
  -------
73
73
  list
74
74
  Filtered list
75
+
76
+
77
+ Example:
78
+ --------
79
+ >>> ListExt(range(10)).head(2)
80
+ [0, 1]
75
81
  """
76
82
  number_of_items = int(
77
83
  set_min_max(number_of_items, min_value=0, max_value=len(self))
@@ -92,6 +98,12 @@ class ListExt(ShowAllMethodsMixin, list):
92
98
  -------
93
99
  list
94
100
  Filtered list
101
+
102
+
103
+ Example:
104
+ --------
105
+ >>> ListExt(range(10)).tail(2)
106
+ [8, 9]
95
107
  """
96
108
  number_of_items = int(
97
109
  set_min_max(number_of_items, min_value=0, max_value=len(self))
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  str extension
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 Package
@@ -3,8 +3,8 @@ Absfuyu: Extra
3
3
  --------------
4
4
  Features that require additional libraries
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/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
 
@@ -3,8 +3,8 @@ Absfuyu: Beautiful
3
3
  ------------------
4
4
  A decorator that makes output more beautiful
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/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
@@ -3,8 +3,8 @@ Absfuyu: Data Analysis
3
3
  ----------------------
4
4
  Data Analyst
5
5
 
6
- Version: 5.2.0
7
- Date updated: 10/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