校验虚拟环境名称合法性
(name: str)
| 1338 | |
| 1339 | @staticmethod |
| 1340 | def _is_valid_env_name(name: str) -> bool: |
| 1341 | """校验虚拟环境名称合法性""" |
| 1342 | # Linux文件系统命名规则 |
| 1343 | forbidden_chars = {'/', '\\', ':', '*', '?', '"', '<', '>', '|', '\0'} |
| 1344 | max_length = 255 # 最大文件名长度 |
| 1345 | |
| 1346 | # 基本规则检查 |
| 1347 | if not name: |
| 1348 | return False |
| 1349 | if any(char in forbidden_chars for char in name): |
| 1350 | return False |
| 1351 | if len(name) > max_length: |
| 1352 | return False |
| 1353 | if name in ('.', '..'): # 保留名称 |
| 1354 | return False |
| 1355 | |
| 1356 | # 增强校验:推荐使用小写字母、数字、下划线和连字符 |
| 1357 | # if not re.match(r'^[a-z0-9_.-]+$', name): |
| 1358 | # return False |
| 1359 | |
| 1360 | return True |
| 1361 | |
| 1362 | def create_python_env(self, |
| 1363 | venv_name: str, |