absfuyu 4.1.1__tar.gz → 5.0.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 (131) hide show
  1. absfuyu-5.0.0/PKG-INFO +143 -0
  2. absfuyu-5.0.0/README.md +92 -0
  3. absfuyu-5.0.0/docs/_template/versioning.html +27 -0
  4. {absfuyu-4.1.1 → absfuyu-5.0.0}/docs/conf.py +12 -4
  5. absfuyu-5.0.0/docs/info.md +86 -0
  6. absfuyu-5.0.0/images/Logo Full.png +0 -0
  7. absfuyu-5.0.0/images/Logo Square.png +0 -0
  8. absfuyu-5.0.0/images/Logo White.png +0 -0
  9. {absfuyu-4.1.1 → absfuyu-5.0.0}/pyproject.toml +49 -18
  10. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/__init__.py +4 -4
  11. absfuyu-5.0.0/src/absfuyu/__main__.py +27 -0
  12. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/cli/__init__.py +4 -2
  13. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/cli/color.py +7 -0
  14. absfuyu-5.0.0/src/absfuyu/cli/do_group.py +88 -0
  15. absfuyu-5.0.0/src/absfuyu/cli/tool_group.py +136 -0
  16. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/config/__init__.py +17 -34
  17. absfuyu-5.0.0/src/absfuyu/core/__init__.py +49 -0
  18. absfuyu-5.0.0/src/absfuyu/core/baseclass.py +299 -0
  19. absfuyu-5.0.0/src/absfuyu/core/baseclass2.py +165 -0
  20. absfuyu-5.0.0/src/absfuyu/core/decorator.py +67 -0
  21. absfuyu-5.0.0/src/absfuyu/core/docstring.py +163 -0
  22. absfuyu-5.0.0/src/absfuyu/core/dummy_cli.py +67 -0
  23. absfuyu-5.0.0/src/absfuyu/core/dummy_func.py +47 -0
  24. absfuyu-5.0.0/src/absfuyu/dxt/__init__.py +42 -0
  25. absfuyu-5.0.0/src/absfuyu/dxt/dictext.py +201 -0
  26. absfuyu-5.0.0/src/absfuyu/dxt/dxt_support.py +79 -0
  27. absfuyu-5.0.0/src/absfuyu/dxt/intext.py +586 -0
  28. absfuyu-5.0.0/src/absfuyu/dxt/listext.py +508 -0
  29. absfuyu-5.0.0/src/absfuyu/dxt/strext.py +530 -0
  30. {absfuyu-4.1.1/src/absfuyu/extensions → absfuyu-5.0.0/src/absfuyu/extra}/__init__.py +3 -2
  31. absfuyu-5.0.0/src/absfuyu/extra/beautiful.py +251 -0
  32. {absfuyu-4.1.1/src/absfuyu/extensions → absfuyu-5.0.0/src/absfuyu}/extra/data_analysis.py +51 -82
  33. absfuyu-5.0.0/src/absfuyu/fun/__init__.py +193 -0
  34. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/fun/tarot.py +9 -17
  35. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/game/__init__.py +6 -0
  36. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/game/game_stat.py +6 -0
  37. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/game/sudoku.py +7 -1
  38. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/game/tictactoe.py +12 -5
  39. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/game/wordle.py +14 -8
  40. absfuyu-5.0.0/src/absfuyu/general/__init__.py +23 -0
  41. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/general/content.py +22 -36
  42. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/general/generator.py +17 -42
  43. absfuyu-5.0.0/src/absfuyu/general/human.py +309 -0
  44. absfuyu-5.0.0/src/absfuyu/general/shape.py +1334 -0
  45. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/logger.py +8 -13
  46. absfuyu-5.0.0/src/absfuyu/pkg_data/__init__.py +187 -0
  47. absfuyu-4.1.1/src/absfuyu/pkg_data/__init__.py → absfuyu-5.0.0/src/absfuyu/pkg_data/deprecated.py +24 -40
  48. absfuyu-5.0.0/src/absfuyu/pkg_data/passwordlib_lzma.pkl +0 -0
  49. absfuyu-5.0.0/src/absfuyu/sort.py +140 -0
  50. absfuyu-5.0.0/src/absfuyu/tools/__init__.py +8 -0
  51. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/tools/checksum.py +44 -22
  52. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/tools/converter.py +82 -50
  53. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/tools/keygen.py +25 -30
  54. absfuyu-5.0.0/src/absfuyu/tools/obfuscator.py +382 -0
  55. absfuyu-5.0.0/src/absfuyu/tools/passwordlib.py +330 -0
  56. absfuyu-5.0.0/src/absfuyu/tools/shutdownizer.py +287 -0
  57. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/tools/web.py +2 -9
  58. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/util/__init__.py +15 -15
  59. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/util/api.py +10 -15
  60. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/util/json_method.py +7 -24
  61. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/util/lunar.py +3 -9
  62. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/util/path.py +22 -27
  63. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/util/performance.py +43 -67
  64. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/util/shorten_number.py +65 -14
  65. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/util/zipped.py +9 -15
  66. absfuyu-5.0.0/tests/test_beautiful.py +56 -0
  67. absfuyu-5.0.0/tests/test_core.py +215 -0
  68. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_data_analysis.py +1 -1
  69. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_data_extension.py +80 -42
  70. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_everything.py +75 -32
  71. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_extensions.py +2 -2
  72. absfuyu-5.0.0/tests/test_fun.py +65 -0
  73. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_logger.py +2 -2
  74. absfuyu-5.0.0/tests/test_passwordlib.py +120 -0
  75. absfuyu-5.0.0/tests/test_pkg_data.py +36 -0
  76. absfuyu-5.0.0/tests/test_shape.py +1037 -0
  77. absfuyu-5.0.0/tests/test_tools.py +154 -0
  78. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_util.py +63 -4
  79. absfuyu-4.1.1/PKG-INFO +0 -121
  80. absfuyu-4.1.1/README.md +0 -68
  81. absfuyu-4.1.1/docs/info.md +0 -39
  82. absfuyu-4.1.1/src/absfuyu/__main__.py +0 -15
  83. absfuyu-4.1.1/src/absfuyu/cli/do_group.py +0 -170
  84. absfuyu-4.1.1/src/absfuyu/core.py +0 -57
  85. absfuyu-4.1.1/src/absfuyu/everything.py +0 -32
  86. absfuyu-4.1.1/src/absfuyu/extensions/beautiful.py +0 -188
  87. absfuyu-4.1.1/src/absfuyu/extensions/dev/__init__.py +0 -244
  88. absfuyu-4.1.1/src/absfuyu/extensions/dev/password_hash.py +0 -80
  89. absfuyu-4.1.1/src/absfuyu/extensions/dev/passwordlib.py +0 -258
  90. absfuyu-4.1.1/src/absfuyu/extensions/dev/project_starter.py +0 -60
  91. absfuyu-4.1.1/src/absfuyu/extensions/dev/shutdownizer.py +0 -156
  92. absfuyu-4.1.1/src/absfuyu/extensions/extra/__init__.py +0 -24
  93. absfuyu-4.1.1/src/absfuyu/fun/WGS.py +0 -134
  94. absfuyu-4.1.1/src/absfuyu/fun/__init__.py +0 -218
  95. absfuyu-4.1.1/src/absfuyu/general/__init__.py +0 -96
  96. absfuyu-4.1.1/src/absfuyu/general/data_extension.py +0 -1796
  97. absfuyu-4.1.1/src/absfuyu/general/human.py +0 -429
  98. absfuyu-4.1.1/src/absfuyu/sort.py +0 -264
  99. absfuyu-4.1.1/src/absfuyu/tools/__init__.py +0 -8
  100. absfuyu-4.1.1/src/absfuyu/tools/obfuscator.py +0 -248
  101. absfuyu-4.1.1/src/absfuyu/tools/stats.py +0 -226
  102. absfuyu-4.1.1/src/absfuyu/util/pkl.py +0 -67
  103. absfuyu-4.1.1/tests/test_beautiful.py +0 -13
  104. absfuyu-4.1.1/tests/test_fun.py +0 -30
  105. absfuyu-4.1.1/tests/test_passwordlib.py +0 -56
  106. absfuyu-4.1.1/tests/test_pkg_data.py +0 -18
  107. absfuyu-4.1.1/tests/test_tarot.py +0 -18
  108. absfuyu-4.1.1/tests/test_tools.py +0 -70
  109. {absfuyu-4.1.1 → absfuyu-5.0.0}/.gitignore +0 -0
  110. {absfuyu-4.1.1 → absfuyu-5.0.0}/LICENSE +0 -0
  111. {absfuyu-4.1.1 → absfuyu-5.0.0}/dev_requirements.txt +0 -0
  112. {absfuyu-4.1.1 → absfuyu-5.0.0}/docs/Makefile +0 -0
  113. {absfuyu-4.1.1 → absfuyu-5.0.0}/docs/index.rst +0 -0
  114. {absfuyu-4.1.1 → absfuyu-5.0.0}/docs/make.bat +0 -0
  115. {absfuyu-4.1.1 → absfuyu-5.0.0}/docs/modules.rst +0 -0
  116. {absfuyu-4.1.1 → absfuyu-5.0.0}/images/repository-image-crop.png +0 -0
  117. {absfuyu-4.1.1 → absfuyu-5.0.0}/images/repository-image-white.png +0 -0
  118. {absfuyu-4.1.1 → absfuyu-5.0.0}/images/repository-image.png +0 -0
  119. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/cli/config_group.py +0 -0
  120. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/cli/game_group.py +0 -0
  121. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/config/config.json +0 -0
  122. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/pkg_data/chemistry.pkl +0 -0
  123. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/pkg_data/tarot.pkl +0 -0
  124. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/py.typed +0 -0
  125. {absfuyu-4.1.1 → absfuyu-5.0.0}/src/absfuyu/version.py +0 -0
  126. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/__init__.py +0 -0
  127. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/conftest.py +0 -0
  128. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_config.py +0 -0
  129. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_game.py +0 -0
  130. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_generator.py +0 -0
  131. {absfuyu-4.1.1 → absfuyu-5.0.0}/tests/test_version.py +0 -0
