From 71399896490219b495be18ba60fd5b20edb79e68 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 21 Nov 2011 05:43:47 -0400 Subject: [PATCH] Added a mimetype_only=False argument to the get_mimetype method to skip detecting the encoding when not needed resulting in a slight speedup --- apps/mimetype/api.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/mimetype/api.py b/apps/mimetype/api.py index 3390e5995f..4888aa5b8d 100644 --- a/apps/mimetype/api.py +++ b/apps/mimetype/api.py @@ -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)