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 CHANGED
@@ -30,15 +30,10 @@ NoneType = type(None)
30
30
  # --------------------------------------------------------------------------------------------------
31
31
 
32
32
 
33
- def isTrue(
34
- object_data: Any,
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
- return False
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
- match True:
121
- case True if not isTrue(name, str):
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
- match True:
170
- case True if not isTrue(numbers, (list, tuple)):
171
- logger.error("argument error: numbers")
172
- return None
173
- case True if not any([isTrue(dest_type, str), dest_type is None]):
174
- logger.error("argument error: dest_type")
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
- match True:
185
- case True if dest_type == "float":
186
- _numbers = [float(i) for i in numbers]
187
- case True if dest_type == "int":
188
- _numbers = [int(i) for i in numbers]
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)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ezKit
3
- Version: 1.9.9
3
+ Version: 1.9.10
4
4
  Summary: Easy Kit
5
5
  Author: septvean
6
6
  Author-email: septvean@gmail.com
@@ -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=H-VaWzH1TkpJe_lpPBW2yaP6R7NElDbHRTsByRj_t9w,43234
14
+ ezKit/utils.py,sha256=TDsL3PRkQy6NdZgphkgwacbWvHqEmq4LOkfNzmxV4DY,42682
15
15
  ezKit/xftp.py,sha256=XyIdr_2rxRVLqPofG6fIYWhAMVsFwTyp46dg5P9FLW4,7774
16
- ezKit-1.9.9.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
17
- ezKit-1.9.9.dist-info/METADATA,sha256=i9NRcyP11nSCxo9bCngbdreKObAoIebkPJz5Sh1EiR0,190
18
- ezKit-1.9.9.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
19
- ezKit-1.9.9.dist-info/top_level.txt,sha256=aYLB_1WODsqNTsTFWcKP-BN0KCTKcV-HZJ4zlHkCFw8,6
20
- ezKit-1.9.9.dist-info/RECORD,,
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