mortal-bases 4.0.2__py3-none-any.whl → 4.0.8__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.
mortal_bases/__init__.py CHANGED
@@ -18,15 +18,24 @@ class MortalBases(MortalBasesMain):
18
18
  """
19
19
  MortalBases 类继承自 MortalBasesMain,提供了一系列用于数据转换、字典操作、路径操作、可调用对象操作和时间处理的方法。
20
20
  """
21
- def __init__(self, warning=True):
21
+ @classmethod
22
+ def get_mortal_except(cls):
22
23
  """
23
- 初始化 MortalBases 实例。
24
+ 调用内部方法 `_get_mortal_except` 以获取异常装饰器。
25
+ """
26
+ return cls._get_mortal_except()
27
+
28
+ @classmethod
29
+ def undefined(cls):
30
+ """
31
+ 返回一个未定义的值。
24
32
 
25
- :param warning: 是否启用警告,默认为 True。
33
+ :return: 返回一个未定义的值,具体类型和内容由 `_undefined()` 方法决定。
26
34
  """
27
- super().__init__(warning)
35
+ return cls._undefined()
28
36
 
29
- def to_str(self, obj, except_result=None):
37
+ @classmethod
38
+ def to_str(cls, obj, except_result=None):
30
39
  """
31
40
  将对象转换为字符串。
32
41
 
@@ -34,9 +43,10 @@ class MortalBases(MortalBasesMain):
34
43
  :param except_result: 转换失败时返回的默认值,默认为 None。
35
44
  :return: 转换后的字符串或默认值。
36
45
  """
37
- return self._to_str(obj, except_result)
46
+ return cls._to_str(obj, except_result)
38
47
 
39
- def to_int(self, obj, ceil=False, floor=False, absolute=False, except_result=None):
48
+ @classmethod
49
+ def to_int(cls, obj, ceil=False, floor=False, absolute=False, except_result=None):
40
50
  """
41
51
  将对象转换为整数。
42
52
 
@@ -47,9 +57,10 @@ class MortalBases(MortalBasesMain):
47
57
  :param except_result: 转换失败时返回的默认值,默认为 None。
48
58
  :return: 转换后的整数或默认值。
49
59
  """
50
- return self._to_int(obj, ceil, floor, absolute, except_result)
60
+ return cls._to_int(obj, ceil, floor, absolute, except_result)
51
61
 
52
- def to_float(self, obj, digits: int = 2, except_result=None):
62
+ @classmethod
63
+ def to_float(cls, obj, digits: int = 2, except_result=None):
53
64
  """
54
65
  将对象转换为浮点数,并保留指定小数位数。
55
66
 
@@ -58,9 +69,10 @@ class MortalBases(MortalBasesMain):
58
69
  :param except_result: 转换失败时返回的默认值,默认为 None。
59
70
  :return: 转换后的浮点数或默认值。
60
71
  """
61
- return self._to_float(obj, digits, except_result)
72
+ return cls._to_float(obj, digits, except_result)
62
73
 
63
- def to_decimal(self, obj, digits: int = 2, except_result=None):
74
+ @classmethod
75
+ def to_decimal(cls, obj, digits: int = 2, except_result=None):
64
76
  """
65
77
  将对象转换为 Decimal 类型,并保留指定小数位数。
66
78
 
@@ -69,9 +81,10 @@ class MortalBases(MortalBasesMain):
69
81
  :param except_result: 转换失败时返回的默认值,默认为 None。
70
82
  :return: 转换后的 Decimal 或默认值。
71
83
  """
72
- return self._to_decimal(obj, digits, except_result)
84
+ return cls._to_decimal(obj, digits, except_result)
73
85
 
74
- def to_bool(self, obj, except_result=None):
86
+ @classmethod
87
+ def to_bool(cls, obj, except_result=None):
75
88
  """
76
89
  将对象转换为布尔值。
77
90
 
@@ -79,9 +92,10 @@ class MortalBases(MortalBasesMain):
79
92
  :param except_result: 转换失败时返回的默认值,默认为 None。
80
93
  :return: 转换后的布尔值或默认值。
81
94
  """
82
- return self._to_bool(obj, except_result)
95
+ return cls._to_bool(obj, except_result)
83
96
 
84
- def list_diff(self, left, right, except_result=None):
97
+ @classmethod
98
+ def list_diff(cls, left, right, except_result=None):
85
99
  """
86
100
  计算两个列表的差集。
87
101
 
@@ -90,9 +104,10 @@ class MortalBases(MortalBasesMain):
90
104
  :param except_result: 计算失败时返回的默认值,默认为 None。
91
105
  :return: 差集列表或默认值。
92
106
  """
93
- return self._list_diff(left, right, except_result)
107
+ return cls._list_diff(left, right, except_result)
94
108
 
