Added a mimetype_only=False argument to the get_mimetype method to skip detecting the encoding when not needed resulting in a slight speedup

This commit is contained in:
Roberto Rosario
2011-11-21 05:43:47 -04:00
parent 21927c00bb
commit 7139989649

View File

@@ -84,7 +84,7 @@ def get_error_icon_file_path():
return os.path.join(settings.STATIC_ROOT, MIMETYPE_ICONS_DIRECTORY_NAME, ERROR_FILE_NAME)
def get_mimetype(file_description, filepath):
def get_mimetype(file_description, filepath, mimetype_only=False):
"""
Determine a file's mimetype by calling the system's libmagic
library via python-magic or fallback to use python's mimetypes
@@ -95,9 +95,10 @@ def get_mimetype(file_description, filepath):
if USE_PYTHON_MAGIC:
mime = magic.Magic(mime=True)
file_mimetype = mime.from_buffer(file_description.read())
file_description.seek(0)
mime_encoding = magic.Magic(mime_encoding=True)
file_mime_encoding = mime_encoding.from_buffer(file_description.read())
if not mimetype_only:
file_description.seek(0)
mime_encoding = magic.Magic(mime_encoding=True)
file_mime_encoding = mime_encoding.from_buffer(file_description.read())
else:
path, filename = os.path.split(filepath)
file_mimetype, file_mime_encoding = mimetypes.guess_type(filename)