absfuyu 5.0.0__py3-none-any.whl → 6.1.2__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.
- absfuyu/__init__.py +5 -3
- absfuyu/__main__.py +3 -3
- absfuyu/cli/__init__.py +13 -2
- absfuyu/cli/audio_group.py +98 -0
- absfuyu/cli/color.py +30 -14
- absfuyu/cli/config_group.py +9 -2
- absfuyu/cli/do_group.py +23 -6
- absfuyu/cli/game_group.py +27 -2
- absfuyu/cli/tool_group.py +81 -11
- absfuyu/config/__init__.py +3 -3
- absfuyu/core/__init__.py +12 -8
- absfuyu/core/baseclass.py +929 -96
- absfuyu/core/baseclass2.py +44 -3
- absfuyu/core/decorator.py +70 -4
- absfuyu/core/docstring.py +64 -41
- absfuyu/core/dummy_cli.py +3 -3
- absfuyu/core/dummy_func.py +19 -6
- absfuyu/dxt/__init__.py +2 -2
- absfuyu/dxt/base_type.py +93 -0
- absfuyu/dxt/dictext.py +204 -16
- absfuyu/dxt/dxt_support.py +2 -2
- absfuyu/dxt/intext.py +151 -34
- absfuyu/dxt/listext.py +969 -127
- absfuyu/dxt/strext.py +77 -17
- absfuyu/extra/__init__.py +2 -2
- absfuyu/extra/audio/__init__.py +8 -0
- absfuyu/extra/audio/_util.py +57 -0
- absfuyu/extra/audio/convert.py +192 -0
- absfuyu/extra/audio/lossless.py +281 -0
- absfuyu/extra/beautiful.py +3 -2
- absfuyu/extra/da/__init__.py +72 -0
- absfuyu/extra/da/dadf.py +1600 -0
- absfuyu/extra/da/dadf_base.py +186 -0
- absfuyu/extra/da/df_func.py +181 -0
- absfuyu/extra/da/mplt.py +219 -0
- absfuyu/extra/ggapi/__init__.py +8 -0
- absfuyu/extra/ggapi/gdrive.py +223 -0
- absfuyu/extra/ggapi/glicense.py +148 -0
- absfuyu/extra/ggapi/glicense_df.py +186 -0
- absfuyu/extra/ggapi/gsheet.py +88 -0
- absfuyu/extra/img/__init__.py +30 -0
- absfuyu/extra/img/converter.py +402 -0
- absfuyu/extra/img/dup_check.py +291 -0
- absfuyu/extra/pdf.py +87 -0
- absfuyu/extra/rclone.py +253 -0
- absfuyu/extra/xml.py +90 -0
- absfuyu/fun/__init__.py +7 -20
- absfuyu/fun/rubik.py +442 -0
- absfuyu/fun/tarot.py +2 -2
- absfuyu/game/__init__.py +2 -2
- absfuyu/game/game_stat.py +2 -2
- absfuyu/game/schulte.py +78 -0
- absfuyu/game/sudoku.py +2 -2
- absfuyu/game/tictactoe.py +2 -3
- absfuyu/game/wordle.py +6 -4
- absfuyu/general/__init__.py +4 -4
- absfuyu/general/content.py +4 -4
- absfuyu/general/human.py +2 -2
- absfuyu/general/resrel.py +213 -0
- absfuyu/general/shape.py +3 -8
- absfuyu/general/tax.py +344 -0
- absfuyu/logger.py +806 -59
- absfuyu/numbers/__init__.py +13 -0
- absfuyu/numbers/number_to_word.py +321 -0
- absfuyu/numbers/shorten_number.py +303 -0
- absfuyu/numbers/time_duration.py +217 -0
- absfuyu/pkg_data/__init__.py +2 -2
- absfuyu/pkg_data/deprecated.py +2 -2
- absfuyu/pkg_data/logo.py +1462 -0
- absfuyu/sort.py +4 -4
- absfuyu/tools/__init__.py +28 -2
- absfuyu/tools/checksum.py +144 -9
- absfuyu/tools/converter.py +120 -34
- absfuyu/tools/generator.py +461 -0
- absfuyu/tools/inspector.py +752 -0
- absfuyu/tools/keygen.py +2 -2
- absfuyu/tools/obfuscator.py +47 -9
- absfuyu/tools/passwordlib.py +89 -25
- absfuyu/tools/shutdownizer.py +3 -8
- absfuyu/tools/sw.py +718 -0
- absfuyu/tools/web.py +10 -13
- absfuyu/typings.py +138 -0
- absfuyu/util/__init__.py +114 -6
- absfuyu/util/api.py +41 -18
- absfuyu/util/cli.py +119 -0
- absfuyu/util/gui.py +91 -0
- absfuyu/util/json_method.py +43 -14
- absfuyu/util/lunar.py +2 -2
- absfuyu/util/package.py +124 -0
- absfuyu/util/path.py +702 -82
- absfuyu/util/performance.py +122 -7
- absfuyu/util/shorten_number.py +244 -21
- absfuyu/util/text_table.py +481 -0
- absfuyu/util/zipped.py +8 -7
- absfuyu/version.py +79 -59
- {absfuyu-5.0.0.dist-info → absfuyu-6.1.2.dist-info}/METADATA +52 -11
- absfuyu-6.1.2.dist-info/RECORD +105 -0
- {absfuyu-5.0.0.dist-info → absfuyu-6.1.2.dist-info}/WHEEL +1 -1
- absfuyu/extra/data_analysis.py +0 -1078
- absfuyu/general/generator.py +0 -303
- absfuyu-5.0.0.dist-info/RECORD +0 -68
- {absfuyu-5.0.0.dist-info → absfuyu-6.1.2.dist-info}/entry_points.txt +0 -0
- {absfuyu-5.0.0.dist-info → absfuyu-6.1.2.dist-info}/licenses/LICENSE +0 -0
absfuyu/general/generator.py
DELETED
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Absfuyu: Generator
|
|
3
|
-
------------------
|
|
4
|
-
This generate stuff (Not python's ``generator``)
|
|
5
|
-
|
|
6
|
-
Version: 5.0.0
|
|
7
|
-
Date updated: 25/02/2025 (dd/mm/yyyy)
|
|
8
|
-
|
|
9
|
-
Features:
|
|
10
|
-
---------
|
|
11
|
-
- Generate random string
|
|
12
|
-
- Generate key
|
|
13
|
-
- Generate check digit
|
|
14
|
-
- Generate combinations of list in range
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
# Module level
|
|
18
|
-
# ---------------------------------------------------------------------------
|
|
19
|
-
__all__ = ["Charset", "Generator"]
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# Library
|
|
23
|
-
# ---------------------------------------------------------------------------
|
|
24
|
-
import string
|
|
25
|
-
from itertools import chain, combinations
|
|
26
|
-
from random import choice
|
|
27
|
-
|
|
28
|
-
from absfuyu.core import BaseClass
|
|
29
|
-
from absfuyu.logger import logger
|
|
30
|
-
from absfuyu.util import set_max, set_min_max
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
# Class
|
|
34
|
-
# ---------------------------------------------------------------------------
|
|
35
|
-
class Charset:
|
|
36
|
-
"""
|
|
37
|
-
Character set data class
|
|
38
|
-
"""
|
|
39
|
-
|
|
40
|
-
DEFAULT = string.ascii_letters + string.digits
|
|
41
|
-
ALPHABET = string.ascii_letters
|
|
42
|
-
FULL = string.ascii_letters + string.digits + string.punctuation
|
|
43
|
-
UPPERCASE = string.ascii_uppercase
|
|
44
|
-
LOWERCASE = string.ascii_lowercase
|
|
45
|
-
DIGIT = string.digits
|
|
46
|
-
SPECIAL = string.punctuation
|
|
47
|
-
ALL = string.printable
|
|
48
|
-
PRODUCT_KEY = "BCDFGHJKMNPQRTVWXY2346789" # Charset that various key makers use
|
|
49
|
-
|
|
50
|
-
def __str__(self) -> str:
|
|
51
|
-
charset = [x for x in self.__class__.__dict__.keys() if not x.startswith("__")]
|
|
52
|
-
return f"List of Character set: {charset}"
|
|
53
|
-
|
|
54
|
-
def __repr__(self) -> str:
|
|
55
|
-
return self.__str__()
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
class Generator(BaseClass):
|
|
59
|
-
"""
|
|
60
|
-
Generator that generate stuffs
|
|
61
|
-
"""
|
|
62
|
-
|
|
63
|
-
@staticmethod
|
|
64
|
-
def generate_string(
|
|
65
|
-
charset: str = Charset.DEFAULT,
|
|
66
|
-
size: int = 8,
|
|
67
|
-
times: int = 1,
|
|
68
|
-
unique: bool = False,
|
|
69
|
-
string_type_if_1: bool = False,
|
|
70
|
-
):
|
|
71
|
-
"""
|
|
72
|
-
Generate a list of random string from character set (Random string generator)
|
|
73
|
-
|
|
74
|
-
Parameters
|
|
75
|
-
----------
|
|
76
|
-
charset : str
|
|
77
|
-
- Use custom character set or character sets already defined in ``Charset``
|
|
78
|
-
- ``Charset.DEFAULT``: character in [a-zA-Z0-9] (default)
|
|
79
|
-
- ``Charset.ALPHABET``: character in [a-zA-Z]
|
|
80
|
-
- ``Charset.FULL``: character in [a-zA-Z0-9] + special characters
|
|
81
|
-
- ``Charset.UPPERCASE``: character in [A-Z]
|
|
82
|
-
- ``Charset.LOWERCASE``: character in [a-z]
|
|
83
|
-
- ``Charset.DIGIT``: character in [0-9]
|
|
84
|
-
- ``Charset.SPECIAL``: character in [!@#$%^&*()_+=-]
|
|
85
|
-
- ``Charset.ALL``: character in every printable character
|
|
86
|
-
|
|
87
|
-
size : int
|
|
88
|
-
Length of each string in list
|
|
89
|
-
(Default: ``8``)
|
|
90
|
-
|
|
91
|
-
times : int
|
|
92
|
-
How many random string generated
|
|
93
|
-
(Default: ``1``)
|
|
94
|
-
|
|
95
|
-
unique : bool
|
|
96
|
-
Each generated text is unique
|
|
97
|
-
(Default: ``False``)
|
|
98
|
-
|
|
99
|
-
string_type_if_1 : bool
|
|
100
|
-
Return a ``str`` type result if ``times == 1``
|
|
101
|
-
(Default: ``False``)
|
|
102
|
-
|
|
103
|
-
Returns
|
|
104
|
-
-------
|
|
105
|
-
list
|
|
106
|
-
List of random string generated
|
|
107
|
-
|
|
108
|
-
str
|
|
109
|
-
When ``string_type_if_1`` is ``True``
|
|
110
|
-
|
|
111
|
-
None
|
|
112
|
-
When invalid option
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
Example:
|
|
116
|
-
--------
|
|
117
|
-
>>> Generator.generate_string(times=3)
|
|
118
|
-
['67Xfh1fv', 'iChcGz9P', 'u82fNzlm']
|
|
119
|
-
"""
|
|
120
|
-
|
|
121
|
-
try:
|
|
122
|
-
char_lst = list(charset)
|
|
123
|
-
except Exception:
|
|
124
|
-
char_lst = charset # type: ignore # ! review this sometime
|
|
125
|
-
# logger.debug(char_lst)
|
|
126
|
-
|
|
127
|
-
unique_string = []
|
|
128
|
-
count = 0
|
|
129
|
-
logger.debug(f"Unique generated text: {unique}")
|
|
130
|
-
|
|
131
|
-
while count < times:
|
|
132
|
-
s = "".join(choice(char_lst) for _ in range(size))
|
|
133
|
-
logger.debug(
|
|
134
|
-
f"Time generated: {count + 1}. Remaining: {times - count - 1}. {s}"
|
|
135
|
-
)
|
|
136
|
-
if not unique:
|
|
137
|
-
unique_string.append(s)
|
|
138
|
-
count += 1
|
|
139
|
-
else:
|
|
140
|
-
if s not in unique_string:
|
|
141
|
-
unique_string.append(s)
|
|
142
|
-
count += 1
|
|
143
|
-
|
|
144
|
-
logger.debug(unique_string)
|
|
145
|
-
if string_type_if_1 and times == 1:
|
|
146
|
-
return unique_string[0]
|
|
147
|
-
else:
|
|
148
|
-
return unique_string
|
|
149
|
-
|
|
150
|
-
@classmethod
|
|
151
|
-
def generate_key(
|
|
152
|
-
cls,
|
|
153
|
-
charset: str = Charset.PRODUCT_KEY,
|
|
154
|
-
letter_per_block: int = 5,
|
|
155
|
-
number_of_block: int = 5,
|
|
156
|
-
sep: str = "-",
|
|
157
|
-
) -> str:
|
|
158
|
-
"""
|
|
159
|
-
Generate custom key
|
|
160
|
-
|
|
161
|
-
Parameters
|
|
162
|
-
----------
|
|
163
|
-
charset : str
|
|
164
|
-
Character set
|
|
165
|
-
(Default: ``Charset.PRODUCT_KEY``)
|
|
166
|
-
|
|
167
|
-
letter_per_block : int
|
|
168
|
-
Number of letter per key block
|
|
169
|
-
(Default: ``5``)
|
|
170
|
-
|
|
171
|
-
number_of_block : int
|
|
172
|
-
Number of key block
|
|
173
|
-
(Default: ``5``)
|
|
174
|
-
|
|
175
|
-
sep : str
|
|
176
|
-
Key block separator
|
|
177
|
-
(Default: ``-``)
|
|
178
|
-
|
|
179
|
-
Returns
|
|
180
|
-
-------
|
|
181
|
-
str
|
|
182
|
-
Generated key
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
Example:
|
|
186
|
-
--------
|
|
187
|
-
>>> Generator.generate_key(letter_per_block=10, number_of_block=2)
|
|
188
|
-
'VKKPJVYD2H-M7R687QCV2'
|
|
189
|
-
"""
|
|
190
|
-
out = sep.join(
|
|
191
|
-
cls.generate_string(
|
|
192
|
-
charset,
|
|
193
|
-
size=letter_per_block,
|
|
194
|
-
times=number_of_block,
|
|
195
|
-
unique=False,
|
|
196
|
-
string_type_if_1=False,
|
|
197
|
-
)
|
|
198
|
-
)
|
|
199
|
-
logger.debug(out)
|
|
200
|
-
return out
|
|
201
|
-
|
|
202
|
-
@staticmethod
|
|
203
|
-
def generate_check_digit(number: int) -> int:
|
|
204
|
-
"""
|
|
205
|
-
Check digit generator
|
|
206
|
-
|
|
207
|
-
"A check digit is a form of redundancy check used for
|
|
208
|
-
error detection on identification numbers, such as
|
|
209
|
-
bank account numbers, which are used in an application
|
|
210
|
-
where they will at least sometimes be input manually.
|
|
211
|
-
It is analogous to a binary parity bit used to
|
|
212
|
-
check for errors in computer-generated data.
|
|
213
|
-
It consists of one or more digits (or letters) computed
|
|
214
|
-
by an algorithm from the other digits (or letters) in the sequence input.
|
|
215
|
-
With a check digit, one can detect simple errors in
|
|
216
|
-
the input of a series of characters (usually digits)
|
|
217
|
-
such as a single mistyped digit or some permutations
|
|
218
|
-
of two successive digits." (Wikipedia)
|
|
219
|
-
|
|
220
|
-
This function use Luhn's algorithm to calculate
|
|
221
|
-
|
|
222
|
-
Parameters
|
|
223
|
-
----------
|
|
224
|
-
number : int
|
|
225
|
-
Number to calculate check digit
|
|
226
|
-
|
|
227
|
-
Returns
|
|
228
|
-
-------
|
|
229
|
-
int
|
|
230
|
-
Check digit
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
Example:
|
|
234
|
-
--------
|
|
235
|
-
>>> Generator.generate_check_digit("4129984562545")
|
|
236
|
-
7
|
|
237
|
-
"""
|
|
238
|
-
|
|
239
|
-
logger.debug(f"Base: {number}")
|
|
240
|
-
# turn into list then reverse the order
|
|
241
|
-
num = list(str(number))[::-1]
|
|
242
|
-
sum = 0
|
|
243
|
-
logger.debug(f"Reversed: {''.join(num)}")
|
|
244
|
-
for i in range(len(num)):
|
|
245
|
-
# convert back into integer
|
|
246
|
-
num[i] = int(num[i]) # type: ignore
|
|
247
|
-
if i % 2 == 0:
|
|
248
|
-
# double value of the even-th digit
|
|
249
|
-
num[i] *= 2
|
|
250
|
-
# sum the character of digit if it's >= 10
|
|
251
|
-
if num[i] >= 10: # type: ignore
|
|
252
|
-
num[i] -= 9 # type: ignore
|
|
253
|
-
sum += num[i] # type: ignore
|
|
254
|
-
logger.debug(f"Loop {i + 1}: {num[i]}, {sum}")
|
|
255
|
-
|
|
256
|
-
out = (10 - (sum % 10)) % 10
|
|
257
|
-
logger.debug(f"Output: {out}")
|
|
258
|
-
return out
|
|
259
|
-
|
|
260
|
-
@staticmethod
|
|
261
|
-
def combinations_range(
|
|
262
|
-
sequence: list, *, min_len: int = 1, max_len: int = 0
|
|
263
|
-
) -> list[tuple]:
|
|
264
|
-
"""
|
|
265
|
-
Generate all combinations of a ``sequence`` from ``min_len`` to ``max_len``
|
|
266
|
-
|
|
267
|
-
Parameters
|
|
268
|
-
----------
|
|
269
|
-
sequence : list
|
|
270
|
-
A sequence that need to generate combination
|
|
271
|
-
|
|
272
|
-
min_len : int
|
|
273
|
-
Minimum ``r`` of ``combinations``
|
|
274
|
-
(Default: ``1``)
|
|
275
|
-
|
|
276
|
-
max_len : int
|
|
277
|
-
Maximum ``r`` of ``combinations``
|
|
278
|
-
(Default: ``0`` - len of ``sequence``)
|
|
279
|
-
|
|
280
|
-
Returns
|
|
281
|
-
-------
|
|
282
|
-
list[tuple]
|
|
283
|
-
A list of all combinations from range(``min_len``, ``max_len``) of ``sequence``
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
Example:
|
|
287
|
-
--------
|
|
288
|
-
>>> Generator.combinations_range([1, 2, 3], min_len=2)
|
|
289
|
-
[(1, 2), (1, 3), (2, 3), (1, 2, 3)]
|
|
290
|
-
"""
|
|
291
|
-
# Restrain
|
|
292
|
-
if max_len < 1:
|
|
293
|
-
max_len = len(sequence)
|
|
294
|
-
max_len = int(set_max(max_len, max_value=len(sequence)))
|
|
295
|
-
min_len = int(set_min_max(min_len, min_value=1, max_value=max_len))
|
|
296
|
-
logger.debug(f"Combination range: [{min_len}, {max_len}]")
|
|
297
|
-
|
|
298
|
-
# Return
|
|
299
|
-
return list(
|
|
300
|
-
chain.from_iterable(
|
|
301
|
-
[list(combinations(sequence, i)) for i in range(min_len, max_len + 1)]
|
|
302
|
-
)
|
|
303
|
-
)
|
absfuyu-5.0.0.dist-info/RECORD
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
absfuyu/__init__.py,sha256=0fFKIm3iQEyqB0IdZIIqBe5bF7CCRl7ZD4mxwa_GxF0,600
|
|
2
|
-
absfuyu/__main__.py,sha256=vUKjwcjMvynbeygRLuXWMKR2vR7CndZ496xx2Qzb6xk,603
|
|
3
|
-
absfuyu/logger.py,sha256=VP9-sXtGVyDkHUyRSaGUfCrl_wn8wOnmtCLcUNec-yg,13043
|
|
4
|
-
absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
absfuyu/sort.py,sha256=WjH0asrvl02TMlAhG77X-wGcGHIIQd-jWU_Xv9Xv-qc,3250
|
|
6
|
-
absfuyu/version.py,sha256=KMaeXNl93L4VU2RnTySoFv23IDyTvHfy84nyatFcKaE,14128
|
|
7
|
-
absfuyu/cli/__init__.py,sha256=mYX6lVAat9UOI9qR-ZDFw_4WOLVA9r-jTtW8d2fBEKM,1181
|
|
8
|
-
absfuyu/cli/color.py,sha256=Cvpqwc5mb4-71OplswgfxmJ8D9jf9gkjM7l3qV902X0,774
|
|
9
|
-
absfuyu/cli/config_group.py,sha256=FsyYm2apSyAA2PAD12CpHAizenRds_QlLf8j0AlLuVo,1230
|
|
10
|
-
absfuyu/cli/do_group.py,sha256=QBOL3Z6E70-_kPOivaH160lmFyOL2Zl70Qjda_fV0Fc,2131
|
|
11
|
-
absfuyu/cli/game_group.py,sha256=ySpL2hm4VCplhNY0s22kBGI5eFCdJj9fm1T58yftU74,2348
|
|
12
|
-
absfuyu/cli/tool_group.py,sha256=ZruYcBLCjP2G0CgyE19WsRJ2kn2H1fKEZ0pa0KF6tyI,3164
|
|
13
|
-
absfuyu/config/__init__.py,sha256=yWN-TguDXcWJg5EiCGRnKLsTZQfIYvKVHhzASNp2S0s,8238
|
|
14
|
-
absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
|
|
15
|
-
absfuyu/core/__init__.py,sha256=oZpRrxIU66dN4UYO61TM72oE0Ijs_3wajdYCg12SJlw,1186
|
|
16
|
-
absfuyu/core/baseclass.py,sha256=t5oyfwBw5Mm5wLp2o_JnTNx0v9njEb_OeRlzOTbc5KM,10204
|
|
17
|
-
absfuyu/core/baseclass2.py,sha256=5meEqRk0pPoDlhA0_qti_-p-fHvxT6XqwitHLpFVl_Q,5366
|
|
18
|
-
absfuyu/core/decorator.py,sha256=MpmgAb1gsXgRDEyMJLvSxUWEG0WC4aTFYJAEwjdauAI,1901
|
|
19
|
-
absfuyu/core/docstring.py,sha256=2TmPXXtJKszfBPPHXDMPjrTCpVFwxmS8J5XhWb4myNc,5228
|
|
20
|
-
absfuyu/core/dummy_cli.py,sha256=_-Gsmg2beO7fTSP-3nSGwqVmiVKpzTICIuHfGetQbw8,1884
|
|
21
|
-
absfuyu/core/dummy_func.py,sha256=AS7kgMWeXZoYF94gocyydAfkyOM7W2v1F9wNQ40ta-Q,1097
|
|
22
|
-
absfuyu/dxt/__init__.py,sha256=IHTjk-GdeKp5s9mhH87WUrHVb9gY34WUzrjQEw0q9II,986
|
|
23
|
-
absfuyu/dxt/dictext.py,sha256=_q45v98x2sB38QBROg-Fbd6Aw63HO5hPIEJENI39d-E,5998
|
|
24
|
-
absfuyu/dxt/dxt_support.py,sha256=dWMbFYiRUhX9QHxChYo_YzwCywylUi1R5h28y13Wn4I,2109
|
|
25
|
-
absfuyu/dxt/intext.py,sha256=wMmjt24c-0Kk3gJx1ln0ULNdrxmgeDh3zUOUTD6cQBo,16716
|
|
26
|
-
absfuyu/dxt/listext.py,sha256=lqWVQ1uBZ3zm0d1S0oVz0qjTagbucZjQ3htcFzc24tg,13964
|
|
27
|
-
absfuyu/dxt/strext.py,sha256=UDS818z4Rv92gCgdlfz_ibr3vsip6Sgxp-yfI8JyPho,14628
|
|
28
|
-
absfuyu/extra/__init__.py,sha256=lyJwiRHvCL3qNYKK9mbjNrzIHGDPERyfwl8_V6g4PEE,182
|
|
29
|
-
absfuyu/extra/beautiful.py,sha256=llxgAYco5-bg6VC1kMwA7VyCSJgu4LdCHBG0pM1PWs8,8072
|
|
30
|
-
absfuyu/extra/data_analysis.py,sha256=0zfjWm3t1nyp0n0rsPKzWmcR0ZvF7BpQsjn9niGqhps,32005
|
|
31
|
-
absfuyu/fun/__init__.py,sha256=tDSDIDHrJPQ_hWV7ASpbAUCIQ6B1t1IPq4ahrZQqfWk,5435
|
|
32
|
-
absfuyu/fun/tarot.py,sha256=E9NKwhebU4EGOcbQkt4Ni7o6ZIYq8-h7_Fz3jk0Arpw,2401
|
|
33
|
-
absfuyu/game/__init__.py,sha256=tkNxTbdkPtAhGEdqXFQARHYApEhcD68CeDF_oHMzVeA,4691
|
|
34
|
-
absfuyu/game/game_stat.py,sha256=mOs6UOvNUmr-vNOomNJK0lY9o9m9Rs0b9GEMGeXaAdE,1236
|
|
35
|
-
absfuyu/game/sudoku.py,sha256=ascN8ey7SimldXT8ae3AWv4bxlfwT4X14JdmxY2o808,10405
|
|
36
|
-
absfuyu/game/tictactoe.py,sha256=_JLeIhxHEIDLRJay7i1kagxx8kCDhZNgTrXt7Rl0ntc,9960
|
|
37
|
-
absfuyu/game/wordle.py,sha256=izvV_lOZwPnslDdQ73PnwD5t5ECKVWGhpZvHAZH-2EY,101576
|
|
38
|
-
absfuyu/general/__init__.py,sha256=EITlDmPAp6lcAWR9Bq707j4FZ9jAD9PblftOK1XvGDA,480
|
|
39
|
-
absfuyu/general/content.py,sha256=wGzYufji8PmHy6ygGFclf_u6DZudnYaeHtR9d2of_1E,17122
|
|
40
|
-
absfuyu/general/generator.py,sha256=C54TJ3DZ5TXFYRI7_jLdtjTMcWxACX4Jmlo27Zh90Ew,8996
|
|
41
|
-
absfuyu/general/human.py,sha256=o1TswjgN8zRfCmkEgchS1HVq036twBB64u1Dt4KLI1I,8099
|
|
42
|
-
absfuyu/general/shape.py,sha256=dAYSihPnanax4jMPSvZMIzMbo9puvxIqdQxuSlDLl4I,38619
|
|
43
|
-
absfuyu/pkg_data/__init__.py,sha256=Jn8fHDsPCd8w4YoOo3EpoExxda5BRAjHQJRdYwwTYeA,5510
|
|
44
|
-
absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
|
|
45
|
-
absfuyu/pkg_data/deprecated.py,sha256=L1ju3m_P8DbqQ1l18XgneVixorWiLJ5HeKh_K3wovXM,4349
|
|
46
|
-
absfuyu/pkg_data/passwordlib_lzma.pkl,sha256=rT5lJT8t42BATU5Cp2qFwbnZkbx-QlUgodSvR0wFY6I,891877
|
|
47
|
-
absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
|
|
48
|
-
absfuyu/tools/__init__.py,sha256=g6-2banBKxGfAbsVTd-OZhLujixXApsQmx2RlAB_aGE,118
|
|
49
|
-
absfuyu/tools/checksum.py,sha256=1WLC9GGmjehxhhV-BgdxJbA45QhN850u_znOgwoYDP0,5156
|
|
50
|
-
absfuyu/tools/converter.py,sha256=tdDQpdzbB9RdcZIlcV6LzldDkVEiwCFzRoWCfJVCpn4,11615
|
|
51
|
-
absfuyu/tools/keygen.py,sha256=JxhUiiaUHaGqVicXY46JjVrH3ke2QlnsRJqgIvlxUsg,7115
|
|
52
|
-
absfuyu/tools/obfuscator.py,sha256=vy_nIyQeDci6vHFbHL907Ha6RUZm9axsSZw_nKyyYBc,12687
|
|
53
|
-
absfuyu/tools/passwordlib.py,sha256=jEmKW63fTyGOtBPPVi44fMtcNu1W7m2Qkox-GHxTxH4,9632
|
|
54
|
-
absfuyu/tools/shutdownizer.py,sha256=z5z5ofdAtOBat1m7lz95FwXZI0fMarl2mChBMwUMi4I,8549
|
|
55
|
-
absfuyu/tools/web.py,sha256=rVF-60IT8J_RVxMPzz5bhgBq3i1WmwbR5ouzQ_CZwhQ,1240
|
|
56
|
-
absfuyu/util/__init__.py,sha256=3Ylck5HBHAhFd_B_v6Bh3C1qyI1M0Kk9sK9nNIBLHqU,3831
|
|
57
|
-
absfuyu/util/api.py,sha256=xXwffnpq1qxBIag_MOriKe3ueaCdsaq-WFRIH-8yFqI,4288
|
|
58
|
-
absfuyu/util/json_method.py,sha256=a4xVabcw18HBLJthkmf5KNUcQya45-A8AFEpcGIDx3Q,2197
|
|
59
|
-
absfuyu/util/lunar.py,sha256=8dxXdGU7V_5L9fOeq36oKDzs_DcLnIiFwIpHa1O22yc,13630
|
|
60
|
-
absfuyu/util/path.py,sha256=0hRzobegpblgCIluy9wXFNCwlDoovz_ccVCwaVqvgo8,16434
|
|
61
|
-
absfuyu/util/performance.py,sha256=aN_0WGJfupqh8FdgsEU4llkDpUNAlojlWXtlRGMFmJE,8585
|
|
62
|
-
absfuyu/util/shorten_number.py,sha256=7-uH4zwy594pVnqqGe75IoS7vqEXx3DIA9nRl8hrQpw,7788
|
|
63
|
-
absfuyu/util/zipped.py,sha256=fXLVt4hnIgN2hwhvbwxzYQC1r--RX2Hgb429r767WDI,2979
|
|
64
|
-
absfuyu-5.0.0.dist-info/METADATA,sha256=J29q7jABMmx_LkCQVw9aL9BYsGk3QdTBsA4W0WyeF2s,4839
|
|
65
|
-
absfuyu-5.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
66
|
-
absfuyu-5.0.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
|
|
67
|
-
absfuyu-5.0.0.dist-info/licenses/LICENSE,sha256=pFCHBSNSzdXwYG1AHpq7VcofI1NMQ1Fc77RzZ4Ln2O4,1097
|
|
68
|
-
absfuyu-5.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|