absfuyu-5.0.0/PKG-INFO ADDED
@@ -0,0 +1,143 @@
1
+ Metadata-Version: 2.4
2
+ Name: absfuyu
3
+ Version: 5.0.0
4
+ Summary: A small collection of code
5
+ Project-URL: Homepage, https://github.com/AbsoluteWinter/absfuyu-public
6
+ Project-URL: Documentation, https://absolutewinter.github.io/absfuyu-docs/
7
+ Project-URL: Repository, https://github.com/AbsoluteWinter/absfuyu-public
8
+ Project-URL: Issues, https://github.com/AbsoluteWinter/absfuyu-public/issues
9
+ Author: somewhatcold (AbsoluteWinter)
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: utilities
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: End Users/Desktop
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Natural Language :: English
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Topic :: Software Development :: Libraries
25
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
+ Classifier: Topic :: Utilities
27
+ Requires-Python: <4,>=3.11
28
+ Requires-Dist: bs4
29
+ Requires-Dist: click>=8.0.0
30
+ Requires-Dist: colorama
31
+ Requires-Dist: requests
32
+ Provides-Extra: beautiful
33
+ Requires-Dist: rich; extra == 'beautiful'
34
+ Provides-Extra: dev
35
+ Requires-Dist: hatch; extra == 'dev'
36
+ Requires-Dist: pytest; extra == 'dev'
37
+ Provides-Extra: docs
38
+ Requires-Dist: numpy; extra == 'docs'
39
+ Requires-Dist: pandas; extra == 'docs'
40
+ Requires-Dist: rich; extra == 'docs'
41
+ Provides-Extra: extra
42
+ Requires-Dist: numpy; extra == 'extra'
43
+ Requires-Dist: pandas; extra == 'extra'
44
+ Provides-Extra: full
45
+ Requires-Dist: numpy; extra == 'full'
46
+ Requires-Dist: pandas; extra == 'full'
47
+ Requires-Dist: rich; extra == 'full'
48
+ Requires-Dist: tqdm; extra == 'full'
49
+ Requires-Dist: unidecode; extra == 'full'
50
+ Description-Content-Type: text/markdown
51
+
52
+ <div align="center">
53
+ <h1 align="center">
54
+ <img src="https://github.com/AbsoluteWinter/AbsoluteWinter.github.io/blob/main/absfuyu/images/repository-image-crop.png?raw=true" alt="absfuyu"/>
55
+ </h1>
56
+ <p align="center">
57
+ <a href="https://pypi.org/project/absfuyu/"><img src="https://img.shields.io/pypi/pyversions/absfuyu?style=flat-square&logo=python" alt="PyPI Supported Versions"/></a>
58
+ <a href="https://pypi.org/project/absfuyu/"><img src="https://img.shields.io/pypi/dm/absfuyu?style=flat-square&color=blue" alt="PyPI Downloads"/></a>
59
+ <a href="https://pypi.org/project/absfuyu/"><img src="https://img.shields.io/pypi/v/absfuyu?style=flat-square&logo=pypi" /></a>
60
+ <a><img src="https://img.shields.io/pypi/l/absfuyu?style=flat-square&logo=github&color=blue"/></a>
61
+ <a><img src="https://img.shields.io/badge/code%20style-black-black?style=flat-square"/></a>
62
+ <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=flat-square" alt="Ruff" style="max-width:100%;"></a>
63
+ </p>
64
+ </div>
65
+
66
+ ---
67
+
68
+ ## **SUMMARY:**
69
+
70
+ This project is a collection of code primarily developed as a personal hobby. It aims to provide practical experience and enhance my coding skills while exploring potential future applications.
71
+
72
+ ## **INSTALLATION:**
73
+
74
+ To install the package, run the following command:
75
+
76
+ ```bash
77
+ pip install -U absfuyu
78
+ ```
79
+
80
+ ## **USAGE:**
81
+
82
+ ```python
83
+ import absfuyu
84
+ help(absfuyu)
85
+ ```
86
+
87
+ ### Notable features
88
+
89
+ **absfuyu.core**: Provides foundational components for additional functionalities.
90
+
91
+ ```python
92
+ # Decorators that adds info to __doc__
93
+ from absfuyu.core.docstring import versionadded, versionchanged, deprecated
94
+
95
+ # Class mixins for enhanced functionality
96
+ from absfuyu.core.baseclass import AutoREPRMixin, ShowAllMethodsMixin
97
+ ```
98
+
99
+ **absfuyu.dxt**: Extension for `list`, `str`, `dict`, `int`.
100
+
101
+ ```python
102
+ from absfuyu.dxt import DictExt, IntExt, ListExt, Text
103
+ for x in [DictExt, IntExt, ListExt, Text]:
104
+ x.show_all_methods(print_result=1)
105
+ ```
106
+
107
+ There are many additional features available to explore.
108
+
109
+ ## **DOCUMENTATION:**
110
+
111
+ For more detailed information about the project, please refer to the documentation available at the following link:
112
+
113
+ > [Project Documentation](https://absolutewinter.github.io/absfuyu/)
114
+
115
+ ## **DEVELOPMENT SETUP**
116
+
117
+ 1. Create a Virtual Environment
118
+
119
+ ```bash
120
+ python -m venv env
121
+ ```
122
+
123
+ Note: You may need to execute this command in PowerShell on Windows:
124
+
125
+ ```powershell
126
+ Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
127
+ ```
128
+
129
+ 2. Install Required Packages
130
+
131
+ ```bash
132
+ python -m pip install -e .[full,dev]
133
+ ```
134
+
135
+ 3. Acquire Information About the Development Environment Configuration
136
+
137
+ ```bash
138
+ hatch env show
139
+ ```
140
+
141
+ ## **LICENSE:**
142
+
143
+ This project is licensed under the MIT License.
@@ -0,0 +1,92 @@
1
+ <div align="center">
2
+ <h1 align="center">
3
+ <img src="https://github.com/AbsoluteWinter/AbsoluteWinter.github.io/blob/main/absfuyu/images/repository-image-crop.png?raw=true" alt="absfuyu"/>
4
+ </h1>
5
+ <p align="center">
6
+ <a href="https://pypi.org/project/absfuyu/"><img src="https://img.shields.io/pypi/pyversions/absfuyu?style=flat-square&logo=python" alt="PyPI Supported Versions"/></a>
7
+ <a href="https://pypi.org/project/absfuyu/"><img src="https://img.shields.io/pypi/dm/absfuyu?style=flat-square&color=blue" alt="PyPI Downloads"/></a>
8
+ <a href="https://pypi.org/project/absfuyu/"><img src="https://img.shields.io/pypi/v/absfuyu?style=flat-square&logo=pypi" /></a>
9
+ <a><img src="https://img.shields.io/pypi/l/absfuyu?style=flat-square&logo=github&color=blue"/></a>
10
+ <a><img src="https://img.shields.io/badge/code%20style-black-black?style=flat-square"/></a>
11
+ <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=flat-square" alt="Ruff" style="max-width:100%;"></a>
12
+ </p>
13
+ </div>
14
+
15
+ ---
16
+
17
+ ## **SUMMARY:**
18
+
19
+ This project is a collection of code primarily developed as a personal hobby. It aims to provide practical experience and enhance my coding skills while exploring potential future applications.
20
+
21
+ ## **INSTALLATION:**
22
+
23
+ To install the package, run the following command:
24
+
25
+ ```bash
26
+ pip install -U absfuyu
27
+ ```
28
+
29
+ ## **USAGE:**
30
+
31
+ ```python
32
+ import absfuyu
33
+ help(absfuyu)
34
+ ```
35
+
36
+ ### Notable features
37
+
38
+ **absfuyu.core**: Provides foundational components for additional functionalities.
39
+
40
+ ```python
41
+ # Decorators that adds info to __doc__
42
+ from absfuyu.core.docstring import versionadded, versionchanged, deprecated
43
+
44
+ # Class mixins for enhanced functionality
45
+ from absfuyu.core.baseclass import AutoREPRMixin, ShowAllMethodsMixin
46
+ ```
47
+
48
+ **absfuyu.dxt**: Extension for `list`, `str`, `dict`, `int`.
49
+
50
+ ```python
51
+ from absfuyu.dxt import DictExt, IntExt, ListExt, Text
52
+ for x in [DictExt, IntExt, ListExt, Text]:
53
+ x.show_all_methods(print_result=1)
54
+ ```
55
+
56
+ There are many additional features available to explore.
57
+
58
+ ## **DOCUMENTATION:**
59
+
60
+ For more detailed information about the project, please refer to the documentation available at the following link:
61
+
62
+ > [Project Documentation](https://absolutewinter.github.io/absfuyu/)
63
+
64
+ ## **DEVELOPMENT SETUP**
65
+
66
+ 1. Create a Virtual Environment
67
+
68
+ ```bash
69
+ python -m venv env
70
+ ```
71
+
72
+ Note: You may need to execute this command in PowerShell on Windows:
73
+
74
+ ```powershell
75
+ Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
76
+ ```
77
+
78
+ 2. Install Required Packages
79
+
80
+ ```bash
81
+ python -m pip install -e .[full,dev]
82
+ ```
83
+
84
+ 3. Acquire Information About the Development Environment Configuration
85
+
86
+ ```bash
87
+ hatch env show
88
+ ```
89
+
90
+ ## **LICENSE:**
91
+
92
+ This project is licensed under the MIT License.
@@ -0,0 +1,27 @@
1
+ {%- if current_version %}
2
+ <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
3
+ <span class="rst-current-version" data-toggle="rst-current-version">
4
+ <span class="fa fa-book"> Other Versions</span>
5
+ v: {{ current_version.name }}
6
+ <span class="fa fa-caret-down"></span>
7
+ </span>
8
+ <div class="rst-other-versions">
9
+ {%- if versions.tags %}
10
+ <dl>
11
+ <dt>Tags</dt>
12
+ {%- for item in versions.tags %}
13
+ <dd><a href="{{ item.url }}">{{ item.name }}</a></dd>
14
+ {%- endfor %}
15
+ </dl>
16
+ {%- endif %}
17
+ {%- if versions.branches %}
18
+ <dl>
19
+ <dt>Branches</dt>
20
+ {%- for item in versions.branches %}
21
+ <dd><a href="{{ item.url }}">{{ item.name }}</a></dd>
22
+ {%- endfor %}
23
+ </dl>
24
+ {%- endif %}
25
+ </div>
26
+ </div>
27
+ {%- endif %}
@@ -5,7 +5,6 @@
5
5
 
6
6
  import os
7
7
  import sys
8
- from datetime import datetime
9
8
 
10
9
  sys.path.insert(0, os.path.abspath(".."))
11
10
 
@@ -14,8 +13,8 @@ from absfuyu import __author__, __title__, __version__
14
13
  # -- Project information -----------------------------------------------------
15
14
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
16
15
 
17
- project = __title__
18
- copyright = f"2022-{datetime.now().year}, {__author__}"
16
+ project = f"{__title__}"
17
+ copyright = f"2022-%Y, {__author__}"
19
18
  author = __author__
20
19
  version = __version__
21
20
  release = version
@@ -23,6 +22,8 @@ release = version
23
22
  # -- General configuration ---------------------------------------------------
24
23
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
25
24
 
25
+ needs_sphinx = "8.1"
26
+
26
27
  extensions = [
27
28
  "sphinx.ext.autodoc", # include documentation
28
29
  "sphinx.ext.autosummary",
@@ -58,7 +59,9 @@ source_suffix = {
58
59
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
59
60
 
60
61
 
61
- # html_title = f"ABSFUYU'S DOCUMENTATION v{__version__}"
62
+ html_title = f"{__title__.upper()}'S DOCUMENTATION v{__version__}"
63
+ html_short_title = f"{__title__} v{__version__}"
64
+ # html_logo = "https://github.com/AbsoluteWinter/AbsoluteWinter.github.io/blob/75568549d30f447a66baac8ecc3b5e6b49a67d18/absfuyu/images/LOGO.png?raw=true"
62
65
 
63
66
  html_theme = "sphinx_rtd_theme"
64
67
  html_static_path = ["_static"]
@@ -69,6 +72,11 @@ html_show_sourcelink = False
69
72
  # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
70
73
  html_show_sphinx = False
71
74
 
75
+ html_sidebars = {
76
+ "**": [
77
+ "versioning.html",
78
+ ],
79
+ }
72
80
 
73
81
  # -- Extension configuration -------------------------------------------------
74
82
 
@@ -0,0 +1,86 @@
1
+ <div align="center">
2
+ <h1 align="center">
3
+ <img src="https://github.com/AbsoluteWinter/AbsoluteWinter.github.io/blob/main/absfuyu/images/repository-image-crop.png?raw=true" alt="absfuyu"/>
4
+ </h1>
5
+ <p align="center">
6
+ <a href="https://pypi.org/project/absfuyu/"><img src="https://img.shields.io/pypi/pyversions/absfuyu?style=flat-square&logo=python" alt="PyPI Supported Versions"/></a>
7
+ <a href="https://pypi.org/project/absfuyu/"><img src="https://img.shields.io/pypi/dm/absfuyu?style=flat-square&color=blue" alt="PyPI Downloads"/></a>
8
+ <a href="https://pypi.org/project/absfuyu/"><img src="https://img.shields.io/pypi/v/absfuyu?style=flat-square&logo=pypi" /></a>
9
+ <a><img src="https://img.shields.io/pypi/l/absfuyu?style=flat-square&logo=github&color=blue"/></a>
10
+ <a><img src="https://img.shields.io/badge/code%20style-black-black?style=flat-square"/></a>
11
+ <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=flat-square" alt="Ruff" style="max-width:100%;"></a>
12
+ </p>
13
+ </div>
14
+
15
+ ---
16
+
17
+ # SUMMARY
18
+
19
+ This project is a collection of code primarily developed as a personal hobby. It aims to provide practical experience and enhance my coding skills while exploring potential future applications.
20
+
21
+ # INSTALLATION
22
+
23
+ To install the package, run the following command:
24
+
25
+ ```bash
26
+ pip install -U absfuyu
27
+ ```
28
+
29
+ # USAGE
30
+
31
+ ```python
32
+ import absfuyu
33
+ help(absfuyu)
34
+ ```
35
+
36
+ ## Notable features
37
+
38
+ **absfuyu.core**: Provides foundational components for additional functionalities.
39
+
40
+ ```python
41
+ # Decorators that adds info to __doc__
42
+ from absfuyu.core.docstring import versionadded, versionchanged, deprecated
43
+
44
+ # Class mixins for enhanced functionality
45
+ from absfuyu.core.baseclass import AutoREPRMixin, ShowAllMethodsMixin
46
+ ```
47
+
48
+ **absfuyu.dxt**: Extension for `list`, `str`, `dict`, `int`.
49
+
50
+ ```python
51
+ from absfuyu.dxt import DictExt, IntExt, ListExt, Text
52
+ for x in [DictExt, IntExt, ListExt, Text]:
53
+ x.show_all_methods(print_result=1)
54
+ ```
55
+
56
+ There are many additional features available to explore.
57
+
58
+ # DEVELOPMENT SETUP
59
+
60
+ 1. Create a Virtual Environment
61
+
62
+ ```bash
63
+ python -m venv env
64
+ ```
65
+
66
+ Note: You may need to execute this command in PowerShell on Windows:
67
+
68
+ ```powershell
69
+ Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
70
+ ```
71
+
72
+ 2. Install Required Packages
73
+
74
+ ```bash
75
+ python -m pip install -e .[full,dev]
76
+ ```
77
+
78
+ 3. Acquire Information About the Development Environment Configuration
79
+
80
+ ```bash
81
+ hatch env show
82
+ ```
83
+
84
+ # LICENSE
85
+
86
+ This project is licensed under the MIT License.
Binary file
Binary file
Binary file
@@ -10,7 +10,7 @@
10
10
 
11
11
  # MARK: BUILD ====================
12
12
  [build-system]
13
- requires = ["hatchling>=1.22.2", "hatch-vcs>=0.3.0"]
13
+ requires = ["hatchling>=1.27.0", "hatch-vcs>=0.3.0"]
14
14
  build-backend = "hatchling.build"
15
15
 
16
16
  # MARK: PROJECT ====================
@@ -19,7 +19,8 @@ name = "absfuyu"
19
19
  description = "A small collection of code"
20
20
  readme = { "file" = "README.md", "content-type" = "text/markdown" }
21
21
  requires-python = ">=3.11, <4"
22
- license = { text = "MIT License" }
22
+ license = "MIT"
23
+ license-files = ["LICEN[CS]E*"]
23
24
  keywords = ["utilities"]
24
25
  authors = [{ name = "somewhatcold (AbsoluteWinter)" }]
25
26
  classifiers = [
@@ -43,11 +44,8 @@ dependencies = [
43
44
  "bs4",
44
45
  "click>=8.0.0",
45
46
  "colorama",
46
- "Deprecated",
47
- "python-dateutil",
48
47
  "requests",
49
- "typing_extensions>=4.5.0; python_version < '3.12'",
50
- "unidecode",
48
+ # "typing_extensions>=4.5.0; python_version < '3.12'",
51
49
  ]
52
50
 
53
51
  dynamic = ["version"]
@@ -59,8 +57,8 @@ Repository = "https://github.com/AbsoluteWinter/absfuyu-public"
59
57
  Issues = "https://github.com/AbsoluteWinter/absfuyu-public/issues"
60
58
 
61
59
  [project.optional-dependencies]
62
- res = ["absfuyu-res"]
63
- full = ["absfuyu-res", "numpy", "pandas", "rich", "tqdm"]
60
+ full = ["numpy", "pandas", "rich", "tqdm", "unidecode"]
61
+ docs = ["numpy", "pandas", "rich"]
64
62
  beautiful = ["rich"]
65
63
  extra = ["numpy", "pandas"]
66
64
  dev = ["hatch", "pytest"]
@@ -79,7 +77,7 @@ only-include = ["src", "tests", "docs", "images", "dev_requirements.txt"]
79
77
 
80
78
  # Set up virtual env: use hatch env show
81
79
  [tool.hatch.envs.default]
82
- dependencies = ["coverage[toml]", "pytest-cov", "pytest"]
80
+ dependencies = ["coverage[toml]", "pytest", "pytest-cov"]
83
81
  description = """
84
82
  Default environment
85
83
 
@@ -97,6 +95,7 @@ cov = ["test-cov", "cov-report"] # use this
97
95
  cov2 = "pytest --cov-report=term-missing --cov=absfuyu --cov=tests" # use this
98
96
 
99
97
  [tool.hatch.envs.all]
98
+ dependencies = ["coverage[toml]", "pytest", "pytest-cov", "pytest-xdist"]
100
99
  features = ["full"]
101
100
  description = """
102
101
  All python version to test:
@@ -107,6 +106,7 @@ Use `hatch run all:install` when occur "no module named" error
107
106
 
108
107
  [tool.hatch.envs.all.scripts]
109
108
  install = "pip install -e .[full]" # This command fix "no module named"
109
+ test2 = "pytest -n auto" # parallel test
110
110
 
111
111
  [[tool.hatch.envs.all.matrix]] # hatch env run -e all test
112
112
  python = ["3.11", "3.12", "3.13"]
@@ -121,9 +121,9 @@ check = "mypy --install-types --non-interactive {args:src/absfuyu}"
121
121
  # check = "mypy --install-types --non-interactive {args:src/absfuyu tests}"
122
122
 
123
123
  [tool.hatch.envs.docs]
124
- features = ["full"]
124
+ features = ["docs"]
125
125
  dependencies = [
126
- "sphinx>=7.0.0",
126
+ "sphinx>=8.1.0",
127
127
  "sphinx_rtd_theme",
128
128
  "sphinx_copybutton",
129
129
  "myst-parser", # Markdown parser
@@ -139,13 +139,36 @@ Main cmd:
139
139
  """
140
140
 
141
141
  [tool.hatch.envs.docs.scripts]
142
+ clean = [
143
+ """
144
+ python -c "print('Cleaning up...')"
145
+ """,
146
+ """
147
+ python -c "import shutil;from pathlib import Path;shutil.rmtree(Path.cwd().joinpath('docs', 'build'))"
148
+ """, # Delete docs/build/ folder
149
+ """
150
+ python -c "from pathlib import Path;[x.unlink() for x in Path.cwd().joinpath('docs').glob('absfuyu*.rst')]"
151
+ """, # Clean .rst files in docs/ folder
152
+ """
153
+ python -c "print('Cleaning up...DONE')"
154
+ """,
155
+ ]
156
+ build_private = [
157
+ # -f --force
158
+ # -e --separate
159
+ # -M --module-first
160
+ # -P --private
161
+ "sphinx-apidoc -o docs/ src/absfuyu -feMP",
162
+ "sphinx-build docs docs/build",
163
+ ]
142
164
  build = [
143
- "sphinx-apidoc -o docs/ src/absfuyu", # Generate
144
- "sphinx-build docs docs/build", # Build
165
+ "clean",
166
+ "sphinx-apidoc -o docs/ src/absfuyu -eM", # Generate
167
+ "sphinx-build docs docs/build", # Build
145
168
  ]
146
169
  live = [
147
- "sphinx-apidoc -o docs/ src/absfuyu", # Generate
148
- "sphinx-autobuild docs docs/build", # Live preview
170
+ "sphinx-apidoc -o docs/ src/absfuyu -feM", # Generate
171
+ "sphinx-autobuild docs docs/build", # Live preview
149
172
  ]
150
173
 
151
174
  [tool.hatch.envs.style]
@@ -180,9 +203,12 @@ Options:
180
203
  """
181
204
 
182
205
  [tool.hatch.envs.workflow.scripts]
183
- test = [
206
+ qa = [
184
207
  "hatch run style:fmt", # Code quality check
185
208
  "hatch run types:check", # type-hint check
209
+ ]
210
+ test = [
211
+ "qa",
186
212
  "hatch run all:test", # Test
187
213
  ]
188
214
  build = [
@@ -212,7 +238,6 @@ build = [
212
238
  9617320663a662e77726974656c696e65732863290a7072696e7428224c6963656e7365\
213
239
  207965617220757064617465642229').decode('utf-8'))\"
214
240
  """,
215
- # "python support_scripts/update_license_year.py", # Update license year
216
241
  "hatch clean", # Clean dist/ folder
217
242
  "hatch -v build", # Build package
218
243
  "hatch run docs:build", # Build docs
@@ -245,7 +270,10 @@ addopts = [
245
270
  ]
246
271
  markers = [ # pytest -m <marker> -v
247
272
  "test_this: Select desire tests to test",
248
- "data_extension: Test all data extension classes",
273
+ "abs_core: Test in absfuyu.core",
274
+ "abs_dxt: Test in absfuyu.dxt",
275
+ "abs_fun: Test in absfuyu.fun",
276
+ "abs_shape: Test in absfuyu.general.shape",
249
277
  "abs_tools: Test in absfuyu.tools",
250
278
  "abs_util: Test in absfuyu.util",
251
279
  ]
@@ -310,6 +338,9 @@ ignore = [
310
338
  ]
311
339
  "shorten_number.py" = ["B007"] # Loop control variable not used within loop body
312
340
 
341
+ [tool.ruff.lint.pydocstyle]
342
+ convention = "numpy"
343
+
313
344
  # MARK: TOOL: black
314
345
  [tool.black]
315
346
  line-length = 88
@@ -15,19 +15,19 @@ Normal import:
15
15
  >>> import absfuyu
16
16
  >>> help(absfuyu)
17
17
 
18
- Using in cmd (`absfuyu[cli]` required):
18
+ Using in cmd:
19
19
  ``$ fuyu --help``
20
20
  """
21
21
 
22
22
  __title__ = "absfuyu"
23
23
  __author__ = "AbsoluteWinter"
24
24
  __license__ = "MIT License"
25
- __version__ = "4.1.1"
25
+ __version__ = "5.0.0"
26
26
  __all__ = [
27
27
  "core",
28
28
  "config",
29
- "everything",
30
- "extensions",
29
+ "dxt",
30
+ "extra",
31
31
  "logger",
32
32
  "fun",
33
33
  "game",
@@ -0,0 +1,27 @@
1
+ """
2
+ ABSFUYU
3
+ -------
4
+ COMMAND LINE INTERFACE
5
+
6
+ Version: 5.0.0
7
+ Date updated: 18/02/2025 (dd/mm/yyyy)
8
+ """
9
+
10
+ # Library
11
+ # ---------------------------------------------------------------------------
12
+ try:
13
+ from absfuyu.cli import cli
14
+ except ModuleNotFoundError: # Check for `click`, `colorama`
15
+ from absfuyu.core.dummy_cli import cli
16
+
17
+
18
+ # Function
19
+ # ---------------------------------------------------------------------------
20
+ def main() -> None:
21
+ cli()
22
+
23
+
24
+ # Run
25
+ # ---------------------------------------------------------------------------
26
+ if __name__ == "__main__":
27
+ main()
@@ -3,8 +3,8 @@ ABSFUYU
3
3
  -------
4
4
  COMMAND LINE INTERFACE
5
5
 
6
- Version: 1.0.0
7
- Date updated: 14/04/2024 (dd/mm/yyyy)
6
+ Version: 1.1.0
7
+ Date updated: 09/02/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  __all__ = ["cli"]
@@ -19,6 +19,7 @@ from absfuyu.cli.color import COLOR
19
19
  from absfuyu.cli.config_group import config_group
20
20
  from absfuyu.cli.do_group import do_group
21
21
  from absfuyu.cli.game_group import game_group
22
+ from absfuyu.cli.tool_group import tool_group
22
23
 
23
24
  # Color stuff
24
25
  colorama.init(autoreset=True)
@@ -48,4 +49,5 @@ def cli() -> None:
48
49
  cli.add_command(config_group)
49
50
  cli.add_command(do_group)
50
51
  cli.add_command(game_group)
52
+ cli.add_command(tool_group)
51
53
  cli.add_command(version)
@@ -7,10 +7,17 @@ Version: 1.0.0
7
7
  Date updated: 14/04/2024 (dd/mm/yyyy)
8
8
  """
9
9
 
10
+ # Module Package
11
+ # ---------------------------------------------------------------------------
10
12
  __all__ = ["COLOR"]
11
13
 
14
+
15
+ # Library
16
+ # ---------------------------------------------------------------------------
12
17
  import colorama
13
18
 
19
+ # Color
20
+ # ---------------------------------------------------------------------------
14
21
  COLOR = {
15
22
  "green": colorama.Fore.LIGHTGREEN_EX,
16
23
  "GREEN": colorama.Fore.GREEN,