msd: allow any printable characters in image name

This commit is contained in:
Devaev Maxim
2019-10-15 08:21:04 +03:00
parent e58ad66da9
commit 7b4818ed15
4 changed files with 70 additions and 38 deletions

View File

@@ -51,6 +51,25 @@ def valid_abs_path_exists(arg: Any, name: str="") -> str:
return valid_abs_path(arg, exists=True, name=name)
def valid_printable_filename(arg: Any, name: str="") -> str:
if not name:
name = "printable filename"
if len(str(arg).strip()) == 0:
arg = None
arg = check_not_none_string(arg, name)
if "/" in arg or "\0" in arg or arg in [".", ".."]:
raise_error(arg, name)
arg = "".join(
(ch if ch.isprintable() else "_")
for ch in arg[:255]
)
return arg
# =====
def valid_unix_mode(arg: Any) -> int:
return int(valid_number(arg, min=0, name="UNIX mode"))