ezKit 1.9.9__py3-none-any.whl → 1.9.10__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- 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
|