web/ldt/utils/path.py
author wakimd
Fri, 22 Oct 2010 18:14:30 +0200
changeset 1 eb9188f2ee4f
permissions -rw-r--r--
first commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
     1
"""
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
     2
Some small file related utilities
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
     3
"""
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
     4
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
     5
import unicodedata
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
     6
import string
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
     7
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
     8
validFilenameChars = "-_.() %s%s" % (string.ascii_letters, string.digits)
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
     9
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
    10
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
    11
def sanitize_filename(filename):
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
    12
    cleanedFilename = unicodedata.normalize('NFKD', filename).encode('ASCII', 'ignore').lower()
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
    13
    return ''.join(c for c in cleanedFilename if c in validFilenameChars).replace(' ','_')
eb9188f2ee4f first commit
wakimd
parents:
diff changeset
    14