ezKit 1.9.9__py3-none-any.whl → 1.9.10__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.
- ezKit/utils.py +50 -71
- {ezKit-1.9.9.dist-info → ezKit-1.9.10.dist-info}/METADATA +1 -1
- {ezKit-1.9.9.dist-info → ezKit-1.9.10.dist-info}/RECORD +6 -6
- {ezKit-1.9.9.dist-info → ezKit-1.9.10.dist-info}/LICENSE +0 -0
- {ezKit-1.9.9.dist-info → ezKit-1.9.10.dist-info}/WHEEL +0 -0
- {ezKit-1.9.9.dist-info → ezKit-1.9.10.dist-info}/top_level.txt +0 -0
ezKit/utils.py
CHANGED
@@ -30,15 +30,10 @@ NoneType = type(None)
|
|
30
30
|
# --------------------------------------------------------------------------------------------------
|
31
31
|
|
32
32
|
|
33
|
-
def isTrue(
|
34
|
-
|
35
|
-
object_type: Any = None,
|
36
|
-
true_list: list | tuple | set | str | None = None,
|
37
|
-
false_list: list | tuple | set | str | None = None
|
38
|
-
) -> bool:
|
39
|
-
"""检查对象类型以及对象数据是否为 True"""
|
33
|
+
def isTrue(target: object, typeClass: Any) -> bool:
|
34
|
+
"""检查对象是否为真"""
|
40
35
|
|
41
|
-
#
|
36
|
+
# 常见布尔类型:
|
42
37
|
#
|
43
38
|
# Boolean bool False
|
44
39
|
# Numbers int/float 0/0.0
|
@@ -60,44 +55,33 @@ def isTrue(
|
|
60
55
|
# all() 用于检查一个可迭代对象(如列表、元组、集合等)中的 所有 元素是否为 真值 (truthy), 所有元素为真, 返回 True
|
61
56
|
# any() 用于检查一个可迭代对象(如列表、元组、集合等)中的 某个 元素是否为 真值 (truthy), 某个元素为真, 返回 True
|
62
57
|
# 与 all() 作用相反的 not any(), 可以用来检查所有元素是否为 假值 (falsy), any() 中所有元素为假, not any() 返回 True
|
58
|
+
#
|
59
|
+
# return target not in [False, None, 0, 0.0, '', (), [], {}, {*()}, {*[]}, {*{}}]
|
63
60
|
|
64
61
|
try:
|
62
|
+
return isinstance(target, typeClass) and bool(target)
|
63
|
+
except Exception as e:
|
64
|
+
logger.exception(e)
|
65
|
+
return False
|
65
66
|
|
66
|
-
if isinstance(object_data, object_type):
|
67
|
-
|
68
|
-
if all(
|
69
|
-
[
|
70
|
-
true_list is not None,
|
71
|
-
false_list is None,
|
72
|
-
isinstance(true_list, (list, tuple, set, str))
|
73
|
-
]
|
74
|
-
):
|
75
|
-
return object_data in true_list
|
76
|
-
|
77
|
-
if all(
|
78
|
-
[
|
79
|
-
true_list is None,
|
80
|
-
false_list is not None,
|
81
|
-
isinstance(false_list, (list, tuple, set, str))
|
82
|
-
]
|
83
|
-
):
|
84
|
-
return object_data not in false_list
|
85
|
-
|
86
|
-
if all(
|
87
|
-
[
|
88
|
-
true_list is not None,
|
89
|
-
false_list is not None,
|
90
|
-
isinstance(true_list, (list, tuple, set, str)),
|
91
|
-
isinstance(false_list, (list, tuple, set, str))
|
92
|
-
]
|
93
|
-
):
|
94
|
-
return (object_data in true_list) and (object_data not in false_list)
|
95
|
-
|
96
|
-
# return object_data not in [False, None, 0, 0.0, '', (), [], {}, {*()}, {*[]}, {*{}}]
|
97
|
-
return bool(object_data)
|
98
67
|
|
99
|
-
|
68
|
+
# --------------------------------------------------------------------------------------------------
|
69
|
+
|
70
|
+
|
71
|
+
def check_arguments(data: list) -> bool:
|
72
|
+
"""检查函数参数"""
|
73
|
+
|
74
|
+
# data 示例: [(name, str, "name"), (age, int, "age")]
|
100
75
|
|
76
|
+
try:
|
77
|
+
if not isTrue(data, list):
|
78
|
+
logger.error("argument error: data")
|
79
|
+
return False
|
80
|
+
for arg, arg_type, arg_name in data:
|
81
|
+
if not isTrue(arg, arg_type):
|
82
|
+
logger.error(f"argument error: {arg_name}")
|
83
|
+
return False
|
84
|
+
return True
|
101
85
|
except Exception as e:
|
102
86
|
logger.exception(e)
|
103
87
|
return False
|
@@ -116,13 +100,9 @@ def os_environ(
|
|
116
100
|
# Python 没有全局变量, 多个文件无法调用同一个变量.
|
117
101
|
# 为了解决这个问题, 将变量设置为系统变量, 从而实现多个文件调用同一个变量.
|
118
102
|
|
119
|
-
#
|
120
|
-
|
121
|
-
|
122
|
-
logger.error("argument error: name")
|
123
|
-
return None
|
124
|
-
case _:
|
125
|
-
pass
|
103
|
+
# 检查参数是否正确
|
104
|
+
if not check_arguments([(name, str, "name")]):
|
105
|
+
return None
|
126
106
|
|
127
107
|
try:
|
128
108
|
|
@@ -165,29 +145,24 @@ def mam_of_numbers(
|
|
165
145
|
# numbers 数字列表 (仅支持 list 和 tuple, 不支 set)
|
166
146
|
# dest_type 目标类型 (将数字列表中的数字转换成统一的类型)
|
167
147
|
|
168
|
-
#
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
return None
|
176
|
-
case _:
|
177
|
-
pass
|
148
|
+
# 检查参数是否正确
|
149
|
+
if not check_arguments([(numbers, (list, tuple), "numbers")]):
|
150
|
+
return None
|
151
|
+
|
152
|
+
if not any([isTrue(dest_type, str), dest_type is None]):
|
153
|
+
logger.error("argument error: dest_type")
|
154
|
+
return None
|
178
155
|
|
179
156
|
try:
|
180
157
|
|
181
158
|
_numbers = deepcopy(numbers)
|
182
159
|
|
183
160
|
# 转换数据类型
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
case _:
|
190
|
-
pass
|
161
|
+
if dest_type == "float":
|
162
|
+
_numbers = [float(i) for i in numbers]
|
163
|
+
|
164
|
+
if dest_type == "int":
|
165
|
+
_numbers = [int(i) for i in numbers]
|
191
166
|
|
192
167
|
# 提取数据
|
193
168
|
_num_max = max(_numbers)
|
@@ -248,6 +223,9 @@ def division(
|
|
248
223
|
divisor: int | float
|
249
224
|
) -> float | None:
|
250
225
|
"""Division"""
|
226
|
+
# 检查参数是否正确
|
227
|
+
if not check_arguments([(dividend, (int, float), "dividend"), (divisor, (int, float), "divisor")]):
|
228
|
+
return None
|
251
229
|
try:
|
252
230
|
return dividend / divisor
|
253
231
|
except Exception as e:
|
@@ -262,14 +240,15 @@ def check_file_type(
|
|
262
240
|
file_object: str,
|
263
241
|
file_type: str
|
264
242
|
) -> bool:
|
265
|
-
"""
|
266
|
-
check file type
|
243
|
+
"""检查文件类型"""
|
267
244
|
|
268
|
-
|
245
|
+
# file_object 文件对象
|
246
|
+
# file_type 文件类型
|
247
|
+
|
248
|
+
# 检查参数是否正确
|
249
|
+
if not check_arguments([(file_object, str, "file"), (file_type, str, "file_type")]):
|
250
|
+
return False
|
269
251
|
|
270
|
-
file_object 文件对象
|
271
|
-
file_type 文件类型
|
272
|
-
"""
|
273
252
|
try:
|
274
253
|
|
275
254
|
_file_path = Path(file_object)
|
@@ -11,10 +11,10 @@ ezKit/redis.py,sha256=g2_V4jvq0djRc20jLZkgeAeF_bYrq-Rbl_kHcCUPZcA,1965
|
|
11
11
|
ezKit/sendemail.py,sha256=tRXCsJm_RfTJ9xEWe_lTQ5kOs2JxHGPXvq0oWA7prq0,7263
|
12
12
|
ezKit/stock.py,sha256=cbL0ZXCur4G290wFN5ynmLmMjgDRNSvVQgsE_0jSQKU,11802
|
13
13
|
ezKit/token.py,sha256=HKREyZj_T2S8-aFoFIrBXTaCKExQq4zE66OHXhGHqQg,1750
|
14
|
-
ezKit/utils.py,sha256=
|
14
|
+
ezKit/utils.py,sha256=TDsL3PRkQy6NdZgphkgwacbWvHqEmq4LOkfNzmxV4DY,42682
|
15
15
|
ezKit/xftp.py,sha256=XyIdr_2rxRVLqPofG6fIYWhAMVsFwTyp46dg5P9FLW4,7774
|
16
|
-
ezKit-1.9.
|
17
|
-
ezKit-1.9.
|
18
|
-
ezKit-1.9.
|
19
|
-
ezKit-1.9.
|
20
|
-
ezKit-1.9.
|
16
|
+
ezKit-1.9.10.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
17
|
+
ezKit-1.9.10.dist-info/METADATA,sha256=7xdrfPXxnqwajfaZzvzvayL0KDLsfjstCk-j_f_gA5k,191
|
18
|
+
ezKit-1.9.10.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
19
|
+
ezKit-1.9.10.dist-info/top_level.txt,sha256=aYLB_1WODsqNTsTFWcKP-BN0KCTKcV-HZJ4zlHkCFw8,6
|
20
|
+
ezKit-1.9.10.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|