Skip to content

bpo-4963: Fix for initialization and non-deterministic behavior issues in mimetypes #3062

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Jun 24, 2019
Merged
Prev Previous commit
Next Next commit
Remove use of OrderedDict
  • Loading branch information
davidkhess committed May 21, 2019
commit 59d1128f287347315a3561db8baa49360d05a1c8
280 changes: 139 additions & 141 deletions Lib/mimetypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@
except ImportError:
_winreg = None

from collections import OrderedDict

__all__ = [
"knownfiles", "inited", "MimeTypes",
"guess_type", "guess_all_extensions", "guess_extension",
Expand Down Expand Up @@ -411,150 +409,150 @@ def _default_mime_types():
# If you add to these, please keep them sorted by mime type.
# Make sure the entry with the preferred file extension for a particular mime type
# appears before any others of the same mimetype.
types_map = _types_map_default = OrderedDict([
('.js' , 'application/javascript'),
('.json' , 'application/json'),
('.doc' , 'application/msword'),
('.dot' , 'application/msword'),
('.wiz' , 'application/msword'),
('.bin' , 'application/octet-stream'),
('.a' , 'application/octet-stream'),
('.dll' , 'application/octet-stream'),
('.exe' , 'application/octet-stream'),
('.o' , 'application/octet-stream'),
('.obj' , 'application/octet-stream'),
('.so' , 'application/octet-stream'),
('.oda' , 'application/oda'),
('.pdf' , 'application/pdf'),
('.p7c' , 'application/pkcs7-mime'),
('.ps' , 'application/postscript'),
('.ai' , 'application/postscript'),
('.eps' , 'application/postscript'),
('.m3u' , 'application/vnd.apple.mpegurl'),
('.m3u8' , 'application/vnd.apple.mpegurl'),
('.xls' , 'application/vnd.ms-excel'),
('.xlb' , 'application/vnd.ms-excel'),
('.ppt' , 'application/vnd.ms-powerpoint'),
('.pot' , 'application/vnd.ms-powerpoint'),
('.ppa' , 'application/vnd.ms-powerpoint'),
('.pps' , 'application/vnd.ms-powerpoint'),
('.pwz' , 'application/vnd.ms-powerpoint'),
('.bcpio' , 'application/x-bcpio'),
('.cpio' , 'application/x-cpio'),
('.csh' , 'application/x-csh'),
('.dvi' , 'application/x-dvi'),
('.gtar' , 'application/x-gtar'),
('.hdf' , 'application/x-hdf'),
('.latex' , 'application/x-latex'),
('.mif' , 'application/x-mif'),
('.cdf' , 'application/x-netcdf'),
('.nc' , 'application/x-netcdf'),
('.p12' , 'application/x-pkcs12'),
('.pfx' , 'application/x-pkcs12'),
('.ram' , 'application/x-pn-realaudio'),
('.pyc' , 'application/x-python-code'),
('.pyo' , 'application/x-python-code'),
('.sh' , 'application/x-sh'),
('.shar' , 'application/x-shar'),
('.swf' , 'application/x-shockwave-flash'),
('.sv4cpio', 'application/x-sv4cpio'),
('.sv4crc' , 'application/x-sv4crc'),
('.tar' , 'application/x-tar'),
('.tcl' , 'application/x-tcl'),
('.tex' , 'application/x-tex'),
('.texi' , 'application/x-texinfo'),
('.texinfo', 'application/x-texinfo'),
('.roff' , 'application/x-troff'),
('.t' , 'application/x-troff'),
('.tr' , 'application/x-troff'),
('.man' , 'application/x-troff-man'),
('.me' , 'application/x-troff-me'),
('.ms' , 'application/x-troff-ms'),
('.ustar' , 'application/x-ustar'),
('.src' , 'application/x-wais-source'),
('.xsl' , 'application/xml'),
('.rdf' , 'application/xml'),
('.wsdl' , 'application/xml'),
('.xpdl' , 'application/xml'),
('.zip' , 'application/zip'),
('.au' , 'audio/basic'),
('.snd' , 'audio/basic'),
('.mp3' , 'audio/mpeg'),
('.mp2' , 'audio/mpeg'),
('.aif' , 'audio/x-aiff'),
('.aifc' , 'audio/x-aiff'),
('.aiff' , 'audio/x-aiff'),
('.ra' , 'audio/x-pn-realaudio'),
('.wav' , 'audio/x-wav'),
('.gif' , 'image/gif'),
('.ief' , 'image/ief'),
('.jpg' , 'image/jpeg'),
('.jpe' , 'image/jpeg'),
('.jpeg' , 'image/jpeg'),
('.png' , 'image/png'),
('.svg' , 'image/svg+xml'),
('.tiff' , 'image/tiff'),
('.tif' , 'image/tiff'),
('.ico' , 'image/vnd.microsoft.icon'),
('.ras' , 'image/x-cmu-raster'),
('.bmp' , 'image/x-ms-bmp'),
('.pnm' , 'image/x-portable-anymap'),
('.pbm' , 'image/x-portable-bitmap'),
('.pgm' , 'image/x-portable-graymap'),
('.ppm' , 'image/x-portable-pixmap'),
('.rgb' , 'image/x-rgb'),
('.xbm' , 'image/x-xbitmap'),
('.xpm' , 'image/x-xpixmap'),
('.xwd' , 'image/x-xwindowdump'),
('.eml' , 'message/rfc822'),
('.mht' , 'message/rfc822'),
('.mhtml' , 'message/rfc822'),
('.nws' , 'message/rfc822'),
('.css' , 'text/css'),
('.csv' , 'text/csv'),
('.html' , 'text/html'),
('.htm' , 'text/html'),
('.txt' , 'text/plain'),
('.bat' , 'text/plain'),
('.c' , 'text/plain'),
('.h' , 'text/plain'),
('.ksh' , 'text/plain'),
('.pl' , 'text/plain'),
('.rtx' , 'text/richtext'),
('.tsv' , 'text/tab-separated-values'),
('.py' , 'text/x-python'),
('.etx' , 'text/x-setext'),
('.sgm' , 'text/x-sgml'),
('.sgml' , 'text/x-sgml'),
('.vcf' , 'text/x-vcard'),
('.xml' , 'text/xml'),
('.mp4' , 'video/mp4'),
('.mpeg' , 'video/mpeg'),
('.m1v' , 'video/mpeg'),
('.mpa' , 'video/mpeg'),
('.mpe' , 'video/mpeg'),
('.mpg' , 'video/mpeg'),
('.mov' , 'video/quicktime'),
('.qt' , 'video/quicktime'),
('.webm' , 'video/webm'),
('.avi' , 'video/x-msvideo'),
('.movie' , 'video/x-sgi-movie'),
])
types_map = _types_map_default = {
'.js' : 'application/javascript',
'.json' : 'application/json',
'.doc' : 'application/msword',
'.dot' : 'application/msword',
'.wiz' : 'application/msword',
'.bin' : 'application/octet-stream',
'.a' : 'application/octet-stream',
'.dll' : 'application/octet-stream',
'.exe' : 'application/octet-stream',
'.o' : 'application/octet-stream',
'.obj' : 'application/octet-stream',
'.so' : 'application/octet-stream',
'.oda' : 'application/oda',
'.pdf' : 'application/pdf',
'.p7c' : 'application/pkcs7-mime',
'.ps' : 'application/postscript',
'.ai' : 'application/postscript',
'.eps' : 'application/postscript',
'.m3u' : 'application/vnd.apple.mpegurl',
'.m3u8' : 'application/vnd.apple.mpegurl',
'.xls' : 'application/vnd.ms-excel',
'.xlb' : 'application/vnd.ms-excel',
'.ppt' : 'application/vnd.ms-powerpoint',
'.pot' : 'application/vnd.ms-powerpoint',
'.ppa' : 'application/vnd.ms-powerpoint',
'.pps' : 'application/vnd.ms-powerpoint',
'.pwz' : 'application/vnd.ms-powerpoint',
'.bcpio' : 'application/x-bcpio',
'.cpio' : 'application/x-cpio',
'.csh' : 'application/x-csh',
'.dvi' : 'application/x-dvi',
'.gtar' : 'application/x-gtar',
'.hdf' : 'application/x-hdf',
'.latex' : 'application/x-latex',
'.mif' : 'application/x-mif',
'.cdf' : 'application/x-netcdf',
'.nc' : 'application/x-netcdf',
'.p12' : 'application/x-pkcs12',
'.pfx' : 'application/x-pkcs12',
'.ram' : 'application/x-pn-realaudio',
'.pyc' : 'application/x-python-code',
'.pyo' : 'application/x-python-code',
'.sh' : 'application/x-sh',
'.shar' : 'application/x-shar',
'.swf' : 'application/x-shockwave-flash',
'.sv4cpio': 'application/x-sv4cpio',
'.sv4crc' : 'application/x-sv4crc',
'.tar' : 'application/x-tar',
'.tcl' : 'application/x-tcl',
'.tex' : 'application/x-tex',
'.texi' : 'application/x-texinfo',
'.texinfo': 'application/x-texinfo',
'.roff' : 'application/x-troff',
'.t' : 'application/x-troff',
'.tr' : 'application/x-troff',
'.man' : 'application/x-troff-man',
'.me' : 'application/x-troff-me',
'.ms' : 'application/x-troff-ms',
'.ustar' : 'application/x-ustar',
'.src' : 'application/x-wais-source',
'.xsl' : 'application/xml',
'.rdf' : 'application/xml',
'.wsdl' : 'application/xml',
'.xpdl' : 'application/xml',
'.zip' : 'application/zip',
'.au' : 'audio/basic',
'.snd' : 'audio/basic',
'.mp3' : 'audio/mpeg',
'.mp2' : 'audio/mpeg',
'.aif' : 'audio/x-aiff',
'.aifc' : 'audio/x-aiff',
'.aiff' : 'audio/x-aiff',
'.ra' : 'audio/x-pn-realaudio',
'.wav' : 'audio/x-wav',
'.gif' : 'image/gif',
'.ief' : 'image/ief',
'.jpg' : 'image/jpeg',
'.jpe' : 'image/jpeg',
'.jpeg' : 'image/jpeg',
'.png' : 'image/png',
'.svg' : 'image/svg+xml',
'.tiff' : 'image/tiff',
'.tif' : 'image/tiff',
'.ico' : 'image/vnd.microsoft.icon',
'.ras' : 'image/x-cmu-raster',
'.bmp' : 'image/x-ms-bmp',
'.pnm' : 'image/x-portable-anymap',
'.pbm' : 'image/x-portable-bitmap',
'.pgm' : 'image/x-portable-graymap',
'.ppm' : 'image/x-portable-pixmap',
'.rgb' : 'image/x-rgb',
'.xbm' : 'image/x-xbitmap',
'.xpm' : 'image/x-xpixmap',
'.xwd' : 'image/x-xwindowdump',
'.eml' : 'message/rfc822',
'.mht' : 'message/rfc822',
'.mhtml' : 'message/rfc822',
'.nws' : 'message/rfc822',
'.css' : 'text/css',
'.csv' : 'text/csv',
'.html' : 'text/html',
'.htm' : 'text/html',
'.txt' : 'text/plain',
'.bat' : 'text/plain',
'.c' : 'text/plain',
'.h' : 'text/plain',
'.ksh' : 'text/plain',
'.pl' : 'text/plain',
'.rtx' : 'text/richtext',
'.tsv' : 'text/tab-separated-values',
'.py' : 'text/x-python',
'.etx' : 'text/x-setext',
'.sgm' : 'text/x-sgml',
'.sgml' : 'text/x-sgml',
'.vcf' : 'text/x-vcard',
'.xml' : 'text/xml',
'.mp4' : 'video/mp4',
'.mpeg' : 'video/mpeg',
'.m1v' : 'video/mpeg',
'.mpa' : 'video/mpeg',
'.mpe' : 'video/mpeg',
'.mpg' : 'video/mpeg',
'.mov' : 'video/quicktime',
'.qt' : 'video/quicktime',
'.webm' : 'video/webm',
'.avi' : 'video/x-msvideo',
'.movie' : 'video/x-sgi-movie',
}

# These are non-standard types, commonly found in the wild. They will
# only match if strict=0 flag is given to the API methods.

# Please sort these too
common_types = _common_types_default = OrderedDict([
('.rtf' , 'application/rtf'),
('.midi', 'audio/midi'),
('.mid' , 'audio/midi'),
('.jpg' , 'image/jpg'),
('.pict', 'image/pict'),
('.pct' , 'image/pict'),
('.pic' , 'image/pict'),
('.xul' , 'text/xul'),
])
common_types = _common_types_default = {
'.rtf' : 'application/rtf',
'.midi': 'audio/midi',
'.mid' : 'audio/midi',
'.jpg' : 'image/jpg',
'.pict': 'image/pict',
'.pct' : 'image/pict',
'.pic' : 'image/pict',
'.xul' : 'text/xul',
}


_default_mime_types()
Expand Down
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy