absfuyu 4.2.0__py3-none-any.whl → 5.0.1__py3-none-any.whl

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 (72) hide show
  1. absfuyu/__init__.py +4 -4
  2. absfuyu/__main__.py +13 -1
  3. absfuyu/cli/__init__.py +2 -2
  4. absfuyu/cli/color.py +9 -2
  5. absfuyu/cli/config_group.py +2 -2
  6. absfuyu/cli/do_group.py +2 -37
  7. absfuyu/cli/game_group.py +2 -2
  8. absfuyu/cli/tool_group.py +7 -7
  9. absfuyu/config/__init__.py +17 -34
  10. absfuyu/core/__init__.py +49 -0
  11. absfuyu/core/baseclass.py +299 -0
  12. absfuyu/core/baseclass2.py +165 -0
  13. absfuyu/core/decorator.py +67 -0
  14. absfuyu/core/docstring.py +166 -0
  15. absfuyu/core/dummy_cli.py +67 -0
  16. absfuyu/core/dummy_func.py +49 -0
  17. absfuyu/dxt/__init__.py +42 -0
  18. absfuyu/dxt/dictext.py +201 -0
  19. absfuyu/dxt/dxt_support.py +79 -0
  20. absfuyu/dxt/intext.py +586 -0
  21. absfuyu/dxt/listext.py +508 -0
  22. absfuyu/dxt/strext.py +530 -0
  23. absfuyu/extra/__init__.py +12 -0
  24. absfuyu/extra/beautiful.py +252 -0
  25. absfuyu/{extensions → extra}/data_analysis.py +51 -82
  26. absfuyu/fun/__init__.py +110 -135
  27. absfuyu/fun/tarot.py +11 -19
  28. absfuyu/game/__init__.py +8 -2
  29. absfuyu/game/game_stat.py +8 -2
  30. absfuyu/game/sudoku.py +9 -3
  31. absfuyu/game/tictactoe.py +14 -7
  32. absfuyu/game/wordle.py +16 -10
  33. absfuyu/general/__init__.py +8 -81
  34. absfuyu/general/content.py +24 -38
  35. absfuyu/general/human.py +108 -228
  36. absfuyu/general/shape.py +1334 -0
  37. absfuyu/logger.py +10 -15
  38. absfuyu/pkg_data/__init__.py +137 -100
  39. absfuyu/pkg_data/deprecated.py +133 -0
  40. absfuyu/sort.py +6 -130
  41. absfuyu/tools/__init__.py +2 -2
  42. absfuyu/tools/checksum.py +33 -22
  43. absfuyu/tools/converter.py +51 -48
  44. absfuyu/{general → tools}/generator.py +17 -42
  45. absfuyu/tools/keygen.py +25 -30
  46. absfuyu/tools/obfuscator.py +246 -112
  47. absfuyu/tools/passwordlib.py +100 -30
  48. absfuyu/tools/shutdownizer.py +68 -47
  49. absfuyu/tools/web.py +4 -11
  50. absfuyu/util/__init__.py +17 -17
  51. absfuyu/util/api.py +10 -15
  52. absfuyu/util/json_method.py +7 -24
  53. absfuyu/util/lunar.py +5 -11
  54. absfuyu/util/path.py +22 -27
  55. absfuyu/util/performance.py +43 -67
  56. absfuyu/util/shorten_number.py +65 -14
  57. absfuyu/util/zipped.py +11 -17
  58. absfuyu/version.py +59 -42
  59. {absfuyu-4.2.0.dist-info → absfuyu-5.0.1.dist-info}/METADATA +41 -14
  60. absfuyu-5.0.1.dist-info/RECORD +68 -0
  61. absfuyu/core.py +0 -57
  62. absfuyu/everything.py +0 -32
  63. absfuyu/extensions/__init__.py +0 -12
  64. absfuyu/extensions/beautiful.py +0 -188
  65. absfuyu/fun/WGS.py +0 -134
  66. absfuyu/general/data_extension.py +0 -1796
  67. absfuyu/tools/stats.py +0 -226
  68. absfuyu/util/pkl.py +0 -67
  69. absfuyu-4.2.0.dist-info/RECORD +0 -59
  70. {absfuyu-4.2.0.dist-info → absfuyu-5.0.1.dist-info}/WHEEL +0 -0
  71. {absfuyu-4.2.0.dist-info → absfuyu-5.0.1.dist-info}/entry_points.txt +0 -0
  72. {absfuyu-4.2.0.dist-info → absfuyu-5.0.1.dist-info}/licenses/LICENSE +0 -0
