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.

Files changed (101) hide show
  1. {absfuyu-2.8.1/src/absfuyu.egg-info → absfuyu-3.1.0}/PKG-INFO +70 -40
  2. {absfuyu-2.8.1 → absfuyu-3.1.0}/extra_requirements.txt +17 -15
  3. absfuyu-3.1.0/pyproject.toml +85 -0
  4. absfuyu-3.1.0/requirements.txt +7 -0
  5. absfuyu-3.1.0/setup.cfg +4 -0
  6. {absfuyu-2.8.1 → absfuyu-3.1.0}/setup.py +8 -11
  7. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/__init__.py +13 -10
  8. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/__main__.py +55 -38
  9. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/config/config.json +3 -3
  10. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/core.py +39 -25
  11. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/everything.py +4 -5
  12. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/extensions/__init__.py +3 -2
  13. absfuyu-3.1.0/src/absfuyu/extensions/dev/__init__.py +241 -0
  14. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/extensions/dev/password_hash.py +11 -10
  15. absfuyu-3.1.0/src/absfuyu/extensions/dev/passwordlib.py +256 -0
  16. absfuyu-3.1.0/src/absfuyu/extensions/dev/pkglib.py +98 -0
  17. absfuyu-3.1.0/src/absfuyu/extensions/dev/project_starter.py +58 -0
  18. absfuyu-3.1.0/src/absfuyu/extensions/dev/shutdownizer.py +8 -0
  19. absfuyu-3.1.0/src/absfuyu/extensions/extra/data_analysis.py +919 -0
  20. absfuyu-3.1.0/src/absfuyu/fun/__init__.py +218 -0
  21. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/fun/tarot.py +32 -34
  22. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/tictactoe2.py +90 -78
  23. {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/__init__.py +14 -12
  24. {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/content.py +105 -87
  25. {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/data_extension.py +652 -172
  26. {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/generator.py +65 -4
  27. {absfuyu-2.8.1/src/absfuyu/collections → absfuyu-3.1.0/src/absfuyu/general}/human.py +28 -3
  28. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/pkg_data/__init__.py +14 -36
  29. absfuyu-3.1.0/src/absfuyu/pkg_data/chemistry.pkl +0 -0
  30. absfuyu-3.1.0/src/absfuyu/pkg_data/tarot.pkl +0 -0
  31. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/converter.py +58 -31
  32. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/obfuscator.py +4 -4
  33. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/stats.py +4 -4
  34. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/web.py +2 -2
  35. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/lunar.py +144 -123
  36. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/path.py +22 -3
  37. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/performance.py +101 -14
  38. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/version.py +93 -84
  39. {absfuyu-2.8.1 → absfuyu-3.1.0/src/absfuyu.egg-info}/PKG-INFO +70 -40
  40. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu.egg-info/SOURCES.txt +15 -10
  41. absfuyu-3.1.0/src/absfuyu.egg-info/entry_points.txt +2 -0
  42. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu.egg-info/requires.txt +40 -24
  43. absfuyu-2.8.1/tests/test_DictKai.py → absfuyu-3.1.0/tests/test_DictExt.py +16 -7
  44. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_IntNumber.py +39 -4
  45. absfuyu-3.1.0/tests/test_ListExt.py +118 -0
  46. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_Text.py +17 -4
  47. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_api.py +1 -1
  48. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_beautiful.py +2 -1
  49. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_config.py +5 -3
  50. absfuyu-3.1.0/tests/test_converter.py +58 -0
  51. absfuyu-3.1.0/tests/test_data_analysis.py +123 -0
  52. absfuyu-3.1.0/tests/test_everything.py +90 -0
  53. absfuyu-3.1.0/tests/test_extensions.py +16 -0
  54. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_fun.py +1 -0
  55. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_generator.py +22 -3
  56. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_json_method.py +2 -1
  57. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_logger.py +7 -1
  58. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_obfuscator.py +2 -4
  59. absfuyu-3.1.0/tests/test_passwordlib.py +56 -0
  60. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_path.py +1 -1
  61. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_pkg_data.py +1 -1
  62. absfuyu-3.1.0/tests/test_tarot.py +19 -0
  63. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_util.py +5 -1
  64. {absfuyu-2.8.1 → absfuyu-3.1.0}/tests/test_version.py +25 -3
  65. absfuyu-2.8.1/pyproject.toml +0 -10
  66. absfuyu-2.8.1/requirements.txt +0 -5
  67. absfuyu-2.8.1/setup.cfg +0 -58
  68. absfuyu-2.8.1/src/absfuyu/extensions/dev/__init__.py +0 -98
  69. absfuyu-2.8.1/src/absfuyu/extensions/dev/pkglib.py +0 -102
  70. absfuyu-2.8.1/src/absfuyu/extensions/extra/data_analysis.py +0 -351
  71. absfuyu-2.8.1/src/absfuyu/fun/__init__.py +0 -248
  72. absfuyu-2.8.1/src/absfuyu/pkg_data/chemistry.json +0 -6268
  73. absfuyu-2.8.1/src/absfuyu/pkg_data/tarot.json +0 -2593
  74. absfuyu-2.8.1/src/absfuyu.egg-info/entry_points.txt +0 -2
  75. absfuyu-2.8.1/tests/test_ListKai.py +0 -86
  76. absfuyu-2.8.1/tests/test_converter.py +0 -35
  77. absfuyu-2.8.1/tests/test_everything.py +0 -98
  78. absfuyu-2.8.1/tests/test_extensions.py +0 -5
  79. {absfuyu-2.8.1 → absfuyu-3.1.0}/LICENSE +0 -0
  80. {absfuyu-2.8.1 → absfuyu-3.1.0}/MANIFEST.in +0 -0
  81. {absfuyu-2.8.1 → absfuyu-3.1.0}/README.md +0 -0
  82. {absfuyu-2.8.1 → absfuyu-3.1.0}/images/repository-image-crop.png +0 -0
  83. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/config/__init__.py +0 -0
  84. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/extensions/beautiful.py +0 -0
  85. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/extensions/extra/__init__.py +0 -0
  86. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/fun/WGS.py +0 -0
  87. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/__init__.py +0 -0
  88. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/sudoku.py +0 -0
  89. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/tictactoe.py +0 -0
  90. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/game/wordle.py +0 -0
  91. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/logger.py +0 -0
  92. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/sort.py +0 -0
  93. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/__init__.py +0 -0
  94. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/tools/keygen.py +0 -0
  95. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/__init__.py +0 -0
  96. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/api.py +0 -0
  97. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/json_method.py +0 -0
  98. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/pkl.py +0 -0
  99. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu/util/zipped.py +0 -0
  100. {absfuyu-2.8.1 → absfuyu-3.1.0}/src/absfuyu.egg-info/dependency_links.txt +0 -0
  101. {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: 2.8.1
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
- Author-email: this.is.a.fake.mail@fakemail.absfuyu.com
8
- License: MIT
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: Source Code, https://github.com/AbsoluteWinter/absfuyu-public
11
- Project-URL: Bug Tracker, https://github.com/AbsoluteWinter/absfuyu-public/issues
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.7
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
- Provides-Extra: beautiful
39
- Requires-Dist: rich; extra == "beautiful"
40
- Provides-Extra: rich
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: rich; extra == "dev"
57
- Requires-Dist: sphinx>=5.0.0; extra == "dev"
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
- Provides-Extra: click
68
- Requires-Dist: click>=8.0.0; extra == "click"
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: scipy
80
- Requires-Dist: scipy; extra == "scipy"
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>=5.0.0; extra == "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: rich; extra == "all"
97
- Requires-Dist: numpy; extra == "all"
98
- Requires-Dist: sphinx>=5.0.0; extra == "all"
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>=5.0.0: dev
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__"}
@@ -0,0 +1,7 @@
1
+ bs4
2
+ python-dateutil
3
+ requests
4
+ unidecode
5
+ tomli>=1.1.0; python_version < "3.11"
6
+ typing_extensions>=4.0.1; python_version < "3.11"
7
+ importlib_resources; python_version < "3.10"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -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 ':' in k:
18
- k, v = k.split(':')
19
- tags.update(vv.strip() for vv in v.split(','))
20
- tags.add(re.split('[<=>]', k)[0])
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['all'] = set(vv for v in extra_deps.values() for vv in v)
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
- package_data={"": ["extensions/dev/*","pkg_data/*","config/*"]},
34
- exclude_package_data={
35
- "": ["tempCodeRunnerFile.py"],
36
- },
37
- )
34
+ )
@@ -12,7 +12,8 @@ USAGE
12
12
  -----
13
13
 
14
14
  Normal import:
15
- ``import absfuyu``
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
- # default
29
- "util",
30
- # extra
31
- "sort", "fun",
32
- # "pkg_data",
33
- "game", "tools", "extensions",
34
- # config
29
+ "core",
35
30
  "config",
36
- # Other
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.0
9
- Date updated: 22/11/2023 (dd/mm/yyyy)
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(f"""
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", "-s",
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
- } # trans[setting]
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", "-F/-f", "force_update",
110
- type=bool, default=True,
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['green'])
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", "-g",
129
- type=click.Choice(
130
- ["random", "esc", "rps", "ttt"],
131
- case_sensitive=False
132
- ),
133
- default="random", show_default=True,
134
- help="Play game")
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", "-s",
137
- type=int, default=3,
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
- type=str, default=None,
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", "-b", "board_style",
146
- type=str, default="1",
147
- help="Change game's board style (if any)")
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()
@@ -22,9 +22,9 @@
22
22
  }
23
23
  },
24
24
  "version": {
25
- "major": 2,
26
- "minor": 8,
27
- "patch": 1,
25
+ "major": 3,
26
+ "minor": 1,
27
+ "patch": 0,
28
28
  "release_level": "final",
29
29
  "serial": 0
30
30
  }