◐ Shell
clean mode source ↗

Issue 24246: mimetypes.guess_extension returns different values when init() is called several times

Hi,

Following the principle of least astonishment, I would expect the function to return the same value.

Python 2.7.3 (default, Mar 13 2014, 11:03:55) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mimetypes
>>> mimetypes.init()
>>> mimetypes.guess_extension('text/plain') 
'.ksh'
>>> mimetypes.init()
>>> mimetypes.guess_extension('text/plain') 
'.asc'
>>> mimetypes.init()
>>> mimetypes.guess_extension('text/plain') 
'.txt'

It seems that each call overrides the global dictionnary, which changes the iteration order of the next call.

Best Regards,
Emmanuel