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 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