funcguard 0.2.47__tar.gz → 0.2.48__tar.gz
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.
- {funcguard-0.2.47 → funcguard-0.2.48}/PKG-INFO +1 -1
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/statistics/mask_utils.py +22 -4
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard.egg-info/PKG-INFO +1 -1
- {funcguard-0.2.47 → funcguard-0.2.48}/setup.py +1 -1
- {funcguard-0.2.47 → funcguard-0.2.48}/LICENSE +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/README.md +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/__init__.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/calculate.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/core.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/data_models/__init__.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/data_models/request_models.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/ip_utils.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/log_utils.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/__init__.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/convert_utils.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/date_utils.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/fill_round.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/filter.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/json_utils/__init__.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/json_utils/json_parser.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/statistics/__init__.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/statistics/agg_utils.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/statistics/count_utils.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/pd_utils/statistics/df_statistics.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/printer.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/time_utils.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard/tools.py +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard.egg-info/SOURCES.txt +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard.egg-info/dependency_links.txt +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard.egg-info/not-zip-safe +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard.egg-info/requires.txt +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/funcguard.egg-info/top_level.txt +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/setup.cfg +0 -0
- {funcguard-0.2.47 → funcguard-0.2.48}/tests/__init__.py +0 -0
|
@@ -1,11 +1,21 @@
|
|
|
1
|
+
import numpy as np
|
|
1
2
|
import pandas as pd
|
|
2
3
|
from typing import List, Tuple, Optional
|
|
3
4
|
|
|
4
5
|
|
|
6
|
+
|
|
5
7
|
def _is_empty(x):
|
|
6
8
|
"""检查值是否为空(NaN/None、空字符串、空列表、空元组、空字典、空集合)"""
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
# 处理 numpy/pandas 数组类型(0维数组也会被isinstance识别)
|
|
10
|
+
if isinstance(x, (np.ndarray, pd.Series)):
|
|
11
|
+
return x.size == 0
|
|
12
|
+
# 使用 try-except 避免 pd.isna() 在某些类型上的歧义
|
|
13
|
+
try:
|
|
14
|
+
if pd.isna(x):
|
|
15
|
+
return True
|
|
16
|
+
except ValueError:
|
|
17
|
+
# pd.isna() 返回数组或产生歧义时,说明不是空值
|
|
18
|
+
pass
|
|
9
19
|
if isinstance(x, (str, list, tuple, dict, set)):
|
|
10
20
|
return len(x) == 0
|
|
11
21
|
return False
|
|
@@ -13,8 +23,16 @@ def _is_empty(x):
|
|
|
13
23
|
|
|
14
24
|
def _is_not_empty(x):
|
|
15
25
|
"""检查值是否非空(与_is_empty相反)"""
|
|
16
|
-
|
|
17
|
-
|
|
26
|
+
# 处理 numpy/pandas 数组类型
|
|
27
|
+
if isinstance(x, (np.ndarray, pd.Series)):
|
|
28
|
+
return x.size > 0
|
|
29
|
+
# 使用 try-except 避免 pd.isna() 在某些类型上的歧义
|
|
30
|
+
try:
|
|
31
|
+
if pd.isna(x):
|
|
32
|
+
return False
|
|
33
|
+
except ValueError:
|
|
34
|
+
# pd.isna() 返回数组或产生歧义时,说明有值
|
|
35
|
+
return True
|
|
18
36
|
if isinstance(x, (str, list, tuple, dict, set)):
|
|
19
37
|
return len(x) > 0
|
|
20
38
|
return True
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|