95
- def list_set(self, left, except_result=None):
109
+ @classmethod
110
+ def list_set(cls, left, except_result=None):
96
111
  """
97
112
  将列表转换为集合,去除重复元素。
98
113
 
@@ -100,9 +115,10 @@ class MortalBases(MortalBasesMain):
100
115
  :param except_result: 转换失败时返回的默认值,默认为 None。
101
116
  :return: 转换后的集合或默认值。
102
117
  """
103
- return self._list_set(left, except_result)
118
+ return cls._list_set(left, except_result)
104
119
 
105
- def list_intersect(self, left, right, except_result=None):
120
+ @classmethod
121
+ def list_intersect(cls, left, right, except_result=None):
106
122
  """
107
123
  计算两个列表的交集。
108
124
 
@@ -111,9 +127,10 @@ class MortalBases(MortalBasesMain):
111
127
  :param except_result: 计算失败时返回的默认值,默认为 None。
112
128
  :return: 交集列表或默认值。
113
129
  """
114
- return self._list_intersect(left, right, except_result)
130
+ return cls._list_intersect(left, right, except_result)
115
131
 
116
- def dict_find(self, obj, path, except_result=None):
132
+ @classmethod
133
+ def dict_find(cls, obj, path, except_result=None):
117
134
  """
118
135
  在字典中查找指定路径的值。
119
136
 
@@ -122,9 +139,10 @@ class MortalBases(MortalBasesMain):
122
139
  :param except_result: 查找失败时返回的默认值,默认为 None。
123
140
  :return: 查找到的值或默认值。
124
141
  """
125
- return self._dict_find(obj, path, except_result)
142
+ return cls._dict_find(obj, path, except_result)
126
143
 
127
- def dict_find_all(self, obj, path, except_result=None):
144
+ @classmethod
145
+ def dict_find_all(cls, obj, path, except_result=None):
128
146
  """
129
147
  在字典中查找指定路径的所有值。
130
148
 
@@ -133,9 +151,10 @@ class MortalBases(MortalBasesMain):
133
151
  :param except_result: 查找失败时返回的默认值,默认为 None。
134
152
  :return: 查找到的所有值或默认值。
135
153
  """
136
- return self._dict_find_all(obj, path, except_result)
154
+ return cls._dict_find_all(obj, path, except_result)
137
155
 
138
- def dict_update(self, obj, path, value=None, except_result=None):
156
+ @classmethod
157
+ def dict_update(cls, obj, path, value=None, except_result=None):
139
158
  """
140
159
  更新字典中指定路径的值。
141
160
 
@@ -145,9 +164,10 @@ class MortalBases(MortalBasesMain):
145
164
  :param except_result: 更新失败时返回的默认值,默认为 None。
146
165
  :return: 更新后的字典或默认值。
147
166
  """
148
- return self._dict_update(obj, path, value, except_result)
167
+ return cls._dict_update(obj, path, value, except_result)
149
168
 
150
- def dict_delete(self, obj, path, index=0, except_result=None):
169
+ @classmethod
170
+ def dict_delete(cls, obj, path, index=0, except_result=None):
151
171
  """
152
172
  删除字典中指定路径的值。
153
173
 
@@ -157,9 +177,10 @@ class MortalBases(MortalBasesMain):
157
177
  :param except_result: 删除失败时返回的默认值,默认为 None。
158
178
  :return: 删除后的字典或默认值。
159
179
  """
160
- return self._dict_delete(obj, path, index, except_result)
180
+ return cls._dict_delete(obj, path, index, except_result)
161
181
 
162
- def dict_read_yaml(self, obj, mode='r', encoding="utf-8", loader=yaml.FullLoader, except_result=None):
182
+ @classmethod
183
+ def dict_read_yaml(cls, obj, mode='r', encoding="utf-8", loader=yaml.FullLoader, except_result=None):
163
184
  """
164
185
  从 YAML 文件中读取字典。
165
186
 
@@ -170,10 +191,11 @@ class MortalBases(MortalBasesMain):
170
191
  :param except_result: 读取失败时返回的默认值,默认为 None。
171
192
  :return: 读取到的字典或默认值。
172
193
  """
173
- return self._dict_read_yaml(obj, mode, encoding, loader, except_result)
194
+ return cls._dict_read_yaml(obj, mode, encoding, loader, except_result)
174
195
 
196
+ @classmethod
175
197
  def dict_write_yaml(
176
- self, obj, path, mode='w', default_style="", default_flow_style=False, canonical=False,
198
+ cls, obj, path, mode='w', default_style="", default_flow_style=False, canonical=False,
177
199
  indent=2, allow_unicode=True, encoding="utf-8", sort_keys=False, except_result=None
178
200
  ):
179
201
  """
@@ -192,12 +214,24 @@ class MortalBases(MortalBasesMain):
192
214
  :param except_result: 写入失败时返回的默认值,默认为 None。
193
215
  :return: 写入成功返回 True,失败返回默认值。
194
216
  """
