absfuyu 2.8.1__tar.gz → 3.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-2.8.1/src/absfuyu.egg-info → absfuyu-3.1.0}/PKG-INFO +70 -40
- {absfuyu-2.8.1 → absfuyu-3.1.0}/extra_requirements.txt +17 -15
- absfuyu-3.1.0/pyproject.toml +85 -0
- absfuyu-3.1.0/requirements.txt +7 -0
- absfuyu-3.1.0/setup.cfg +4 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/setup.py +8 -11
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/__init__.py +13 -10
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/__main__.py +55 -38
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/config/config.json +3 -3
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/core.py +39 -25
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/everything.py +4 -5
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/extensions/__init__.py +3 -2
- absfuyu-3.1.0/src/absfuyu/extensions/dev/__init__.py +241 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/extensions/dev/password_hash.py +11 -10
- absfuyu-3.1.0/src/absfuyu/extensions/dev/passwordlib.py +256 -0
- absfuyu-3.1.0/src/absfuyu/extensions/dev/pkglib.py +98 -0
- absfuyu-3.1.0/src/absfuyu/extensions/dev/project_starter.py +58 -0
- absfuyu-3.1.0/src/absfuyu/extensions/dev/shutdownizer.py +8 -0
- absfuyu-3.1.0/src/absfuyu/extensions/extra/data_analysis.py +919 -0
- absfuyu-3.1.0/src/absfuyu/fun/__init__.py +218 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/fun/tarot.py +32 -34
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/tictactoe2.py +90 -78
- {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/__init__.py +14 -12
- {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/content.py +105 -87
- {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/data_extension.py +652 -172
- {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/generator.py +65 -4
- {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/human.py +28 -3
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/pkg_data/__init__.py +14 -36
- absfuyu-3.1.0/src/absfuyu/pkg_data/chemistry.pkl +0 -0
- absfuyu-3.1.0/src/absfuyu/pkg_data/tarot.pkl +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/converter.py +58 -31
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/obfuscator.py +4 -4
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/stats.py +4 -4
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/web.py +2 -2
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/lunar.py +144 -123
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/path.py +22 -3
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/performance.py +101 -14
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/version.py +93 -84
- {absfuyu-2.8.1 → absfuyu-3.1.0/src/absfuyu.egg-info}/PKG-INFO +70 -40
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu.egg-info/SOURCES.txt +15 -10
- absfuyu-3.1.0/src/absfuyu.egg-info/entry_points.txt +2 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu.egg-info/requires.txt +40 -24
- absfuyu-2.8.1/tests/test_DictKai.py → absfuyu-3.1.0/tests/test_DictExt.py +16 -7
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_IntNumber.py +39 -4
- absfuyu-3.1.0/tests/test_ListExt.py +118 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_Text.py +17 -4
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_api.py +1 -1
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_beautiful.py +2 -1
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_config.py +5 -3
- absfuyu-3.1.0/tests/test_converter.py +58 -0
- absfuyu-3.1.0/tests/test_data_analysis.py +123 -0
- absfuyu-3.1.0/tests/test_everything.py +90 -0
- absfuyu-3.1.0/tests/test_extensions.py +16 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_fun.py +1 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_generator.py +22 -3
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_json_method.py +2 -1
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_logger.py +7 -1
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_obfuscator.py +2 -4
- absfuyu-3.1.0/tests/test_passwordlib.py +56 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_path.py +1 -1
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_pkg_data.py +1 -1
- absfuyu-3.1.0/tests/test_tarot.py +19 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_util.py +5 -1
- {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_version.py +25 -3
- absfuyu-2.8.1/pyproject.toml +0 -10
- absfuyu-2.8.1/requirements.txt +0 -5
- absfuyu-2.8.1/setup.cfg +0 -58
- absfuyu-2.8.1/src/absfuyu/extensions/dev/__init__.py +0 -98
- absfuyu-2.8.1/src/absfuyu/extensions/dev/pkglib.py +0 -102
- absfuyu-2.8.1/src/absfuyu/extensions/extra/data_analysis.py +0 -351
- absfuyu-2.8.1/src/absfuyu/fun/__init__.py +0 -248
- absfuyu-2.8.1/src/absfuyu/pkg_data/chemistry.json +0 -6268
- absfuyu-2.8.1/src/absfuyu/pkg_data/tarot.json +0 -2593
- absfuyu-2.8.1/src/absfuyu.egg-info/entry_points.txt +0 -2
- absfuyu-2.8.1/tests/test_ListKai.py +0 -86
- absfuyu-2.8.1/tests/test_converter.py +0 -35
- absfuyu-2.8.1/tests/test_everything.py +0 -98
- absfuyu-2.8.1/tests/test_extensions.py +0 -5
- {absfuyu-2.8.1 → absfuyu-3.1.0}/LICENSE +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/MANIFEST.in +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/README.md +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/images/repository-image-crop.png +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/config/__init__.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/extensions/beautiful.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/extensions/extra/__init__.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/fun/WGS.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/__init__.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/sudoku.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/tictactoe.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/wordle.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/logger.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/sort.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/__init__.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/keygen.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/__init__.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/api.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/json_method.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/pkl.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/zipped.py +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu.egg-info/dependency_links.txt +0 -0
- {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu.egg-info/top_level.txt +0 -0
|
@@ -1,17 +1,36 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: absfuyu
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Summary: A small collection of code
|
|
5
|
-
Home-page: https://github.com/AbsoluteWinter/absfuyu-public
|
|
6
5
|
Author: somewhatcold (AbsoluteWinter)
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2022-2023 AbsoluteWinter
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: Homepage, https://github.com/AbsoluteWinter/absfuyu-public
|
|
9
29
|
Project-URL: Documentation, https://absolutewinter.github.io/absfuyu
|
|
10
|
-
Project-URL:
|
|
11
|
-
Project-URL:
|
|
30
|
+
Project-URL: Repository, https://github.com/AbsoluteWinter/absfuyu-public
|
|
31
|
+
Project-URL: Issues, https://github.com/AbsoluteWinter/absfuyu-public/issues
|
|
12
32
|
Keywords: utilities
|
|
13
33
|
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
15
34
|
Classifier: Programming Language :: Python :: 3.8
|
|
16
35
|
Classifier: Programming Language :: Python :: 3.9
|
|
17
36
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -27,75 +46,86 @@ Classifier: Intended Audience :: End Users/Desktop
|
|
|
27
46
|
Classifier: Topic :: Software Development :: Libraries
|
|
28
47
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
29
48
|
Classifier: Topic :: Utilities
|
|
30
|
-
Requires-Python: <4,>=3.
|
|
49
|
+
Requires-Python: <4,>=3.8
|
|
31
50
|
Description-Content-Type: text/markdown
|
|
32
51
|
License-File: LICENSE
|
|
33
|
-
Requires-Dist: typing_extensions>=3.7.4; python_version < "3.8"
|
|
34
52
|
Requires-Dist: bs4
|
|
35
53
|
Requires-Dist: python-dateutil
|
|
36
54
|
Requires-Dist: requests
|
|
37
55
|
Requires-Dist: unidecode
|
|
38
|
-
|
|
39
|
-
Requires-Dist:
|
|
40
|
-
|
|
41
|
-
Requires-Dist: rich; extra == "rich"
|
|
56
|
+
Requires-Dist: tomli>=1.1.0; python_version < "3.11"
|
|
57
|
+
Requires-Dist: typing_extensions>=4.0.1; python_version < "3.11"
|
|
58
|
+
Requires-Dist: importlib_resources; python_version < "3.10"
|
|
42
59
|
Provides-Extra: full
|
|
43
|
-
Requires-Dist: colorama>=0.4; extra == "full"
|
|
44
60
|
Requires-Dist: pandas; extra == "full"
|
|
45
|
-
Requires-Dist: click>=8.0.0; extra == "full"
|
|
46
|
-
Requires-Dist: scipy; extra == "full"
|
|
47
|
-
Requires-Dist: rich; extra == "full"
|
|
48
61
|
Requires-Dist: numpy; extra == "full"
|
|
62
|
+
Requires-Dist: rich; extra == "full"
|
|
63
|
+
Requires-Dist: click>=8.0.0; extra == "full"
|
|
64
|
+
Requires-Dist: colorama>=0.4; extra == "full"
|
|
65
|
+
Requires-Dist: absfuyu-res; extra == "full"
|
|
66
|
+
Provides-Extra: res
|
|
67
|
+
Requires-Dist: absfuyu-res; extra == "res"
|
|
68
|
+
Provides-Extra: absfuyu-res
|
|
69
|
+
Requires-Dist: absfuyu-res; extra == "absfuyu-res"
|
|
70
|
+
Provides-Extra: rich
|
|
71
|
+
Requires-Dist: rich; extra == "rich"
|
|
72
|
+
Provides-Extra: beautiful
|
|
73
|
+
Requires-Dist: rich; extra == "beautiful"
|
|
49
74
|
Provides-Extra: dev
|
|
50
|
-
Requires-Dist: colorama>=0.4; extra == "dev"
|
|
51
|
-
Requires-Dist: pytest>=6.2.5; extra == "dev"
|
|
52
75
|
Requires-Dist: twine>=3.7.1; extra == "dev"
|
|
76
|
+
Requires-Dist: pytest>=6.2.5; extra == "dev"
|
|
77
|
+
Requires-Dist: rich; extra == "dev"
|
|
53
78
|
Requires-Dist: sphinx_rtd_theme; extra == "dev"
|
|
54
79
|
Requires-Dist: click>=8.0.0; extra == "dev"
|
|
55
80
|
Requires-Dist: build; extra == "dev"
|
|
56
|
-
Requires-Dist:
|
|
57
|
-
Requires-Dist:
|
|
81
|
+
Requires-Dist: coverage; extra == "dev"
|
|
82
|
+
Requires-Dist: colorama>=0.4; extra == "dev"
|
|
83
|
+
Requires-Dist: sphinx>=7.0.0; extra == "dev"
|
|
84
|
+
Requires-Dist: black; extra == "dev"
|
|
58
85
|
Provides-Extra: cli
|
|
59
|
-
Requires-Dist: colorama>=0.4; extra == "cli"
|
|
60
86
|
Requires-Dist: click>=8.0.0; extra == "cli"
|
|
87
|
+
Requires-Dist: colorama>=0.4; extra == "cli"
|
|
88
|
+
Provides-Extra: click
|
|
89
|
+
Requires-Dist: click>=8.0.0; extra == "click"
|
|
61
90
|
Provides-Extra: extra
|
|
62
|
-
Requires-Dist: colorama>=0.4; extra == "extra"
|
|
63
|
-
Requires-Dist: pandas; extra == "extra"
|
|
64
91
|
Requires-Dist: click>=8.0.0; extra == "extra"
|
|
65
|
-
Requires-Dist: scipy; extra == "extra"
|
|
66
92
|
Requires-Dist: numpy; extra == "extra"
|
|
67
|
-
|
|
68
|
-
Requires-Dist:
|
|
93
|
+
Requires-Dist: colorama>=0.4; extra == "extra"
|
|
94
|
+
Requires-Dist: pandas; extra == "extra"
|
|
69
95
|
Provides-Extra: colorama
|
|
70
96
|
Requires-Dist: colorama>=0.4; extra == "colorama"
|
|
71
|
-
Provides-Extra: build
|
|
72
|
-
Requires-Dist: build; extra == "build"
|
|
73
|
-
Provides-Extra: twine
|
|
74
|
-
Requires-Dist: twine>=3.7.1; extra == "twine"
|
|
75
97
|
Provides-Extra: numpy
|
|
76
98
|
Requires-Dist: numpy; extra == "numpy"
|
|
77
99
|
Provides-Extra: pandas
|
|
78
100
|
Requires-Dist: pandas; extra == "pandas"
|
|
79
|
-
Provides-Extra:
|
|
80
|
-
Requires-Dist:
|
|
101
|
+
Provides-Extra: build
|
|
102
|
+
Requires-Dist: build; extra == "build"
|
|
103
|
+
Provides-Extra: black
|
|
104
|
+
Requires-Dist: black; extra == "black"
|
|
105
|
+
Provides-Extra: coverage
|
|
106
|
+
Requires-Dist: coverage; extra == "coverage"
|
|
107
|
+
Provides-Extra: twine
|
|
108
|
+
Requires-Dist: twine>=3.7.1; extra == "twine"
|
|
81
109
|
Provides-Extra: pytest
|
|
82
110
|
Requires-Dist: pytest>=6.2.5; extra == "pytest"
|
|
83
111
|
Provides-Extra: sphinx
|
|
84
|
-
Requires-Dist: sphinx>=
|
|
112
|
+
Requires-Dist: sphinx>=7.0.0; extra == "sphinx"
|
|
85
113
|
Provides-Extra: sphinx-rtd-theme
|
|
86
114
|
Requires-Dist: sphinx_rtd_theme; extra == "sphinx-rtd-theme"
|
|
87
115
|
Provides-Extra: all
|
|
88
|
-
Requires-Dist: colorama>=0.4; extra == "all"
|
|
89
|
-
Requires-Dist: pytest>=6.2.5; extra == "all"
|
|
90
116
|
Requires-Dist: twine>=3.7.1; extra == "all"
|
|
91
117
|
Requires-Dist: pandas; extra == "all"
|
|
118
|
+
Requires-Dist: numpy; extra == "all"
|
|
119
|
+
Requires-Dist: pytest>=6.2.5; extra == "all"
|
|
120
|
+
Requires-Dist: rich; extra == "all"
|
|
92
121
|
Requires-Dist: sphinx_rtd_theme; extra == "all"
|
|
93
122
|
Requires-Dist: click>=8.0.0; extra == "all"
|
|
94
|
-
Requires-Dist: scipy; extra == "all"
|
|
95
123
|
Requires-Dist: build; extra == "all"
|
|
96
|
-
Requires-Dist:
|
|
97
|
-
Requires-Dist:
|
|
98
|
-
Requires-Dist: sphinx>=
|
|
124
|
+
Requires-Dist: coverage; extra == "all"
|
|
125
|
+
Requires-Dist: colorama>=0.4; extra == "all"
|
|
126
|
+
Requires-Dist: sphinx>=7.0.0; extra == "all"
|
|
127
|
+
Requires-Dist: black; extra == "all"
|
|
128
|
+
Requires-Dist: absfuyu-res; extra == "all"
|
|
99
129
|
|
|
100
130
|
<div align="center">
|
|
101
131
|
<h1 align="center">
|
|
@@ -1,55 +1,57 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ---------------------------------------------------------------
|
|
2
2
|
#
|
|
3
3
|
# FORMAT
|
|
4
4
|
# Put extra requirements here in the following format
|
|
5
5
|
#
|
|
6
6
|
# package[version_required]: tag1, tag2, ...
|
|
7
7
|
#
|
|
8
|
-
#
|
|
8
|
+
# ---------------------------------------------------------------
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
# Exact version
|
|
12
|
-
#
|
|
12
|
+
# ---------------------------------------------------------------
|
|
13
13
|
# numpy>=1.12.5: extra
|
|
14
14
|
# pandas>=1.3.5: extra
|
|
15
15
|
# matplotlib>=3.5.1: extra
|
|
16
16
|
|
|
17
17
|
# Maybe needed
|
|
18
|
-
#
|
|
18
|
+
# ---------------------------------------------------------------
|
|
19
19
|
# virtualenv>=20.13.0: dev
|
|
20
20
|
# setuptools>=61.0.0: dev
|
|
21
21
|
# wheel: dev
|
|
22
22
|
# autoimport: fixers, dev
|
|
23
|
-
# black>=22.1.0: fixers, dev
|
|
24
23
|
# tox>=4.0.0: dev
|
|
25
24
|
# matplotlib: extra
|
|
26
|
-
# sphinx>=7.0.0;python_version>='3.8': dev
|
|
27
25
|
|
|
28
26
|
# Already in requirements.txt
|
|
29
|
-
#
|
|
27
|
+
# ---------------------------------------------------------------
|
|
30
28
|
# bs4: tools, dev
|
|
31
29
|
# requests: extra, tools, dev
|
|
32
30
|
# python-dateutil: extra
|
|
33
31
|
# unidecode: extra, dev
|
|
34
32
|
|
|
35
|
-
#
|
|
33
|
+
# ---------------------------------------------------------------
|
|
34
|
+
absfuyu-res: res, full
|
|
36
35
|
rich: beautiful, dev, full
|
|
37
36
|
click>=8.0.0: cli, dev, extra, full
|
|
38
37
|
colorama>=0.4: cli, dev, extra, full
|
|
39
|
-
build: dev
|
|
40
|
-
twine>=3.7.1: dev
|
|
41
38
|
numpy: extra, full
|
|
42
39
|
pandas: extra, full
|
|
43
|
-
scipy: extra, full
|
|
40
|
+
# scipy: extra, full
|
|
41
|
+
build: dev
|
|
42
|
+
black: dev
|
|
43
|
+
coverage: dev
|
|
44
|
+
twine>=3.7.1: dev
|
|
44
45
|
pytest>=6.2.5: dev
|
|
45
|
-
sphinx>=
|
|
46
|
+
sphinx>=7.0.0: dev
|
|
46
47
|
sphinx_rtd_theme: dev
|
|
47
48
|
|
|
48
|
-
#
|
|
49
|
-
# Current tags: all, beautiful, cli, dev, extra, full
|
|
49
|
+
# ---------------------------------------------------------------
|
|
50
|
+
# Current tags: all, beautiful, cli, dev, extra, full, res
|
|
50
51
|
# all: Everything
|
|
51
52
|
# beautiful: Beautiful output module
|
|
52
53
|
# cli: Using command in terminal
|
|
53
54
|
# dev: Everything needed to build, dev, check, test the package
|
|
54
55
|
# extra: Extra module
|
|
55
|
-
# full: Full features without dev requirements
|
|
56
|
+
# full: Full features without dev requirements
|
|
57
|
+
# res: absfuyu resources
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# ========== BUILD ==========
|
|
2
|
+
[build-system]
|
|
3
|
+
requires = [
|
|
4
|
+
"setuptools >= 61.0",
|
|
5
|
+
# "wheel",
|
|
6
|
+
# "click",
|
|
7
|
+
# "colorama",
|
|
8
|
+
# "pytest",
|
|
9
|
+
]
|
|
10
|
+
build-backend = "setuptools.build_meta"
|
|
11
|
+
|
|
12
|
+
# ========== PROJECT ==========
|
|
13
|
+
[project]
|
|
14
|
+
name = "absfuyu"
|
|
15
|
+
description = "A small collection of code"
|
|
16
|
+
readme = "README.md"
|
|
17
|
+
requires-python = ">=3.8, <4"
|
|
18
|
+
license = {file = "LICENSE"}
|
|
19
|
+
keywords = ["utilities"]
|
|
20
|
+
authors = [
|
|
21
|
+
{name = "somewhatcold (AbsoluteWinter)"}
|
|
22
|
+
]
|
|
23
|
+
classifiers = [
|
|
24
|
+
"Programming Language :: Python :: 3",
|
|
25
|
+
"Programming Language :: Python :: 3.8",
|
|
26
|
+
"Programming Language :: Python :: 3.9",
|
|
27
|
+
"Programming Language :: Python :: 3.10",
|
|
28
|
+
"Programming Language :: Python :: 3.11",
|
|
29
|
+
"Programming Language :: Python :: 3.12",
|
|
30
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
31
|
+
"License :: OSI Approved :: MIT License",
|
|
32
|
+
"Operating System :: OS Independent",
|
|
33
|
+
"Development Status :: 5 - Production/Stable",
|
|
34
|
+
"Natural Language :: English",
|
|
35
|
+
"Intended Audience :: Developers",
|
|
36
|
+
"Intended Audience :: End Users/Desktop",
|
|
37
|
+
"Topic :: Software Development :: Libraries",
|
|
38
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
39
|
+
"Topic :: Utilities",
|
|
40
|
+
]
|
|
41
|
+
dynamic = [
|
|
42
|
+
"version",
|
|
43
|
+
"dependencies",
|
|
44
|
+
"optional-dependencies",
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
[project.urls]
|
|
48
|
+
Homepage = "https://github.com/AbsoluteWinter/absfuyu-public"
|
|
49
|
+
Documentation = "https://absolutewinter.github.io/absfuyu"
|
|
50
|
+
Repository = "https://github.com/AbsoluteWinter/absfuyu-public"
|
|
51
|
+
Issues = "https://github.com/AbsoluteWinter/absfuyu-public/issues"
|
|
52
|
+
|
|
53
|
+
# [project.optional-dependencies]
|
|
54
|
+
# cli = ["click>=8.0.0", "colorama>=0.4"]
|
|
55
|
+
# dev = [
|
|
56
|
+
# "sphinx>=7.0.0",
|
|
57
|
+
# "sphinx_rtd_theme",
|
|
58
|
+
# "pytest>=6.2.5",
|
|
59
|
+
# "twine",
|
|
60
|
+
# "build",
|
|
61
|
+
# "tox",
|
|
62
|
+
# "click>=8.0.0",
|
|
63
|
+
# "colorama>=0.4"
|
|
64
|
+
# ]
|
|
65
|
+
|
|
66
|
+
[project.scripts]
|
|
67
|
+
fuyu = "absfuyu.__main__:main"
|
|
68
|
+
|
|
69
|
+
# ========== TOOL ==========
|
|
70
|
+
[tool.setuptools]
|
|
71
|
+
include-package-data = true
|
|
72
|
+
|
|
73
|
+
[tool.setuptools.packages.find]
|
|
74
|
+
where = ["src"]
|
|
75
|
+
|
|
76
|
+
[tool.setuptools.package-data]
|
|
77
|
+
"absfuyu.config" = ["*"]
|
|
78
|
+
"absfuyu.pkg_data" = ["*"]
|
|
79
|
+
|
|
80
|
+
[tool.setuptools.exclude-package-data]
|
|
81
|
+
absfuyu = [".gitattributes", ".gitignore"]
|
|
82
|
+
|
|
83
|
+
[tool.setuptools.dynamic]
|
|
84
|
+
dependencies = {file = "requirements.txt"}
|
|
85
|
+
version = {attr = "absfuyu.__version__"}
|
absfuyu-3.1.0/setup.cfg
ADDED
|
@@ -12,26 +12,23 @@ def get_extra_requires(path, add_all=True):
|
|
|
12
12
|
with open(path) as fp:
|
|
13
13
|
extra_deps = defaultdict(set)
|
|
14
14
|
for k in fp:
|
|
15
|
-
if k.strip() and not k.startswith(
|
|
15
|
+
if k.strip() and not k.startswith("#"):
|
|
16
16
|
tags = set()
|
|
17
|
-
if
|
|
18
|
-
k, v = k.split(
|
|
19
|
-
tags.update(vv.strip() for vv in v.split(
|
|
20
|
-
tags.add(re.split(
|
|
17
|
+
if ":" in k:
|
|
18
|
+
k, v = k.split(":")
|
|
19
|
+
tags.update(vv.strip() for vv in v.split(","))
|
|
20
|
+
tags.add(re.split("[<=>]", k)[0])
|
|
21
21
|
for t in tags:
|
|
22
22
|
extra_deps[t].add(k)
|
|
23
23
|
|
|
24
24
|
# add tag `all` at the end
|
|
25
25
|
if add_all:
|
|
26
|
-
extra_deps[
|
|
26
|
+
extra_deps["all"] = set(vv for v in extra_deps.values() for vv in v)
|
|
27
27
|
|
|
28
28
|
return extra_deps
|
|
29
29
|
|
|
30
|
+
|
|
30
31
|
setuptools.setup(
|
|
31
32
|
name="absfuyu",
|
|
32
33
|
extras_require=get_extra_requires("extra_requirements.txt"),
|
|
33
|
-
|
|
34
|
-
exclude_package_data={
|
|
35
|
-
"": ["tempCodeRunnerFile.py"],
|
|
36
|
-
},
|
|
37
|
-
)
|
|
34
|
+
)
|
|
@@ -12,7 +12,8 @@ USAGE
|
|
|
12
12
|
-----
|
|
13
13
|
|
|
14
14
|
Normal import:
|
|
15
|
-
|
|
15
|
+
>>> import absfuyu
|
|
16
|
+
>>> help(absfuyu)
|
|
16
17
|
|
|
17
18
|
Using in cmd (`absfuyu[cli]` required):
|
|
18
19
|
``$ fuyu --help``
|
|
@@ -25,17 +26,19 @@ __title__ = "absfuyu"
|
|
|
25
26
|
__author__ = "AbsoluteWinter"
|
|
26
27
|
__license__ = "MIT License"
|
|
27
28
|
__all__ = [
|
|
28
|
-
|
|
29
|
-
"util",
|
|
30
|
-
# extra
|
|
31
|
-
"sort", "fun",
|
|
32
|
-
# "pkg_data",
|
|
33
|
-
"game", "tools", "extensions",
|
|
34
|
-
# config
|
|
29
|
+
"core",
|
|
35
30
|
"config",
|
|
36
|
-
|
|
31
|
+
"everything",
|
|
32
|
+
"extensions",
|
|
33
|
+
"logger",
|
|
34
|
+
"fun",
|
|
35
|
+
"game",
|
|
36
|
+
"general",
|
|
37
|
+
"pkg_data",
|
|
38
|
+
"sort",
|
|
39
|
+
"tools",
|
|
40
|
+
"util",
|
|
37
41
|
"version",
|
|
38
|
-
# "everything",
|
|
39
42
|
]
|
|
40
43
|
|
|
41
44
|
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
# -*- coding: utf-8 -*-
|
|
3
1
|
"""
|
|
4
2
|
ABSFUYU
|
|
5
3
|
---
|
|
6
4
|
COMMAND LINE INTERFACE
|
|
7
5
|
|
|
8
|
-
Version: 2.0.
|
|
9
|
-
Date updated:
|
|
6
|
+
Version: 2.0.1
|
|
7
|
+
Date updated: 25/11/2023 (dd/mm/yyyy)
|
|
10
8
|
"""
|
|
11
9
|
|
|
12
10
|
|
|
@@ -22,6 +20,7 @@ try:
|
|
|
22
20
|
except ImportError:
|
|
23
21
|
# Auto install absfuyu[cli]
|
|
24
22
|
from absfuyu.config import ABSFUYU_CONFIG
|
|
23
|
+
|
|
25
24
|
if ABSFUYU_CONFIG._get_setting("auto-install-extra").value:
|
|
26
25
|
__cmd: str = "python -m pip install -U absfuyu[cli]".split()
|
|
27
26
|
subprocess.run(__cmd)
|
|
@@ -42,7 +41,7 @@ if CLI_MODE:
|
|
|
42
41
|
colorama.init(autoreset=True)
|
|
43
42
|
__COLOR = __core.Color
|
|
44
43
|
else:
|
|
45
|
-
__COLOR = {"green":"", "blue":"", "red":"", "yellow":"", "reset":""}
|
|
44
|
+
__COLOR = {"green": "", "blue": "", "red": "", "yellow": "", "reset": ""}
|
|
46
45
|
|
|
47
46
|
|
|
48
47
|
# Main group
|
|
@@ -51,17 +50,21 @@ if CLI_MODE:
|
|
|
51
50
|
def welcome():
|
|
52
51
|
"""Welcome message"""
|
|
53
52
|
import os as __os
|
|
53
|
+
|
|
54
54
|
try:
|
|
55
55
|
user = __os.getlogin()
|
|
56
56
|
except:
|
|
57
57
|
import getpass
|
|
58
|
+
|
|
58
59
|
user = getpass.getuser()
|
|
59
60
|
welcome_msg = f"{__COLOR['green']}Welcome {__COLOR['red']}{user} {__COLOR['green']}to {__COLOR['blue']}absfuyu's cli"
|
|
60
|
-
click.echo(
|
|
61
|
+
click.echo(
|
|
62
|
+
f"""
|
|
61
63
|
{__COLOR['reset']}{'='*(len(welcome_msg)-20)}
|
|
62
64
|
{welcome_msg}
|
|
63
65
|
{__COLOR['reset']}{'='*(len(welcome_msg)-20)}
|
|
64
|
-
"""
|
|
66
|
+
"""
|
|
67
|
+
)
|
|
65
68
|
ABSFUYU_CONFIG.welcome()
|
|
66
69
|
|
|
67
70
|
|
|
@@ -74,9 +77,11 @@ def greet(name):
|
|
|
74
77
|
|
|
75
78
|
@click.command()
|
|
76
79
|
@click.option(
|
|
77
|
-
"--setting",
|
|
80
|
+
"--setting",
|
|
81
|
+
"-s",
|
|
78
82
|
type=click.Choice(["luckgod", "install-extra"]),
|
|
79
|
-
help="Toggle on/off selected setting"
|
|
83
|
+
help="Toggle on/off selected setting",
|
|
84
|
+
)
|
|
80
85
|
def toggle(setting: str):
|
|
81
86
|
"""Toggle on/off setting"""
|
|
82
87
|
|
|
@@ -84,7 +89,7 @@ def toggle(setting: str):
|
|
|
84
89
|
trans = {
|
|
85
90
|
"luckgod": "luckgod-mode",
|
|
86
91
|
"install-extra": "auto-install-extra",
|
|
87
|
-
}
|
|
92
|
+
} # trans[setting]
|
|
88
93
|
|
|
89
94
|
if setting is None:
|
|
90
95
|
click.echo(f"{__COLOR['red']}Invalid setting")
|
|
@@ -101,18 +106,21 @@ def version():
|
|
|
101
106
|
click.echo(f"{__COLOR['green']}absfuyu: {__v.__version__}")
|
|
102
107
|
|
|
103
108
|
|
|
104
|
-
|
|
105
109
|
# Do group
|
|
106
110
|
###########################################################################
|
|
107
111
|
@click.command()
|
|
108
112
|
@click.option(
|
|
109
|
-
"--force_update/--no-force-update",
|
|
110
|
-
|
|
113
|
+
"--force_update/--no-force-update",
|
|
114
|
+
"-F/-f",
|
|
115
|
+
"force_update",
|
|
116
|
+
type=bool,
|
|
117
|
+
default=True,
|
|
111
118
|
show_default=True,
|
|
112
|
-
help="Update the package"
|
|
119
|
+
help="Update the package",
|
|
120
|
+
)
|
|
113
121
|
def update(force_update: bool):
|
|
114
122
|
"""Update the package to latest version"""
|
|
115
|
-
click.echo(__COLOR[
|
|
123
|
+
click.echo(__COLOR["green"])
|
|
116
124
|
__v._AbsfuyuPackage.check_for_update(force_update=force_update)
|
|
117
125
|
|
|
118
126
|
|
|
@@ -125,26 +133,32 @@ def reset():
|
|
|
125
133
|
|
|
126
134
|
@click.command()
|
|
127
135
|
@click.option(
|
|
128
|
-
"--game-name",
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
136
|
+
"--game-name",
|
|
137
|
+
"-g",
|
|
138
|
+
type=click.Choice(["random", "esc", "rps", "ttt"], case_sensitive=False),
|
|
139
|
+
default="random",
|
|
140
|
+
show_default=True,
|
|
141
|
+
help="Play game",
|
|
142
|
+
)
|
|
135
143
|
@click.option(
|
|
136
|
-
"--size",
|
|
137
|
-
|
|
144
|
+
"--size",
|
|
145
|
+
"-s",
|
|
146
|
+
type=int,
|
|
147
|
+
default=3,
|
|
138
148
|
show_default=True,
|
|
139
|
-
help="Change game's size (if any)"
|
|
149
|
+
help="Change game's size (if any)",
|
|
150
|
+
)
|
|
140
151
|
@click.option(
|
|
141
|
-
"--mode", "-m",
|
|
142
|
-
|
|
143
|
-
help="Change game's gamemode (if any)")
|
|
152
|
+
"--mode", "-m", type=str, default=None, help="Change game's gamemode (if any)"
|
|
153
|
+
)
|
|
144
154
|
@click.option(
|
|
145
|
-
"--board-style",
|
|
146
|
-
|
|
147
|
-
|
|
155
|
+
"--board-style",
|
|
156
|
+
"-b",
|
|
157
|
+
"board_style",
|
|
158
|
+
type=str,
|
|
159
|
+
default="1",
|
|
160
|
+
help="Change game's board style (if any)",
|
|
161
|
+
)
|
|
148
162
|
def game(game_name: str, size: int, mode: str, board_style):
|
|
149
163
|
"""
|
|
150
164
|
Play game
|
|
@@ -155,8 +169,9 @@ def game(game_name: str, size: int, mode: str, board_style):
|
|
|
155
169
|
- ttt: Tic Tac Toe
|
|
156
170
|
"""
|
|
157
171
|
from absfuyu.game import game_escapeLoop, game_RockPaperScissors
|
|
172
|
+
|
|
158
173
|
if game_name.startswith("random"):
|
|
159
|
-
if __randc([0,1]) == 0:
|
|
174
|
+
if __randc([0, 1]) == 0:
|
|
160
175
|
game_escapeLoop()
|
|
161
176
|
else:
|
|
162
177
|
game_RockPaperScissors()
|
|
@@ -167,6 +182,7 @@ def game(game_name: str, size: int, mode: str, board_style):
|
|
|
167
182
|
game_RockPaperScissors(hard_mode=mode)
|
|
168
183
|
elif game_name.startswith("ttt"):
|
|
169
184
|
from absfuyu.game.tictactoe import game_tictactoe
|
|
185
|
+
|
|
170
186
|
if board_style == "None":
|
|
171
187
|
board_style = None
|
|
172
188
|
elif board_style == "1":
|
|
@@ -193,15 +209,14 @@ def install(pkg: str):
|
|
|
193
209
|
click.echo(f"{__COLOR['green']}absfuyu[{pkg}] installed")
|
|
194
210
|
else:
|
|
195
211
|
click.echo(f"{__COLOR['green']}absfuyu[{pkg}] installed")
|
|
196
|
-
|
|
212
|
+
|
|
197
213
|
|
|
198
214
|
@click.command()
|
|
199
215
|
def advice():
|
|
200
216
|
"""Give some recommendation when bored"""
|
|
201
217
|
from .fun import im_bored
|
|
202
|
-
click.echo(f"{__COLOR['green']}{im_bored()}")
|
|
203
|
-
|
|
204
218
|
|
|
219
|
+
click.echo(f"{__COLOR['green']}{im_bored()}")
|
|
205
220
|
|
|
206
221
|
|
|
207
222
|
@click.group(name="do")
|
|
@@ -209,6 +224,7 @@ def do_group():
|
|
|
209
224
|
"""Perform functionalities"""
|
|
210
225
|
pass
|
|
211
226
|
|
|
227
|
+
|
|
212
228
|
do_group.add_command(reset)
|
|
213
229
|
do_group.add_command(update)
|
|
214
230
|
do_group.add_command(game)
|
|
@@ -216,19 +232,20 @@ do_group.add_command(install)
|
|
|
216
232
|
do_group.add_command(advice)
|
|
217
233
|
|
|
218
234
|
|
|
219
|
-
|
|
220
235
|
# Main group init
|
|
221
236
|
###########################################################################
|
|
222
237
|
@click.group()
|
|
223
238
|
def main():
|
|
224
239
|
"""
|
|
225
240
|
absfuyu's command line interface
|
|
226
|
-
|
|
241
|
+
|
|
227
242
|
Usage:
|
|
228
243
|
python -m absfuyu --help
|
|
229
244
|
fuyu --help
|
|
230
245
|
"""
|
|
231
246
|
pass
|
|
247
|
+
|
|
248
|
+
|
|
232
249
|
main.add_command(welcome)
|
|
233
250
|
main.add_command(greet)
|
|
234
251
|
main.add_command(toggle)
|
|
@@ -240,4 +257,4 @@ main.add_command(do_group)
|
|
|
240
257
|
###########################################################################
|
|
241
258
|
if __name__ == "__main__":
|
|
242
259
|
if CLI_MODE:
|
|
243
|
-
main()
|
|
260
|
+
main()
|