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