absfuyu/tools/stats.py DELETED
@@ -1,226 +0,0 @@
1
- # flake8: noqa
2
- """
3
- Absfuyu: Stats
4
- --------------
5
- List's stats (soon will be deprecated)
6
-
7
- Version: 2.0.3
8
- Date updated: 26/11/2023 (dd/mm/yyyy)
9
- """
10
-
11
- # Module level
12
- ###########################################################################
13
- __all__ = ["ListStats"]
14
-
15
-
16
- # Library
17
- ###########################################################################
18
- import math
19
- from typing import List, Union
20
-
21
- from absfuyu.general.data_extension import ListExt
22
- from absfuyu.logger import logger
23
-
24
-
25
- # Class
26
- ###########################################################################
27
- class ListStats(List[Union[int, float]]):
28
- """Stats"""
29
-
30
- def mean(self) -> float:
31
- """
32
- Mean/Average
33
-
34
- Returns
35
- -------
36
- float
37
- Mean/Average value
38
-
39
-
40
- Example:
41
- --------
42
- >>> test = ListStats([1, 2, 3, 4, 5, 6])
43
- >>> test.mean()
44
- 3.5
45
- """
46
- s = sum(self)
47
- return s / len(self)
48
-
49
- def median(self) -> Union[int, float]:
50
- """
51
- Median/Middle
52
-
53
- Returns
54
- -------
55
- int | float
56
- Median/Middle value
57
-
58
-
59
- Example:
60
- --------
61
- >>> test = ListStats([1, 2, 3, 4, 5, 6])
62
- >>> test.median()
63
- 3.5
64
- """
65
- lst = sorted(self)
66
- LENGTH = len(lst)
67
- if LENGTH % 2 != 0:
68
- return lst[math.floor(LENGTH / 2)]
69
- else:
70
- num1 = lst[math.floor(LENGTH / 2) - 1]
71
- num2 = lst[math.floor(LENGTH / 2)]
72
- med = (num1 + num2) / 2
73
- return med
74
-
75
- def mode(self) -> List[Union[int, float]]:
76
- """
77
- Mode:
78
-
79
- The Mode value is the value that appears the most number of times
80
-
81
- Returns
82
- -------
83
- list[int | float]
84
- Mode value
85
-
86
-
87
- Example:
88
- --------
89
- >>> test = ListStats([1, 1, 2, 3, 4, 5, 6])
90
- >>> test.mode()
91
- [1]
92
- """
93
- lst = self
94
- frequency = ListExt(lst).freq()
95
-
96
- max_val = max(frequency.values()) # type: ignore
97
- keys = []
98
-
99
- for k, v in frequency.items(): # type: ignore
100
- if v == max_val:
101
- keys.append(k)
102
-
103
- return keys
104
-
105
- def var(self) -> float:
106
- """
107
- Variance
108
-
109
- Returns
110
- -------
111
- float
112
- Variance value
113
-
114
-
115
- Example:
116
- --------
117
- >>> test = ListStats([1, 2, 3, 4, 5, 6])
118
- >>> test.var()
119
- 2.9166666666666665
120
- """
121
- lst = self
122
- MEAN = self.mean()
123
- v = [(x - MEAN) ** 2 for x in lst]
124
- out = sum(v) / len(v)
125
- return out
126
-
127
- def std(self) -> float:
128
- """
129
- Standard deviation
130
-
131
- Returns
132
- -------
133
- float
134
- Standard deviation value
135
-
136
-
137
- Example:
138
- --------
139
- >>> test = ListStats([1, 2, 3, 4, 5, 6])
140
- >>> test.std()
141
- 1.707825127659933
142
- """
143
- sd = math.sqrt(self.var())
144
- return sd
145
-
146
- def percentile(self, percent: int = 50) -> Union[int, float]:
147
- """
148
- Percentile
149
-
150
- Parameters
151
- ----------
152
- percent : int
153
- Which percentile
154
- (Default: ``50``)
155
-
156
- Returns
157
- -------
158
- int | float
159
- Percentile value
160
-
161
-
162
- Example:
163
- --------
164
- >>> test = ListStats([1, 2, 3, 4, 5, 6])
165
- >>> test.percentile()
166
- 4
167
- """
168
- lst = self
169
- idx = math.floor(len(lst) / 100 * percent)
170
- if idx == len(lst):
171
- idx -= 1
172
- return sorted(lst)[idx]
173
-
174
- def summary(self):
175
- """
176
- Quick summary of data
177
-
178
- Returns
179
- -------
180
- dict
181
- Summary of data
182
-
183
-
184
- Example:
185
- --------
186
- >>> test = ListStats([1, 2, 3, 4, 5, 6])
187
- >>> test.summary()
188
- {
189
- 'Observations': 6,
190
- 'Mean': 3.5,
191
- 'Median': 3.5,
192
- 'Mode': [1, 2, 3, 4, 5, 6],
193
- 'Standard deviation': 1.707825127659933,
194
- 'Variance': 2.9166666666666665,
195
- 'Max': 6,
196
- 'Min': 1,
197
- 'Percentiles': {'1st Quartile': 2, '2nd Quartile': 4, '3rd Quartile': 5}
198
- }
199
- """
200
- lst = self
201
- output = {
202
- "Observations": len(lst),
203
- "Mean": self.mean(),
204
- "Median": self.median(),
205
- "Mode": self.mode(),
206
- "Standard deviation": self.std(),
207
- "Variance": self.var(),
208
- "Max": max(lst),
209
- "Min": min(lst),
210
- "Percentiles": {
211
- "1st Quartile": self.percentile(25),
212
- "2nd Quartile": self.percentile(50),
213
- "3rd Quartile": self.percentile(75),
214
- },
215
- }
216
- return output
217
-
218
-
219
- # Run
220
- ###########################################################################
221
- if __name__ == "__main__":
222
- logger.setLevel(10)
223
- from rich import print
224
-
225
- test = ListStats([1, 8, 9, 2, 3, 4, 4])
226
- print(test.summary())
absfuyu/util/pkl.py DELETED
@@ -1,67 +0,0 @@
1
- """
2
- Absfuyu: Pickle
3
- ---------------
4
- ``pickle`` wrapper
5
-
6
- Version: 1.0.2
7
- Last update: 24/11/2023 (dd/mm/yyyy)
8
- """
9
-
10
- # Module level
11
- ###########################################################################
12
- __all__ = ["Pickler"]
13
-
14
-
15
- # Library
16
- ###########################################################################
17
- import pickle
18
- from pathlib import Path
19
- from typing import Any
20
-
21
-
22
- # Class
23
- ###########################################################################
24
- class Pickler:
25
- """Save and load pickle file"""
26
-
27
- def __init__(self) -> None:
28
- pass
29
-
30
- def __str__(self) -> str:
31
- return f"{self.__class__.__name__}()"
32
-
33
- def __repr__(self) -> str:
34
- return self.__str__()
35
-
36
- @staticmethod
37
- def save(location: Path, data: Any) -> None:
38
- """
39
- Save to pickle format
40
-
41
- :param location: Save location
42
- :type location: Path
43
- :param data: Data want to be saved
44
- :type data: Any
45
- """
46
- with open(Path(location), "wb") as file:
47
- pickle.dump(data, file)
48
-
49
- @staticmethod
50
- def load(location: Path) -> Any:
51
- """
52
- Load pickled file
53
-
54
- :param location: Load location
55
- :type location: Path
56
- :returns: Loaded data
57
- :rtype: Any
58
- """
59
- with open(Path(location), "rb") as file:
60
- data = pickle.load(file)
61
- return data
62
-
63
-
64
- # Run
65
- ###########################################################################
66
- if __name__ == "__main__":
67
- pass
@@ -1,59 +0,0 @@
1
- absfuyu/__init__.py,sha256=pCNxLstlkcm5DQrRNeNbP_U_9QssMWcUpS9SHvjE33k,638
2
- absfuyu/__main__.py,sha256=OpMwc35W5VANzw6gvlqJaJOl2H89i_frFZbleUQwDss,163
3
- absfuyu/core.py,sha256=J7XASHaSjhVyf9qtDU8LDMyJrUgW-yEecgxZP16u7PI,1233
4
- absfuyu/everything.py,sha256=PGIXlqgxyADFPygohVYVIb7fZz72L_xXrlLX0WImuYg,788
5
- absfuyu/logger.py,sha256=Pue3oWYYSF03A-fVp3E137jzlZVI71mYqddic8myauQ,13141
6
- absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- absfuyu/sort.py,sha256=Z9nK15WehmZjlUNwvAOwF4FhV-rFcqlXkCcehNYmo78,6827
8
- absfuyu/version.py,sha256=KMaeXNl93L4VU2RnTySoFv23IDyTvHfy84nyatFcKaE,14128
9
- absfuyu/cli/__init__.py,sha256=mYX6lVAat9UOI9qR-ZDFw_4WOLVA9r-jTtW8d2fBEKM,1181
10
- absfuyu/cli/color.py,sha256=7M3XqFllt26tv_NR5qKgyTId6wnVADtUB74cDYy8pOQ,497
11
- absfuyu/cli/config_group.py,sha256=FsyYm2apSyAA2PAD12CpHAizenRds_QlLf8j0AlLuVo,1230
12
- absfuyu/cli/do_group.py,sha256=8LdDgx3BYfhpM2d4q-SO9jA_ZcenNKLYr0Q7Hgj4TPg,2919
13
- absfuyu/cli/game_group.py,sha256=ySpL2hm4VCplhNY0s22kBGI5eFCdJj9fm1T58yftU74,2348
14
- absfuyu/cli/tool_group.py,sha256=JcmzcXMcMc1OVhAkcKeUPujVlsWyn_DafsrB_1f9rD8,3155
15
- absfuyu/config/__init__.py,sha256=4r77tFm3mgHX8H1uWWNXC_FZ8hiSJzsYAyiStZiVj5w,8641
16
- absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
17
- absfuyu/extensions/__init__.py,sha256=gt9YF5R5O7Pavqc8Hne0LFe0B4YOYV8gqfsiAyHqkD0,190
18
- absfuyu/extensions/beautiful.py,sha256=eGfmJ72UQTVvevMCr80RoyYuCYxLaHkvAm1Kk2pkqc0,5331
19
- absfuyu/extensions/data_analysis.py,sha256=JR8smS6gVRZ4jJtboshCpC3jFabVLQ8LBhWOA-sfIG4,32969
20
- absfuyu/fun/WGS.py,sha256=Aug9BsLTawBDkjdCQ3oqWAfGGeY6ZSBV1kENrTVnlUA,9461
21
- absfuyu/fun/__init__.py,sha256=AOaq3NdgaK7e5hk622Wspiu6Z2biVK-jpk2FChn05rA,6366
22
- absfuyu/fun/tarot.py,sha256=Y0z5rNWLOmqfJV961L_9LzUORRNR89Vegy7KqgNR9xs,2539
23
- absfuyu/game/__init__.py,sha256=qOPsnjKXSc1LobDQmF131BrBIyOEy0oddFRCEHsg8P8,4419
24
- absfuyu/game/game_stat.py,sha256=xayD7zkcR76m-5UOx8flEE5MO_LEZoCe6FnFyPg4YE4,963
25
- absfuyu/game/sudoku.py,sha256=zMsQ2opVFpREZMdSmu2ZXwV4mu463rRLdwrGV9qwg2s,10130
26
- absfuyu/game/tictactoe.py,sha256=OfI7WHxxiAbhuRAt8qsDG1BJuc3hlhX4N6-HORq9fbI,9603
27
- absfuyu/game/wordle.py,sha256=1RpgB8fBgcL_E2TgbTFXjZHtzthJQysCAl0fbK_LG5w,101336
28
- absfuyu/general/__init__.py,sha256=6AJZ7Ul6l8MKaqEwRD2ktQUIBfhTPaDUYDQB7MUQ5rc,2481
29
- absfuyu/general/content.py,sha256=IfX5SkgoD-sjYJrbRHRIS5-g6fGp_X65A07ViB0zLpk,17443
30
- absfuyu/general/data_extension.py,sha256=tvZM4moHNxqOh_iT6ekFELZgfhiIoZ8SUqm9wUIaokU,48938
31
- absfuyu/general/generator.py,sha256=PW_4Z-YZ30StwDuUUfHD7B0qnVKMo_ZZHHKj54BzgXk,9731
32
- absfuyu/general/human.py,sha256=drZT1nI_YwGMOwZu8pbzf3frM-SUY15cOcnUpc4pzQk,12241
33
- absfuyu/pkg_data/__init__.py,sha256=8iHOGp-MWSao_u6a6-iQmSfMReinwbWbjR7EdrWmQeY,4867
34
- absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
35
- absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
36
- absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
37
- absfuyu/tools/__init__.py,sha256=VDmmMLEfiRyUWPVrPYc8JUEa5TXjLguKVnyI3YavFv0,118
38
- absfuyu/tools/checksum.py,sha256=gB8LvOeQRRuI1dYMmNZINF0QyUKyQZiZ7oJJ0m7QMDY,4807
39
- absfuyu/tools/converter.py,sha256=STA5NZZt5Xj0YRTup8tvh1YE2z7Y1AWRbEbU3EAS0TY,11589
40
- absfuyu/tools/keygen.py,sha256=drj8OUDCXrLvcVf9_Shd5UMShm_mBTxa9Sg_BrAT5yM,7356
41
- absfuyu/tools/obfuscator.py,sha256=kiaFvMw2RwEfZvXKdbUrEYA_AuVETivoL2eVmtUWU4w,8669
42
- absfuyu/tools/passwordlib.py,sha256=q-KOGld-LN6ndv8HLs5Yq6iJEI9lrb_fDc4kFwh9M8c,7104
43
- absfuyu/tools/shutdownizer.py,sha256=W5sYoqvumTKj8fYIt1D0f5BtWCHUNBB9IO65f3P4G5w,7674
44
- absfuyu/tools/stats.py,sha256=zZNK59qn0xqQlyw5CP3MP5WRMSxncdKZythqvgNR1lQ,5191
45
- absfuyu/tools/web.py,sha256=Mb5RYj1Fu5eB-mYMusyrE2JG6_ZPEf8WT72Z8q6Ep74,1406
46
- absfuyu/util/__init__.py,sha256=1V2DwIUt-bSiSURnk6AzfKB0HRLHwoi8_6RaIvywlzU,3716
47
- absfuyu/util/api.py,sha256=qI3T3bO_dRyRLjmeCtKAJzWr5v7b8ZG1U1rsb4UJk2g,4395
48
- absfuyu/util/json_method.py,sha256=8DlNXRNqHKbbikG3p08LEKWuw8FxjYP7k_sCYhwH9Bg,2684
49
- absfuyu/util/lunar.py,sha256=xW7HcgyIRjWBhQv36RimNZIT8Ed_X83moqr5h5-Ku9k,13750
50
- absfuyu/util/path.py,sha256=p4Ac98FfW5pXLNRRuQ_QEx_G7-UOSBKABAg_xrOq7u4,16628
51
- absfuyu/util/performance.py,sha256=F-aLJ-5wmwkiOdl9_wZcFRKifL9zOahw52JeL4TbCuQ,9105
52
- absfuyu/util/pkl.py,sha256=ZZf6-PFC2uRGXqARNi0PGH3A0IXwMP0sYPWZJXENvak,1559
53
- absfuyu/util/shorten_number.py,sha256=CZRG0fh9y3bpmFnY9xy5gWEv1kceD1nJmQGKDxPbwCQ,6574
54
- absfuyu/util/zipped.py,sha256=CU_le1MynFwHfpajCRRJ7_A-r1jfMjt9uu72jLooW6w,3111
55
- absfuyu-4.2.0.dist-info/METADATA,sha256=6uiXP8Ru7sBlWoFQmoqC2sJdBO9qu3fo5sER0rnAnu0,3737
56
- absfuyu-4.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
- absfuyu-4.2.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
58
- absfuyu-4.2.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
59
- absfuyu-4.2.0.dist-info/RECORD,,