[Toaster] [review-request][PATCH] toaster: Use Python's mimetypes module
Brian Avery
avery.brian at gmail.com
Tue Oct 6 20:05:13 PDT 2015
pushed to bitbake and to toaster-next.
-b
On Mon, Sep 28, 2015 at 2:02 AM, Ed Bartosh <ed.bartosh at linux.intel.com> wrote:
> Hi Elliot,
>
> Patch looks good to me, thanks.
>
> Acked-by: Ed Bartosh <ed.bartosh at linux.intel.com>
>
> On Thu, Sep 24, 2015 at 01:34:24PM +0100, Elliot Smith wrote:
>> 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.
>>
>> Signed-off-by: Elliot Smith <elliot.smith at intel.com>
>> ---
>> bitbake/lib/toaster/toastergui/views.py | 15 +++++++++++----
>> bitbake/toaster-requirements.txt | 1 -
>> 2 files changed, 11 insertions(+), 5 deletions(-)
>>
>> diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
>> index 8689a12..0a2a959 100755
>> --- a/bitbake/lib/toaster/toastergui/views.py
>> +++ b/bitbake/lib/toaster/toastergui/views.py
>> @@ -46,19 +46,26 @@ from toastergui.templatetags.projecttags import json as jsonfilter
>> import json
>> from os.path import dirname
>> import itertools
>> +import mimetypes
>>
>> -import magic
>> import logging
>>
>> logger = logging.getLogger("toaster")
>>
>> class MimeTypeFinder(object):
>> - _magic = magic.Magic(flags = magic.MAGIC_MIME_TYPE)
>> + # setting this to False enables additional non-standard mimetypes
>> + # to be included in the guess
>> + _strict = False
>>
>> - # returns the mimetype for a file path
>> + # returns the mimetype for a file path as a string,
>> + # or 'application/octet-stream' if the type couldn't be guessed
>> @classmethod
>> def get_mimetype(self, path):
>> - return self._magic.id_filename(path)
>> + guess = mimetypes.guess_type(path, self._strict)
>> + guessed_type = guess[0]
>> + if guessed_type == None:
>> + guessed_type = 'application/octet-stream'
>> + return guessed_type
>>
>> # all new sessions should come through the landing page;
>> # determine in which mode we are running in, and redirect appropriately
>> diff --git a/bitbake/toaster-requirements.txt b/bitbake/toaster-requirements.txt
>> index c4a2221..1d7d21b 100644
>> --- a/bitbake/toaster-requirements.txt
>> +++ b/bitbake/toaster-requirements.txt
>> @@ -2,5 +2,4 @@ Django==1.6
>> South==0.8.4
>> argparse==1.2.1
>> wsgiref==0.1.2
>> -filemagic==1.6
>> beautifulsoup4>=4.4.0
>> --
>> Elliot Smith
>> Software Engineer
>> Intel OTC
>>
>> ---------------------------------------------------------------------
>> Intel Corporation (UK) Limited
>> Registered No. 1134945 (England)
>> Registered Office: Pipers Way, Swindon SN3 1RJ
>> VAT No: 860 2173 47
>>
>> This e-mail and any attachments may contain confidential material for
>> the sole use of the intended recipient(s). Any review or distribution
>> by others is strictly prohibited. If you are not the intended
>> recipient, please contact the sender and delete all copies.
>>
>> --
>> _______________________________________________
>> toaster mailing list
>> toaster at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/toaster
>
> --
> --
> Regards,
> Ed
> --
> _______________________________________________
> toaster mailing list
> toaster at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster
More information about the toaster
mailing list