web/ldt/utils/path.py
author wakimd
Wed, 17 Nov 2010 18:57:34 +0100
changeset 16 d0f617472760
parent 1 3a30d255c235
permissions -rw-r--r--
Added tests on server + some corrections on views
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
     1
"""
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
     2
Some small file related utilities
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
     3
"""
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
     4
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
     5
import unicodedata
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
     6
import string
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
     7
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
     8
validFilenameChars = "-_.() %s%s" % (string.ascii_letters, string.digits)
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
     9
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
    10
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
    11
def sanitize_filename(filename):
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
    12
    cleanedFilename = unicodedata.normalize('NFKD', filename).encode('ASCII', 'ignore').lower()
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
    13
    return ''.join(c for c in cleanedFilename if c in validFilenameChars).replace(' ','_')
3a30d255c235 First version of API with tests
wakimd
parents:
diff changeset
    14