2013-10-07 00:15:47 -07:00
|
|
|
""" Helper methods for various modules. """
|
|
|
|
|
2014-01-19 19:10:40 -08:00
|
|
|
import datetime
|
2013-10-07 00:15:47 -07:00
|
|
|
import re
|
|
|
|
|
2013-12-07 12:54:19 -08:00
|
|
|
RE_SANITIZE_FILENAME = re.compile(r"(~|(\.\.)|/|\+)")
|
|
|
|
RE_SLUGIFY = re.compile(r'[^A-Za-z0-9_]+')
|
|
|
|
|
2014-01-19 19:10:40 -08:00
|
|
|
DATE_STR_FORMAT = "%H:%M:%S %d-%m-%Y"
|
|
|
|
|
2013-11-10 16:46:48 -08:00
|
|
|
|
2013-10-07 00:15:47 -07:00
|
|
|
def sanitize_filename(filename):
|
|
|
|
""" Sanitizes a filename by removing .. / and \\. """
|
2013-12-07 12:54:19 -08:00
|
|
|
return RE_SANITIZE_FILENAME.sub("", filename)
|
|
|
|
|
|
|
|
|
|
|
|
def slugify(text):
|
|
|
|
""" Slugifies a given text. """
|
|
|
|
text = text.strip().replace(" ", "_")
|
|
|
|
|
|
|
|
return RE_SLUGIFY.sub("", text)
|
2014-01-19 19:10:40 -08:00
|
|
|
|
|
|
|
|
|
|
|
def datetime_to_str(dattim):
|
|
|
|
""" Converts datetime to a string format.
|
|
|
|
|
|
|
|
@rtype : str
|
|
|
|
"""
|
|
|
|
return dattim.strftime(DATE_STR_FORMAT)
|
|
|
|
|
|
|
|
|
|
|
|
def str_to_datetime(dt_str):
|
|
|
|
""" Converts a string to a datetime object.
|
|
|
|
|
|
|
|
@rtype: datetime
|
|
|
|
"""
|
|
|
|
try:
|
|
|
|
return datetime.datetime.strptime(dt_str, DATE_STR_FORMAT)
|
|
|
|
except ValueError: # If dt_str did not match our format
|
|
|
|
return None
|