summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2015-10-06 20:05:21 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-10-11 05:33:03 +0100
commitce9011a9dea4d4f8040170c28031cfbcadfbfd81 (patch)
tree8702c96e96d90f52d208eb0ea535872ba9906cb3
parent466bbec24250086fb014fc34649da94f78d7f00f (diff)
downloadpoky-ce9011a9dea4d4f8040170c28031cfbcadfbfd81.tar.gz
bitbake: toaster: Use Python's mimetypes module
filemagic is used to guess the mimetype of files when a user requests a download. However, this adds a dependency on an external library. Python does have a mimetypes module, though this guesses the mimetype rather than doing anything clever with the actual file content. But for our purposes, it's more than adequate. (NB Django also uses this module when serving static files.) Use this instead of relying on any external code, and remove the filemagic dependency. (Bitbake rev: 0dd0ac25d54c73f13812db04826b57b3d16ea43f) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: brian avery <avery.brian@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xbitbake/lib/toaster/toastergui/views.py15
-rw-r--r--bitbake/toaster-requirements.txt1
2 files changed, 11 insertions, 5 deletions
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index db791cfd80..6e5815595f 100755
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -47,19 +47,26 @@ import json
47from os.path import dirname 47from os.path import dirname
48from functools import wraps 48from functools import wraps
49import itertools 49import itertools
50import mimetypes
50 51
51import magic
52import logging 52import logging
53 53
54logger = logging.getLogger("toaster") 54logger = logging.getLogger("toaster")
55 55
56class MimeTypeFinder(object): 56class MimeTypeFinder(object):
57 _magic = magic.Magic(flags = magic.MAGIC_MIME_TYPE) 57 # setting this to False enables additional non-standard mimetypes
58 # to be included in the guess
59 _strict = False
58 60
59 # returns the mimetype for a file path 61 # returns the mimetype for a file path as a string,
62 # or 'application/octet-stream' if the type couldn't be guessed
60 @classmethod 63 @classmethod
61 def get_mimetype(self, path): 64 def get_mimetype(self, path):
62 return self._magic.id_filename(path) 65 guess = mimetypes.guess_type(path, self._strict)
66 guessed_type = guess[0]
67 if guessed_type == None:
68 guessed_type = 'application/octet-stream'
69 return guessed_type
63 70
64# all new sessions should come through the landing page; 71# all new sessions should come through the landing page;
65# determine in which mode we are running in, and redirect appropriately 72# determine in which mode we are running in, and redirect appropriately
diff --git a/bitbake/toaster-requirements.txt b/bitbake/toaster-requirements.txt
index c4a2221553..1d7d21b331 100644
--- a/bitbake/toaster-requirements.txt
+++ b/bitbake/toaster-requirements.txt
@@ -2,5 +2,4 @@ Django==1.6
2South==0.8.4 2South==0.8.4
3argparse==1.2.1 3argparse==1.2.1
4wsgiref==0.1.2 4wsgiref==0.1.2
5filemagic==1.6
6beautifulsoup4>=4.4.0 5beautifulsoup4>=4.4.0