absfuyu 5.0.0__tar.gz → 5.1.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.
- {absfuyu-5.0.0 → absfuyu-5.1.0}/PKG-INFO +10 -3
- {absfuyu-5.0.0 → absfuyu-5.1.0}/README.md +9 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/dev_requirements.txt +1 -1
- {absfuyu-5.0.0 → absfuyu-5.1.0}/docs/conf.py +1 -1
- {absfuyu-5.0.0 → absfuyu-5.1.0}/docs/info.md +8 -1
- {absfuyu-5.0.0 → absfuyu-5.1.0}/pyproject.toml +6 -3
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/__init__.py +1 -1
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/__main__.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/cli/__init__.py +2 -2
- absfuyu-5.1.0/src/absfuyu/cli/color.py +47 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/cli/config_group.py +9 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/cli/do_group.py +13 -6
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/cli/game_group.py +9 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/cli/tool_group.py +16 -9
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/config/__init__.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/core/__init__.py +2 -2
- absfuyu-5.1.0/src/absfuyu/core/baseclass.py +668 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/core/baseclass2.py +2 -2
- absfuyu-5.1.0/src/absfuyu/core/decorator.py +133 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/core/docstring.py +25 -22
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/core/dummy_cli.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/core/dummy_func.py +19 -6
- absfuyu-5.1.0/src/absfuyu/core/typings.py +40 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/dxt/__init__.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/dxt/dictext.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/dxt/dxt_support.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/dxt/intext.py +31 -3
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/dxt/listext.py +28 -3
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/dxt/strext.py +3 -3
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/extra/__init__.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/extra/beautiful.py +3 -2
- absfuyu-5.1.0/src/absfuyu/extra/da/__init__.py +36 -0
- absfuyu-5.1.0/src/absfuyu/extra/da/dadf.py +1138 -0
- absfuyu-5.1.0/src/absfuyu/extra/da/dadf_base.py +186 -0
- absfuyu-5.1.0/src/absfuyu/extra/da/df_func.py +97 -0
- absfuyu-5.1.0/src/absfuyu/extra/da/mplt.py +219 -0
- absfuyu-5.1.0/src/absfuyu/extra/data_analysis.py +21 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/fun/__init__.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/fun/tarot.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/game/__init__.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/game/game_stat.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/game/sudoku.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/game/tictactoe.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/game/wordle.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/general/__init__.py +4 -4
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/general/content.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/general/human.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/general/shape.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/logger.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/pkg_data/__init__.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/pkg_data/deprecated.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/sort.py +2 -2
- absfuyu-5.1.0/src/absfuyu/tools/__init__.py +31 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/tools/checksum.py +27 -7
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/tools/converter.py +93 -28
- {absfuyu-5.0.0/src/absfuyu/general → absfuyu-5.1.0/src/absfuyu/tools}/generator.py +2 -2
- absfuyu-5.1.0/src/absfuyu/tools/inspector.py +433 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/tools/keygen.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/tools/obfuscator.py +46 -8
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/tools/passwordlib.py +88 -23
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/tools/shutdownizer.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/tools/web.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/util/__init__.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/util/api.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/util/json_method.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/util/lunar.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/util/path.py +190 -82
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/util/performance.py +4 -4
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/util/shorten_number.py +40 -10
- absfuyu-5.1.0/src/absfuyu/util/text_table.py +272 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/util/zipped.py +6 -6
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/version.py +59 -42
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/conftest.py +2 -2
- absfuyu-5.1.0/tests/test_api.py +41 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_beautiful.py +7 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_config.py +2 -2
- absfuyu-5.1.0/tests/test_converter.py +49 -0
- absfuyu-5.1.0/tests/test_core.py +392 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_data_analysis.py +89 -5
- absfuyu-5.1.0/tests/test_dictext.py +68 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_everything.py +51 -12
- absfuyu-5.0.0/tests/test_extensions.py → absfuyu-5.1.0/tests/test_extra.py +3 -3
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_fun.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_game.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_generator.py +3 -3
- absfuyu-5.1.0/tests/test_inspector.py +78 -0
- absfuyu-5.1.0/tests/test_intext.py +153 -0
- absfuyu-5.1.0/tests/test_listext.py +132 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_logger.py +2 -2
- absfuyu-5.0.0/tests/test_tools.py → absfuyu-5.1.0/tests/test_obfuscator.py +3 -65
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_passwordlib.py +2 -2
- absfuyu-5.1.0/tests/test_performance.py +66 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_pkg_data.py +2 -2
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_shape.py +2 -2
- absfuyu-5.1.0/tests/test_shorten_number.py +34 -0
- absfuyu-5.1.0/tests/test_strext.py +181 -0
- absfuyu-5.1.0/tests/test_text_table.py +114 -0
- absfuyu-5.1.0/tests/test_tools.py +30 -0
- absfuyu-5.1.0/tests/test_util.py +55 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/test_version.py +2 -2
- absfuyu-5.0.0/src/absfuyu/cli/color.py +0 -31
- absfuyu-5.0.0/src/absfuyu/core/baseclass.py +0 -299
- absfuyu-5.0.0/src/absfuyu/core/decorator.py +0 -67
- absfuyu-5.0.0/src/absfuyu/extra/data_analysis.py +0 -1078
- absfuyu-5.0.0/src/absfuyu/tools/__init__.py +0 -8
- absfuyu-5.0.0/tests/test_core.py +0 -215
- absfuyu-5.0.0/tests/test_data_extension.py +0 -502
- absfuyu-5.0.0/tests/test_util.py +0 -163
- {absfuyu-5.0.0 → absfuyu-5.1.0}/.gitignore +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/LICENSE +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/docs/Makefile +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/docs/_template/versioning.html +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/docs/index.rst +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/docs/make.bat +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/docs/modules.rst +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/images/Logo Full.png +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/images/Logo Square.png +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/images/Logo White.png +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/images/repository-image-crop.png +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/images/repository-image-white.png +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/images/repository-image.png +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/config/config.json +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/pkg_data/chemistry.pkl +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/pkg_data/passwordlib_lzma.pkl +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/pkg_data/tarot.pkl +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/src/absfuyu/py.typed +0 -0
- {absfuyu-5.0.0 → absfuyu-5.1.0}/tests/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: absfuyu
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.1.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/
|
|
@@ -86,7 +86,7 @@ help(absfuyu)
|
|
|
86
86
|
|
|
87
87
|
### Notable features
|
|
88
88
|
|
|
89
|
-
**absfuyu.core**: Provides
|
|
89
|
+
**absfuyu.core**: Provides base components for additional functionalities.
|
|
90
90
|
|
|
91
91
|
```python
|
|
92
92
|
# Decorators that adds info to __doc__
|
|
@@ -104,13 +104,20 @@ for x in [DictExt, IntExt, ListExt, Text]:
|
|
|
104
104
|
x.show_all_methods(print_result=1)
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
+
**absfuyu.tools.Inspector**: An object inspector
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
from absfuyu.tools import Inspector
|
|
111
|
+
print(Inspector(Inspector))
|
|
112
|
+
```
|
|
113
|
+
|
|
107
114
|
There are many additional features available to explore.
|
|
108
115
|
|
|
109
116
|
## **DOCUMENTATION:**
|
|
110
117
|
|
|
111
118
|
For more detailed information about the project, please refer to the documentation available at the following link:
|
|
112
119
|
|
|
113
|
-
> [Project Documentation](https://absolutewinter.github.io/absfuyu/)
|
|
120
|
+
> [Project Documentation](https://absolutewinter.github.io/absfuyu-docs/)
|
|
114
121
|
|
|
115
122
|
## **DEVELOPMENT SETUP**
|
|
116
123
|
|
|
@@ -35,7 +35,7 @@ help(absfuyu)
|
|
|
35
35
|
|
|
36
36
|
### Notable features
|
|
37
37
|
|
|
38
|
-
**absfuyu.core**: Provides
|
|
38
|
+
**absfuyu.core**: Provides base components for additional functionalities.
|
|
39
39
|
|
|
40
40
|
```python
|
|
41
41
|
# Decorators that adds info to __doc__
|
|
@@ -53,13 +53,20 @@ for x in [DictExt, IntExt, ListExt, Text]:
|
|
|
53
53
|
x.show_all_methods(print_result=1)
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
+
**absfuyu.tools.Inspector**: An object inspector
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
from absfuyu.tools import Inspector
|
|
60
|
+
print(Inspector(Inspector))
|
|
61
|
+
```
|
|
62
|
+
|
|
56
63
|
There are many additional features available to explore.
|
|
57
64
|
|
|
58
65
|
## **DOCUMENTATION:**
|
|
59
66
|
|
|
60
67
|
For more detailed information about the project, please refer to the documentation available at the following link:
|
|
61
68
|
|
|
62
|
-
> [Project Documentation](https://absolutewinter.github.io/absfuyu/)
|
|
69
|
+
> [Project Documentation](https://absolutewinter.github.io/absfuyu-docs/)
|
|
63
70
|
|
|
64
71
|
## **DEVELOPMENT SETUP**
|
|
65
72
|
|
|
@@ -33,7 +33,7 @@ extensions = [
|
|
|
33
33
|
# "sphinx.ext.extlinks", # short link
|
|
34
34
|
"sphinx.ext.githubpages",
|
|
35
35
|
"sphinx.ext.napoleon",
|
|
36
|
-
|
|
36
|
+
"sphinx.ext.viewcode", # This shows source code
|
|
37
37
|
"sphinx_copybutton",
|
|
38
38
|
"myst_parser", # Markdown support
|
|
39
39
|
]
|
|
@@ -35,7 +35,7 @@ help(absfuyu)
|
|
|
35
35
|
|
|
36
36
|
## Notable features
|
|
37
37
|
|
|
38
|
-
**absfuyu.core**: Provides
|
|
38
|
+
**absfuyu.core**: Provides base components for additional functionalities.
|
|
39
39
|
|
|
40
40
|
```python
|
|
41
41
|
# Decorators that adds info to __doc__
|
|
@@ -53,6 +53,13 @@ for x in [DictExt, IntExt, ListExt, Text]:
|
|
|
53
53
|
x.show_all_methods(print_result=1)
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
+
**absfuyu.tools.Inspector**: An object inspector
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
from absfuyu.tools import Inspector
|
|
60
|
+
print(Inspector(Inspector))
|
|
61
|
+
```
|
|
62
|
+
|
|
56
63
|
There are many additional features available to explore.
|
|
57
64
|
|
|
58
65
|
# DEVELOPMENT SETUP
|
|
@@ -77,7 +77,7 @@ only-include = ["src", "tests", "docs", "images", "dev_requirements.txt"]
|
|
|
77
77
|
|
|
78
78
|
# Set up virtual env: use hatch env show
|
|
79
79
|
[tool.hatch.envs.default]
|
|
80
|
-
dependencies = ["coverage[toml]", "pytest", "pytest-cov"]
|
|
80
|
+
dependencies = ["coverage[toml]", "pytest", "pytest-cov", "pytest-mock"]
|
|
81
81
|
description = """
|
|
82
82
|
Default environment
|
|
83
83
|
|
|
@@ -95,7 +95,7 @@ cov = ["test-cov", "cov-report"] # use this
|
|
|
95
95
|
cov2 = "pytest --cov-report=term-missing --cov=absfuyu --cov=tests" # use this
|
|
96
96
|
|
|
97
97
|
[tool.hatch.envs.all]
|
|
98
|
-
dependencies = ["coverage[toml]", "pytest", "pytest-cov", "pytest-xdist"]
|
|
98
|
+
dependencies = ["coverage[toml]", "pytest", "pytest-cov", "pytest-mock", "pytest-xdist"]
|
|
99
99
|
features = ["full"]
|
|
100
100
|
description = """
|
|
101
101
|
All python version to test:
|
|
@@ -153,6 +153,9 @@ clean = [
|
|
|
153
153
|
python -c "print('Cleaning up...DONE')"
|
|
154
154
|
""",
|
|
155
155
|
]
|
|
156
|
+
build_only = [
|
|
157
|
+
"sphinx-build docs docs/build", # Build
|
|
158
|
+
]
|
|
156
159
|
build_private = [
|
|
157
160
|
# -f --force
|
|
158
161
|
# -e --separate
|
|
@@ -164,7 +167,7 @@ build_private = [
|
|
|
164
167
|
build = [
|
|
165
168
|
"clean",
|
|
166
169
|
"sphinx-apidoc -o docs/ src/absfuyu -eM", # Generate
|
|
167
|
-
"
|
|
170
|
+
"build_only", # Build
|
|
168
171
|
]
|
|
169
172
|
live = [
|
|
170
173
|
"sphinx-apidoc -o docs/ src/absfuyu -feM", # Generate
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"""
|
|
2
|
+
ABSFUYU CLI
|
|
3
|
+
-----------
|
|
4
|
+
Color
|
|
5
|
+
|
|
6
|
+
Version: 5.1.0
|
|
7
|
+
Date updated: 10/03/2025 (dd/mm/yyyy)
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
# Module Package
|
|
11
|
+
# ---------------------------------------------------------------------------
|
|
12
|
+
__all__ = ["COLOR"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# Library
|
|
16
|
+
# ---------------------------------------------------------------------------
|
|
17
|
+
try:
|
|
18
|
+
import colorama
|
|
19
|
+
except ModuleNotFoundError: # Check for `colorama`
|
|
20
|
+
colorama = None
|
|
21
|
+
|
|
22
|
+
# Color
|
|
23
|
+
# ---------------------------------------------------------------------------
|
|
24
|
+
if colorama is None:
|
|
25
|
+
COLOR = {
|
|
26
|
+
"green": "",
|
|
27
|
+
"GREEN": "",
|
|
28
|
+
"blue": "",
|
|
29
|
+
"BLUE": "",
|
|
30
|
+
"red": "",
|
|
31
|
+
"RED": "",
|
|
32
|
+
"yellow": "",
|
|
33
|
+
"YELLOW": "",
|
|
34
|
+
"reset": "",
|
|
35
|
+
}
|
|
36
|
+
else:
|
|
37
|
+
COLOR = {
|
|
38
|
+
"green": colorama.Fore.LIGHTGREEN_EX,
|
|
39
|
+
"GREEN": colorama.Fore.GREEN,
|
|
40
|
+
"blue": colorama.Fore.LIGHTCYAN_EX,
|
|
41
|
+
"BLUE": colorama.Fore.CYAN,
|
|
42
|
+
"red": colorama.Fore.LIGHTRED_EX,
|
|
43
|
+
"RED": colorama.Fore.RED,
|
|
44
|
+
"yellow": colorama.Fore.LIGHTYELLOW_EX,
|
|
45
|
+
"YELLOW": colorama.Fore.YELLOW,
|
|
46
|
+
"reset": colorama.Fore.RESET,
|
|
47
|
+
}
|
|
@@ -3,18 +3,25 @@ ABSFUYU CLI
|
|
|
3
3
|
-----------
|
|
4
4
|
Config
|
|
5
5
|
|
|
6
|
-
Version: 1.0
|
|
7
|
-
Date updated:
|
|
6
|
+
Version: 5.1.0
|
|
7
|
+
Date updated: 10/03/2025 (dd/mm/yyyy)
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
+
# Module Package
|
|
11
|
+
# ---------------------------------------------------------------------------
|
|
10
12
|
__all__ = ["config_group"]
|
|
11
13
|
|
|
14
|
+
|
|
15
|
+
# Library
|
|
16
|
+
# ---------------------------------------------------------------------------
|
|
12
17
|
import click
|
|
13
18
|
|
|
14
19
|
from absfuyu.cli.color import COLOR
|
|
15
20
|
from absfuyu.config import ABSFUYU_CONFIG
|
|
16
21
|
|
|
17
22
|
|
|
23
|
+
# CLI
|
|
24
|
+
# ---------------------------------------------------------------------------
|
|
18
25
|
@click.command()
|
|
19
26
|
@click.option(
|
|
20
27
|
"--setting",
|
|
@@ -3,12 +3,17 @@ ABSFUYU CLI
|
|
|
3
3
|
-----------
|
|
4
4
|
Do
|
|
5
5
|
|
|
6
|
-
Version: 1.
|
|
7
|
-
Date updated:
|
|
6
|
+
Version: 5.1.0
|
|
7
|
+
Date updated: 10/03/2025 (dd/mm/yyyy)
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
+
# Module Package
|
|
11
|
+
# ---------------------------------------------------------------------------
|
|
10
12
|
__all__ = ["do_group"]
|
|
11
13
|
|
|
14
|
+
|
|
15
|
+
# Library
|
|
16
|
+
# ---------------------------------------------------------------------------
|
|
12
17
|
import subprocess
|
|
13
18
|
|
|
14
19
|
import click
|
|
@@ -17,10 +22,12 @@ from absfuyu import __title__
|
|
|
17
22
|
from absfuyu.cli.color import COLOR
|
|
18
23
|
from absfuyu.core import __package_feature__
|
|
19
24
|
from absfuyu.tools.shutdownizer import ShutDownizer
|
|
20
|
-
from absfuyu.util.
|
|
25
|
+
from absfuyu.util.path import Directory
|
|
21
26
|
from absfuyu.version import PkgVersion
|
|
22
27
|
|
|
23
28
|
|
|
29
|
+
# CLI
|
|
30
|
+
# ---------------------------------------------------------------------------
|
|
24
31
|
@click.command()
|
|
25
32
|
@click.option(
|
|
26
33
|
"--force_update/--no-force-update",
|
|
@@ -64,9 +71,9 @@ def install(pkg: str) -> None:
|
|
|
64
71
|
def unzip_files_in_dir(dir: str) -> None:
|
|
65
72
|
"""Unzip every files in directory"""
|
|
66
73
|
|
|
67
|
-
engine =
|
|
68
|
-
engine.
|
|
69
|
-
|
|
74
|
+
engine = Directory(dir)
|
|
75
|
+
engine.decompress()
|
|
76
|
+
click.echo(f"{COLOR['green']}Done!")
|
|
70
77
|
|
|
71
78
|
|
|
72
79
|
@click.command(name="shutdown")
|
|
@@ -3,12 +3,17 @@ ABSFUYU CLI
|
|
|
3
3
|
-----------
|
|
4
4
|
Game
|
|
5
5
|
|
|
6
|
-
Version: 1.0
|
|
7
|
-
Date updated:
|
|
6
|
+
Version: 5.1.0
|
|
7
|
+
Date updated: 10/03/2025 (dd/mm/yyyy)
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
+
# Module Package
|
|
11
|
+
# ---------------------------------------------------------------------------
|
|
10
12
|
__all__ = ["game_group"]
|
|
11
13
|
|
|
14
|
+
|
|
15
|
+
# Library
|
|
16
|
+
# ---------------------------------------------------------------------------
|
|
12
17
|
import click
|
|
13
18
|
|
|
14
19
|
from absfuyu.game import game_escapeLoop, game_RockPaperScissors
|
|
@@ -17,6 +22,8 @@ from absfuyu.game.tictactoe import GameMode, TicTacToe
|
|
|
17
22
|
from absfuyu.game.wordle import Wordle
|
|
18
23
|
|
|
19
24
|
|
|
25
|
+
# CLI
|
|
26
|
+
# ---------------------------------------------------------------------------
|
|
20
27
|
@click.command
|
|
21
28
|
@click.option(
|
|
22
29
|
"--hard",
|
|
@@ -3,12 +3,18 @@ ABSFUYU CLI
|
|
|
3
3
|
-----------
|
|
4
4
|
Tool
|
|
5
5
|
|
|
6
|
-
Version: 1.0
|
|
7
|
-
Date updated: 10/
|
|
6
|
+
Version: 5.1.0
|
|
7
|
+
Date updated: 10/03/2025 (dd/mm/yyyy)
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
+
|
|
11
|
+
# Module Package
|
|
12
|
+
# ---------------------------------------------------------------------------
|
|
10
13
|
__all__ = ["tool_group"]
|
|
11
14
|
|
|
15
|
+
|
|
16
|
+
# Library
|
|
17
|
+
# ---------------------------------------------------------------------------
|
|
12
18
|
from typing import Literal
|
|
13
19
|
|
|
14
20
|
import click
|
|
@@ -17,6 +23,8 @@ from absfuyu.tools.checksum import Checksum
|
|
|
17
23
|
from absfuyu.tools.converter import Base64EncodeDecode, Text2Chemistry
|
|
18
24
|
|
|
19
25
|
|
|
26
|
+
# CLI
|
|
27
|
+
# ---------------------------------------------------------------------------
|
|
20
28
|
@click.command(name="checksum")
|
|
21
29
|
@click.argument("file_path", type=str)
|
|
22
30
|
@click.option(
|
|
@@ -65,13 +73,12 @@ def file_checksum(
|
|
|
65
73
|
hash_to_compare: str | None,
|
|
66
74
|
) -> None:
|
|
67
75
|
"""Checksum for file/directory"""
|
|
68
|
-
# print(hash_mode, save_result, recursive_mode)
|
|
69
76
|
instance = Checksum(file_path, hash_mode=hash_mode, save_result_to_file=save_result)
|
|
70
77
|
res = instance.checksum(recursive=recursive_mode)
|
|
71
78
|
if hash_to_compare is None:
|
|
72
|
-
|
|
79
|
+
click.echo(res)
|
|
73
80
|
else:
|
|
74
|
-
|
|
81
|
+
click.echo(res == hash_to_compare)
|
|
75
82
|
|
|
76
83
|
|
|
77
84
|
@click.command(name="t2c")
|
|
@@ -80,21 +87,21 @@ def text2chem(text: str) -> None:
|
|
|
80
87
|
"""Convert text into chemistry symbol"""
|
|
81
88
|
engine = Text2Chemistry()
|
|
82
89
|
out = engine.convert(text)
|
|
83
|
-
|
|
90
|
+
click.echo(Text2Chemistry.beautify_result(out))
|
|
84
91
|
|
|
85
92
|
|
|
86
93
|
@click.command(name="e")
|
|
87
94
|
@click.argument("text", type=str)
|
|
88
95
|
def base64encode(text: str) -> None:
|
|
89
96
|
"""Convert text to base64"""
|
|
90
|
-
|
|
97
|
+
click.echo(Base64EncodeDecode.encode(text))
|
|
91
98
|
|
|
92
99
|
|
|
93
100
|
@click.command(name="d")
|
|
94
101
|
@click.argument("text", type=str)
|
|
95
102
|
def base64decode(text: str) -> None:
|
|
96
103
|
"""Convert base64 to text"""
|
|
97
|
-
|
|
104
|
+
click.echo(Base64EncodeDecode.decode(text))
|
|
98
105
|
|
|
99
106
|
|
|
100
107
|
@click.command(name="img")
|
|
@@ -111,7 +118,7 @@ def base64decode(text: str) -> None:
|
|
|
111
118
|
@click.argument("img_path", type=str)
|
|
112
119
|
def base64convert_img(img_path: str, data_tag: bool) -> None:
|
|
113
120
|
"""Convert img to base64"""
|
|
114
|
-
|
|
121
|
+
click.echo(Base64EncodeDecode.encode_image(img_path, data_tag=data_tag))
|
|
115
122
|
|
|
116
123
|
|
|
117
124
|
@click.group(name="b64")
|