import io def sanitize_filename(s: str) -> str: return '.'.join([sanitize_filename_part(p) for p in s.split('.')]) def sanitize_filename_part(s: str) -> str: alnum_or_space = ''.join([c if c.isalnum() else ' ' for c in s]) return '-'.join(alnum_or_space.split())