195
- return self._dict_write_yaml(
217
+ return cls._dict_write_yaml(
196
218
  obj, path, mode, default_style, default_flow_style, canonical, indent,
197
219
  allow_unicode, encoding, sort_keys, except_result
198
220
  )
199
221
 
200
- def path_exists(self, obj, except_result=None):
222
+ @classmethod
223
+ def path_normal(cls, obj, except_result=None):
224
+ """
225
+ 规范化给定路径字符串,并处理可能的异常情况。
226
+
227
+ :param obj: str, 需要规范化的路径字符串。
228
+ :param except_result: 可选参数,指定在发生异常时返回的结果。默认为 None。
229
+ :return: 规范化后的路径字符串。如果发生异常,则返回 `except_result` 指定的值。
230
+ """
231
+ return cls._path_normal(obj, except_result)
232
+
233
+ @classmethod
234
+ def path_exists(cls, obj, except_result=None):
201
235
  """
202
236
  检查路径是否存在。
203
237
 
@@ -205,9 +239,10 @@ class MortalBases(MortalBasesMain):
205
239
  :param except_result: 检查失败时返回的默认值,默认为 None。
206
240
  :return: 路径存在返回 True,否则返回默认值。
207
241
  """
208
- return self._path_exists(obj, except_result)
242
+ return cls._path_exists(obj, except_result)
209
243
 
210
- def path_file(self, obj, except_result=None):
244
+ @classmethod
245
+ def path_file(cls, obj, except_result=None):
211
246
  """
212
247
  检查路径是否为文件。
213
248
 
@@ -215,9 +250,10 @@ class MortalBases(MortalBasesMain):
215
250
  :param except_result: 检查失败时返回的默认值,默认为 None。
216
251
  :return: 路径为文件返回 True,否则返回默认值。
217
252
  """
218
- return self._path_file(obj, except_result)
253
+ return cls._path_file(obj, except_result)
219
254
 
220
- def path_dir(self, obj, except_result=None):
255
+ @classmethod
256
+ def path_dir(cls, obj, except_result=None):
221
257
  """
222
258
  检查路径是否为目录。
223
259
 
@@ -225,9 +261,10 @@ class MortalBases(MortalBasesMain):
225
261
  :param except_result: 检查失败时返回的默认值,默认为 None。
226
262
  :return: 路径为目录返回 True,否则返回默认值。
227
263
  """
228
- return self._path_dir(obj, except_result)
264
+ return cls._path_dir(obj, except_result)
229
265
 
230
- def path_delete(self, obj, except_result=None):
266
+ @classmethod
267
+ def path_delete(cls, obj, except_result=None):
231
268
  """
232
269
  删除指定路径。
233
270
 
@@ -235,9 +272,10 @@ class MortalBases(MortalBasesMain):
235
272
  :param except_result: 删除失败时返回的默认值,默认为 None。
236
273
  :return: 删除成功返回 True,失败返回默认值。
237
274
  """
238
- return self._path_delete(obj, except_result)
275
+ return cls._path_delete(obj, except_result)
239
276
 
240
- def path_copy(self, src_obj, tar_obj, except_result=None):
277
+ @classmethod
278
+ def path_copy(cls, src_obj, tar_obj, except_result=None):
241
279
  """
242
280
  复制文件或目录。
243
281
 
@@ -246,9 +284,10 @@ class MortalBases(MortalBasesMain):
246
284
  :param except_result: 复制失败时返回的默认值,默认为 None。
247
285
  :return: 复制成功返回 True,失败返回默认值。
248
286
  """
249
- return self._path_copy(src_obj, tar_obj, except_result)
287
+ return cls._path_copy(src_obj, tar_obj, except_result)
250
288
 
251
- def path_move(self, src_obj, tar_obj, except_result=None):
289
+ @classmethod
290
+ def path_move(cls, src_obj, tar_obj, except_result=None):
252
291
  """
253
292
  移动文件或目录。
254
293
 
@@ -257,9 +296,10 @@ class MortalBases(MortalBasesMain):
257
296
  :param except_result: 移动失败时返回的默认值,默认为 None。
258
297
  :return: 移动成功返回 True,失败返回默认值。
259
298
  """
260
- return self._path_move(src_obj, tar_obj, except_result)
299
+ return cls._path_move(src_obj, tar_obj, except_result)
261
300
 
262
- def path_read(self, obj, mode='r', encoding=None, except_result=None):
301
+ @classmethod
302
+ def path_read(cls, obj, mode='r', encoding=None, except_result=None):
263
303
  """
264
304
  读取文件内容。
265
305
 
@@ -269,9 +309,10 @@ class MortalBases(MortalBasesMain):
269
309
  :param except_result: 读取失败时返回的默认值,默认为 None。
270
310
  :return: 文件内容或默认值。
271
311
  """
272
- return self._path_read(obj, mode, encoding, except_result)
312
+ return cls._path_read(obj, mode, encoding, except_result)
273
313
 
274
- def path_readline(self, obj, mode='r', encoding=None, except_result=None):
314
+ @classmethod
315
+ def path_readline(cls, obj, mode='r', encoding=None, except_result=None):
275
316
  """
276
317
  读取文件的一行内容。
277
318
 
@@ -281,9 +322,10 @@ class MortalBases(MortalBasesMain):
281
322
  :param except_result: 读取失败时返回的默认值,默认为 None。
282
323
  :return: 文件的一行内容或默认值。
283
324
  """
284
- return self._path_readline(obj, mode, encoding, except_result)
325
+ return cls._path_readline(obj, mode, encoding, except_result)
285
326
 
286
- def path_readlines(self, obj, mode='r', encoding=None, except_result=None):
327
+ @classmethod
328
+ def path_readlines(cls, obj, mode='r', encoding=None, except_result=None):
287
329
  """
288
330
  读取文件的所有行内容。
289
331
 
@@ -293,9 +335,10 @@ class MortalBases(MortalBasesMain):
293
335
  :param except_result: 读取失败时返回的默认值,默认为 None。
294
336
  :return: 文件的所有行内容或默认值。
295
337
  """
296
- return self._path_readlines(obj, mode, encoding, except_result)
338
+ return cls._path_readlines(obj, mode, encoding, except_result)
297
339
 
298
- def path_write(self, obj, mode='w', encoding=None, except_result=None):
340
+ @classmethod
341
+ def path_write(cls, obj, mode='w', encoding=None, except_result=None):
299
342
  """
300
343
  向文件写入内容。
301
344
 
@@ -305,9 +348,10 @@ class MortalBases(MortalBasesMain):
305
348
  :param except_result: 写入失败时返回的默认值,默认为 None。
306
349
  :return: 写入成功返回 True,失败返回默认值。
307
350
  """
308
- return self._path_write(obj, mode, encoding, except_result)
351
+ return cls._path_write(obj, mode, encoding, except_result)
309
352
 
310
- def path_writelines(self, obj, mode='w', encoding=None, except_result=None):
353
+ @classmethod
354
+ def path_writelines(cls, obj, mode='w', encoding=None, except_result=None):
311
355
  """
312
356
  向文件写入多行内容。
313
357
 
@@ -317,9 +361,10 @@ class MortalBases(MortalBasesMain):
317
361
  :param except_result: 写入失败时返回的默认值,默认为 None。
318
362
  :return: 写入成功返回 True,失败返回默认值。
319
363
  """
320
- return self._path_writelines(obj, mode, encoding, except_result)
364
+ return cls._path_writelines(obj, mode, encoding, except_result)
321
365
 
322
- def path_file_list(self, obj, except_result=None):
366
+ @classmethod
367
+ def path_file_list(cls, obj, except_result=None):
323
368
  """
324
369
  获取目录下的文件列表。
325
370
 
@@ -327,9 +372,10 @@ class MortalBases(MortalBasesMain):
327
372
  :param except_result: 获取失败时返回的默认值,默认为 None。
328
373
  :return: 文件列表或默认值。
329
374
  """
330
- return self._path_file_list(obj, except_result)
375
+ return cls._path_file_list(obj, except_result)
331
376
 
332
- def path_file_dict(self, obj, dirs=None, skip_dir=None, skip_file=None, except_result=None):
377
+ @classmethod
378
+ def path_file_dict(cls, obj, dirs=None, skip_dir=None, skip_file=None, except_result=None):
333
379
  """
334
380
  获取目录下的文件字典。
335
381
 
@@ -340,9 +386,10 @@ class MortalBases(MortalBasesMain):
340
386
  :param except_result: 获取失败时返回的默认值,默认为 None。
341
387
  :return: 文件字典或默认值。
342
388
  """
343
- return self._path_file_dict(obj, dirs, skip_dir, skip_file, except_result)
389
+ return cls._path_file_dict(obj, dirs, skip_dir, skip_file, except_result)
344
390
 
345
- def callable_name(self, obj, except_result=None):
391
+ @classmethod
392
+ def callable_name(cls, obj, except_result=None):
346
393
  """
347
394
  获取可调用对象的名称。
348
395
 
@@ -350,9 +397,10 @@ class MortalBases(MortalBasesMain):
350
397
  :param except_result: 获取失败时返回的默认值,默认为 None。
351
398
  :return: 可调用对象的名称或默认值。
352
399
  """
353
- return self._callable_name(obj, except_result)
400
+ return cls._callable_name(obj, except_result)
354
401
 
355
- def callable_ref(self, obj, except_result=None):
402
+ @classmethod
403
+ def callable_ref(cls, obj, except_result=None):
356
404
  """
357
405
  获取可调用对象的引用。
358
406
 
@@ -360,9 +408,10 @@ class MortalBases(MortalBasesMain):
360
408
  :param except_result: 获取失败时返回的默认值,默认为 None。
361
409
  :return: 可调用对象的引用或默认值。
362
410
  """
363
- return self._callable_ref(obj, except_result)
411
+ return cls._callable_ref(obj, except_result)
364
412
 
365
- def callable_obj(self, ref, except_result=None):
413
+ @classmethod
414
+ def callable_obj(cls, ref, except_result=None):
366
415
  """
367
416
  通过引用获取可调用对象。
368
417
 
@@ -370,9 +419,10 @@ class MortalBases(MortalBasesMain):
370
419
  :param except_result: 获取失败时返回的默认值,默认为 None。
371
420
  :return: 可调用对象或默认值。
372
421
  """
373
- return self._callable_obj(ref, except_result)
422
+ return cls._callable_obj(ref, except_result)
374
423
 
375
- def callable_convert_obj(self, obj, except_result=None):
424
+ @classmethod
425
+ def callable_convert_obj(cls, obj, except_result=None):
376
426
  """
377
427
  将对象转换为可调用对象。
378
428
 
@@ -380,9 +430,10 @@ class MortalBases(MortalBasesMain):
380
430
  :param except_result: 转换失败时返回的默认值,默认为 None。
381
431
  :return: 转换后的可调用对象或默认值。
382
432
  """
383
- return self._callable_convert_obj(obj, except_result)
433
+ return cls._callable_convert_obj(obj, except_result)
384
434
 
385
- def callable_check_args(self, func, args, kwargs):
435
+ @classmethod
436
+ def callable_check_args(cls, func, args, kwargs):
386
437
  """
387
438
  检查可调用对象的参数是否匹配。
388
439
 
@@ -391,9 +442,10 @@ class MortalBases(MortalBasesMain):
391
442
  :param kwargs: 关键字参数。
392
443
  :return: 参数匹配返回 True,否则返回 False。
393
444
  """
394
- return self._callable_check_args(func, args, kwargs)
445
+ return cls._callable_check_args(func, args, kwargs)
395
446
 
396
- def callable_coroutine(self, obj, except_result=None):
447
+ @classmethod
448
+ def callable_coroutine(cls, obj, except_result=None):
397
449
  """
398
450
  将对象转换为协程对象。
399
451
 
@@ -401,19 +453,22 @@ class MortalBases(MortalBasesMain):
401
453
  :param except_result: 转换失败时返回的默认值,默认为 None。
402
454
  :return: 转换后的协程对象或默认值。
403
455
  """
404
- return self._callable_coroutine(obj, except_result)
456
+ return cls._callable_coroutine(obj, except_result)
405
457
 
406
- def time_datetime(self, obj, except_result=None):
458
+ @classmethod
459
+ def time_datetime(cls, obj, tz=None, except_result=None):
407
460
  """
408
- 将对象转换为 datetime 对象。
461
+ 将对象转换为 datetime 对象。可以通过 `tz` 参数指定时区信息。
409
462
 
410
- :param obj: 要转换的对象。
463
+ :param obj: 要转换的对象,可以是字符串、时间戳或其他可转换为 `datetime` 的类型。
464
+ :param tz: 时区信息,用于指定转换后的 `datetime` 对象的时区,默认为 None。
411
465
  :param except_result: 转换失败时返回的默认值,默认为 None。
412
- :return: 转换后的 datetime 对象或默认值。
466
+ :return: 转换后的 `datetime` 对象,如果转换失败则返回 `except_result`。
413
467
  """
414
- return self._time_datetime(obj, except_result)
468
+ return cls._time_datetime(obj, tz, except_result)
415
469
 
416
- def time_timestamp(self, obj, except_result=None):
470
+ @classmethod
471
+ def time_timestamp(cls, obj, except_result=None):
417
472
  """
418
473
  将对象转换为时间戳。
419
474
 
@@ -421,9 +476,10 @@ class MortalBases(MortalBasesMain):
421
476
  :param except_result: 转换失败时返回的默认值,默认为 None。
422
477
  :return: 转换后的时间戳或默认值。
423
478
  """
424
- return self._time_timestamp(obj, except_result)
479
+ return cls._time_timestamp(obj, except_result)
425
480
 
426
- def time_ceil(self, obj, except_result=None):
481
+ @classmethod
482
+ def time_ceil(cls, obj, except_result=None):
427
483
  """
428
484
  将时间对象向上取整。
429
485
 
@@ -431,9 +487,10 @@ class MortalBases(MortalBasesMain):
431
487
  :param except_result: 取整失败时返回的默认值,默认为 None。
432
488
  :return: 取整后的时间对象或默认值。
433
489
  """
434
- return self._time_ceil(obj, except_result)
490
+ return cls._time_ceil(obj, except_result)
435
491
 
436
- def time_date(self, obj, except_result=None):
492
+ @classmethod
493
+ def time_date(cls, obj, except_result=None):
437
494
  """
438
495
  将对象转换为日期对象。
439
496
 
@@ -441,9 +498,10 @@ class MortalBases(MortalBasesMain):
441
498
  :param except_result: 转换失败时返回的默认值,默认为 None。
442
499
  :return: 转换后的日期对象或默认值。
443
500
  """
444
- return self._time_date(obj, except_result)
501
+ return cls._time_date(obj, except_result)
445
502
 
446
- def time_str(self, obj, fmt="%Y-%m-%d %H:%M:%S.%f", except_result=None):
503
+ @classmethod
504
+ def time_str(cls, obj, fmt="%Y-%m-%d %H:%M:%S.%f", except_result=None):
447
505
  """
448
506
  将时间对象转换为指定格式的字符串。
449
507
 
@@ -452,9 +510,10 @@ class MortalBases(MortalBasesMain):
452
510
  :param except_result: 如果转换失败,返回的默认值。
453
511
  :return: 格式化后的时间字符串,如果转换失败则返回except_result。
454
512
  """
455
- return self._time_str(obj, fmt, except_result)
513
+ return cls._time_str(obj, fmt, except_result)
456
514
 
457
- def time_timezone(self, obj, except_result=None):
515
+ @classmethod
516
+ def time_timezone(cls, obj, except_result=None):
458
517
  """
459
518
  获取时间对象的时区信息。
460
519
 
@@ -462,20 +521,10 @@ class MortalBases(MortalBasesMain):
462
521
  :param except_result: 如果获取时区信息失败,返回的默认值。
463
522
  :return: 时区信息,如果获取失败则返回except_result。
464
523
  """
465
- return self._time_timezone(obj, except_result)
466
-
467
- def time_timezone_datetime(self, obj, tz, except_result=None):
468
- """
469
- 将时间对象转换为指定时区的datetime对象。
470
-
471
- :param obj: 时间对象,可以是datetime、timestamp等。
472
- :param tz: 目标时区。
473
- :param except_result: 如果转换失败,返回的默认值。
474
- :return: 转换后的datetime对象,如果转换失败则返回except_result。
475
- """
476
- return self._time_timezone_datetime(obj, tz, except_result)
524
+ return cls._time_timezone(obj, except_result)
477
525
 
478
- def time_seconds(self, obj, except_result=None):
526
+ @classmethod
527
+ def time_seconds(cls, obj, except_result=None):
479
528
  """
480
529
  将时间对象转换为秒数。
481
530
 
@@ -483,18 +532,20 @@ class MortalBases(MortalBasesMain):
483
532
  :param except_result: 如果转换失败,返回的默认值。
484
533
  :return: 时间对象的秒数表示,如果转换失败则返回except_result。
485
534
  """
486
- return self._time_seconds(obj, except_result)
535
+ return cls._time_seconds(obj, except_result)
487
536
 
488
- def time_normalize(self, obj):
537
+ @classmethod
538
+ def time_normalize(cls, obj):
489
539
  """
490
540
  规范化时间对象,去除时区信息。
491
541
 
492
542
  :param obj: 时间对象,可以是datetime、timestamp等。
493
543
  :return: 规范化后的datetime对象。
494
544
  """
495
- return self._time_normalize(obj)
545
+ return cls._time_normalize(obj)
496
546
 
497
- def time_localize(self, obj, tz):
547
+ @classmethod
548
+ def time_localize(cls, obj, tz):
498
549
  """
499
550
  将时间对象本地化到指定时区。
500
551
 
@@ -502,4 +553,4 @@ class MortalBases(MortalBasesMain):
502
553
  :param tz: 目标时区。
503
554
  :return: 本地化后的datetime对象。
504
555
  """
505
- return self._time_localize(obj, tz)
556
+ return cls._time_localize(obj, tz)
Binary file
mortal_bases/base_main.so CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mortal-bases
3
- Version: 4.0.2
3
+ Version: 4.0.8
4
4
  Summary: 'mortal工具集::bases'
5
5
  Author: MJ
6
6
  License: UNKNOWN
@@ -0,0 +1,30 @@
1
+ mortal_bases/__init__.py,sha256=RIqHj8xWQfqpJ2XrmK4QKth9lD-A2eTQGTHaUnfLdoM,21192
2
+ mortal_bases/base_main.pyd,sha256=2HWEEHnYSuDH7_JhSMsK-cWclZ6Cdhvg_MR5tGzyRs4,29696
3
+ mortal_bases/base_main.so,sha256=kv6Rqndq4cfcVYx-RyrQOCSsQP8FmMeXDmVNKPBcNGE,103624
4
+ mortal_bases/bases/__init__.py,sha256=ZnVw5ja4ExoyMmUkfMGj0cqPw9nEXPHWs0iAZlLmTtw,157
5
+ mortal_bases/bases/auth_base.pyd,sha256=o6gjLu8fMqI1rZDVe0pismUj7Lz7GzAM9zufRDmSlJM,111104
6
+ mortal_bases/bases/auth_base.so,sha256=L63pUuZl1YNBm5X5Bv2cRz0Km4-OGWkmwfDMe5NkZzw,662536
7
+ mortal_bases/bases/auth_code_base.pyd,sha256=gNZucCKp9lKp_-GytAAq_gGCsZlvILgoTTx1JZLofes,22016
8
+ mortal_bases/bases/auth_code_base.so,sha256=NWc2Qu-fsmVClr7zVCvlj1GvRwAcEFE_lnK6bb_FhA4,69984
9
+ mortal_bases/bases/auth_json_base.pyd,sha256=QXDvZ63udPKfygW5GB7lQVdbCZlSB6RT8mWHFOYLoCA,29184
10
+ mortal_bases/bases/auth_json_base.so,sha256=JzNuRyrMylVfbzo5zDMDxaD6C_HdQZRw3fL98yocrIQ,94336
11
+ mortal_bases/bases/callable_base.pyd,sha256=-bs2AJJO50vIPWT27VTYvfeqSyIXewphZIdX6OjGOuI,97280
12
+ mortal_bases/bases/callable_base.so,sha256=eLCCWnv01Vrfh51rnii27dYIUV43_XNLu1UaVLMERcw,537376
13
+ mortal_bases/bases/common_base.pyd,sha256=TVROQPpqCOjJtbtGk8-XCj3W_QhWRu0fQD3OEIOKCiM,71680
14
+ mortal_bases/bases/common_base.so,sha256=waqk9KFt29_nDZ4TgiOKSy0uWqnZJx0arBW1vlK97Kk,350880
15
+ mortal_bases/bases/dataframe_base.pyd,sha256=-crIfJhfo80oDj0JzrKDNVWXcHB0FC54XEIiKpBQHyY,43520
16
+ mortal_bases/bases/dataframe_base.so,sha256=Yw5Z2ZbzmL5CoKGsYJzrckZVQgFV_RWCKeymjci56wg,213536
17
+ mortal_bases/bases/decorator_base.pyd,sha256=oeBu6DVmh6d7WIZk3alex7KxBwE4DY5sGmeBWSrjbH8,55296
18
+ mortal_bases/bases/decorator_base.so,sha256=LPM8GPNiXXmHslxve3ZjA-Xf2oS5Da_ksYxtxyX3NPY,275712
19
+ mortal_bases/bases/dict_base.pyd,sha256=bqKCQPxLkZ2It6KP-gz5zOTa__HVFvLXAG0-ypLj3KY,79360
20
+ mortal_bases/bases/dict_base.so,sha256=xgqnk9bmIKoTVuD0Cbah_jo6zG8eZzYy4yFPdfp24fg,464632
21
+ mortal_bases/bases/list_base.pyd,sha256=fGp6xeRyqmda646-6qK84qKamAI7Rk5YTBuxW2gaEJc,45056
22
+ mortal_bases/bases/list_base.so,sha256=bv_ephKw1a7NilOIO-vkGsDT0-ImATj1RRQvoT52KM0,213640
23
+ mortal_bases/bases/path_base.pyd,sha256=__7BL5OBvgJDfjUggbmdNF1LUFIhmQX6CSx1THtF0NM,128512
24
+ mortal_bases/bases/path_base.so,sha256=JchFQWosLo1Tb7lVEQF3seAH9titcVSz-7md4e_8B5o,813968
25
+ mortal_bases/bases/time_base.pyd,sha256=wF2ddNF00TENmFvJ7_7XIE_1owDLB1YMeU57-V_7jj0,124928
26
+ mortal_bases/bases/time_base.so,sha256=j7xyZRysUq9Rod0YKxNWQ02FutWP_86L_sMKWAQgKko,720776
27
+ mortal_bases-4.0.8.dist-info/METADATA,sha256=f9yWyMxQy7r1obJL496Xy97Z8mUoqAhjaT8_wJMtc-s,512
28
+ mortal_bases-4.0.8.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
29
+ mortal_bases-4.0.8.dist-info/top_level.txt,sha256=YQrxi6Bc5goy2D3PDn9z4-K6DkVWeM21uRlljJgOmGg,13
30
+ mortal_bases-4.0.8.dist-info/RECORD,,
@@ -1,30 +0,0 @@
1
- mortal_bases/__init__.py,sha256=jE56ikji5cmr5lIue3T1i8Dd7yaoAzjv8uHRk3vPReQ,20000
2
- mortal_bases/base_main.pyd,sha256=XDdFoXAXHbjueYg91A_ROvELQOdq77RvT4-OMks-8bs,53248
3
- mortal_bases/base_main.so,sha256=huq0lpR-04dO9KGqUdZvwbZyi4oMXo1cF7_ZrcccXmw,251864
4
- mortal_bases/bases/__init__.py,sha256=ZnVw5ja4ExoyMmUkfMGj0cqPw9nEXPHWs0iAZlLmTtw,157
5
- mortal_bases/bases/auth_base.pyd,sha256=4JsSFGwjErxBHiBdv-ZWog1ZBYh0eGjlnLUs8GFTX0Q,111104
6
- mortal_bases/bases/auth_base.so,sha256=L63pUuZl1YNBm5X5Bv2cRz0Km4-OGWkmwfDMe5NkZzw,662536
7
- mortal_bases/bases/auth_code_base.pyd,sha256=gNZucCKp9lKp_-GytAAq_gGCsZlvILgoTTx1JZLofes,22016
8
- mortal_bases/bases/auth_code_base.so,sha256=NWc2Qu-fsmVClr7zVCvlj1GvRwAcEFE_lnK6bb_FhA4,69984
9
- mortal_bases/bases/auth_json_base.pyd,sha256=QXDvZ63udPKfygW5GB7lQVdbCZlSB6RT8mWHFOYLoCA,29184
10
- mortal_bases/bases/auth_json_base.so,sha256=JzNuRyrMylVfbzo5zDMDxaD6C_HdQZRw3fL98yocrIQ,94336
11
- mortal_bases/bases/callable_base.pyd,sha256=hD1RkymiFCi7d3s3w4S4pWDji1CQ35AIaHaxSSYQoxA,97280
12
- mortal_bases/bases/callable_base.so,sha256=eLCCWnv01Vrfh51rnii27dYIUV43_XNLu1UaVLMERcw,537376
13
- mortal_bases/bases/common_base.pyd,sha256=MtQ68c0uw6V9mf_2OhWrb-6LeJGyqlGo_NAIgaIqm20,71680
14
- mortal_bases/bases/common_base.so,sha256=waqk9KFt29_nDZ4TgiOKSy0uWqnZJx0arBW1vlK97Kk,350880
15
- mortal_bases/bases/dataframe_base.pyd,sha256=-crIfJhfo80oDj0JzrKDNVWXcHB0FC54XEIiKpBQHyY,43520
16
- mortal_bases/bases/dataframe_base.so,sha256=Yw5Z2ZbzmL5CoKGsYJzrckZVQgFV_RWCKeymjci56wg,213536
17
- mortal_bases/bases/decorator_base.pyd,sha256=E98lVv-LUL_4BKuW716NiaZh2gJ6WWX0DYs9CkmqwNc,50176
18
- mortal_bases/bases/decorator_base.so,sha256=-P8KP2l5TrKvSmmAhUtJ_34-WQn-IHLCXLT2CnAYXo8,252048
19
- mortal_bases/bases/dict_base.pyd,sha256=QEHzvUZw8KuFEMFU3qC3KS0B_BKibEexRXDz1mQNWV0,79360
20
- mortal_bases/bases/dict_base.so,sha256=xgqnk9bmIKoTVuD0Cbah_jo6zG8eZzYy4yFPdfp24fg,464632
21
- mortal_bases/bases/list_base.pyd,sha256=Vhzs2Lp_p6G8qb8ADmHjH0uSa4MR9edf-0CUe95N0Zo,45056
22
- mortal_bases/bases/list_base.so,sha256=bv_ephKw1a7NilOIO-vkGsDT0-ImATj1RRQvoT52KM0,213640
23
- mortal_bases/bases/path_base.pyd,sha256=9FBh5HV5q-8J0Y1C5TyKFlSQ013n_ybRBTIuib7BGO8,125440
24
- mortal_bases/bases/path_base.so,sha256=IwN4oCE_5ZD__fLsiNbkIcPq-l4N3fRkhqpoagyBHhQ,795232
25
- mortal_bases/bases/time_base.pyd,sha256=Zv4DxtgH8h5IMXKna68D-q6F8mbq6-ULgDe0r6se1Xk,129536
26
- mortal_bases/bases/time_base.so,sha256=3wzUt1pizJuFWMgauHCPhwTDABQTXL74hfTbIXOinYg,751776
27
- mortal_bases-4.0.2.dist-info/METADATA,sha256=Tw_oeJ14FzAqf4vtGwZshjsM4nqX-khkHWM3eaFesNI,512
28
- mortal_bases-4.0.2.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
29
- mortal_bases-4.0.2.dist-info/top_level.txt,sha256=YQrxi6Bc5goy2D3PDn9z4-K6DkVWeM21uRlljJgOmGg,13
30
- mortal_bases-4.0.2.dist-info/RECORD,,