@@ -57,6 +57,19 @@ def get_a_lock(file_path: str, mode: str = "r+", encoding="utf-8") -> TextIOWrap
57
57
return f
58
58
59
59
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
+
60
73
def check_tag_format (key : str , auto_cut = True ) -> str :
61
74
"""检查tag字符串格式,必须是0-9a-zA-Z _-和/组成的字符串(包含空格),并且开头必须是0-9a-zA-Z
62
75
最大长度为255字符
@@ -69,13 +82,14 @@ def check_tag_format(key: str, auto_cut=True) -> str:
69
82
max_len = 255
70
83
if not isinstance (key , str ):
71
84
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" )
73
87
# 检查长度
74
88
if auto_cut and len (key ) > max_len :
75
89
key = key [:max_len ]
76
90
elif not auto_cut and len (key ) > max_len :
77
91
raise IndexError (f"tag: { key } is too long, which must be less than { max_len } characters" )
78
- return key
92
+ return key . strip ()
79
93
80
94
81
95
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:
107
121
max_len = 100
108
122
if not isinstance (name , str ) or name == "" :
109
123
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" )
111
126
# 检查长度
112
127
if auto_cut and len (name ) > max_len :
113
128
name = name [:max_len ]
114
129
elif not auto_cut and len (name ) > max_len :
115
130
raise IndexError (f"name: { name } is too long, which must be less than { max_len } characters" )
116
- return name
131
+ return name . strip ()
117
132
118
133
119
134
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:
177
192
max_len = 100
178
193
if not isinstance (name , str ) or name == "" :
179
194
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" )
181
197
# 检查长度
182
198
if auto_cut and len (name ) > max_len :
183
199
name = name [:max_len ]
184
200
elif not auto_cut and len (name ) > max_len :
185
201
raise IndexError (f"name: { name } is too long, which must be less than { max_len } characters" )
186
- return name
202
+ return name . strip ()
187
203
188
204
189
205
# ---------------------------------- 一些格式检查的工具函数 ----------------------------------
0 commit comments