Skip to content

Commit ef38b94

Browse files
committed
feat: check blanks
1 parent c625281 commit ef38b94

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

swanlab/utils/file.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,19 @@ def get_a_lock(file_path: str, mode: str = "r+", encoding="utf-8") -> TextIOWrap
5757
return f
5858

5959

60+
def check_string(target: str):
61+
"""
62+
不能全空格,也不能为空字符串
63+
"""
64+
# 利用正则表达式匹配非空格字符
65+
if re.match(r"^\s*$", target):
66+
return False
67+
# 利用正则表达式匹配非空字符串
68+
if re.match(r"^\s*$", target) or target == "":
69+
return False
70+
return True
71+
72+
6073
def check_tag_format(key: str, auto_cut=True) -> str:
6174
"""检查tag字符串格式,必须是0-9a-zA-Z _-和/组成的字符串(包含空格),并且开头必须是0-9a-zA-Z
6275
最大长度为255字符
@@ -69,13 +82,14 @@ def check_tag_format(key: str, auto_cut=True) -> str:
6982
max_len = 255
7083
if not isinstance(key, str):
7184
raise TypeError(f"tag: {key} is not a string")
72-
85+
if not check_string(key):
86+
raise ValueError(f"tag: {key} is an empty string")
7387
# 检查长度
7488
if auto_cut and len(key) > max_len:
7589
key = key[:max_len]
7690
elif not auto_cut and len(key) > max_len:
7791
raise IndexError(f"tag: {key} is too long, which must be less than {max_len} characters")
78-
return key
92+
return key.strip()
7993

8094

8195
def check_exp_name_format(name: str, auto_cut: bool = True) -> str:
@@ -107,13 +121,14 @@ def check_exp_name_format(name: str, auto_cut: bool = True) -> str:
107121
max_len = 100
108122
if not isinstance(name, str) or name == "":
109123
raise TypeError(f"name: {name} is not a string")
110-
124+
if not check_string(name):
125+
raise ValueError(f"name: {name} is an empty string")
111126
# 检查长度
112127
if auto_cut and len(name) > max_len:
113128
name = name[:max_len]
114129
elif not auto_cut and len(name) > max_len:
115130
raise IndexError(f"name: {name} is too long, which must be less than {max_len} characters")
116-
return name
131+
return name.strip()
117132

118133

119134
def check_desc_format(description: str, auto_cut: bool = True):
@@ -177,13 +192,14 @@ def check_proj_name_format(name: str, auto_cut: bool = True) -> str:
177192
max_len = 100
178193
if not isinstance(name, str) or name == "":
179194
raise TypeError(f"name: {name} is not a string")
180-
195+
if not check_string(name):
196+
raise ValueError(f"name: {name} is an empty string")
181197
# 检查长度
182198
if auto_cut and len(name) > max_len:
183199
name = name[:max_len]
184200
elif not auto_cut and len(name) > max_len:
185201
raise IndexError(f"name: {name} is too long, which must be less than {max_len} characters")
186-
return name
202+
return name.strip()
187203

188204

189205
# ---------------------------------- 一些格式检查的工具函数 ----------------------------------

0 commit comments

Comments
 (0)