*** C:\Python27\Lib\mimetypes.py Wed Jun 27 11:20:26 2012 --- C:\Python27\Lib\mimetypes_fixed.py Wed Jun 27 11:33:11 2012 *************** *** 254,276 **** i += 1 default_encoding = sys.getdefaultencoding() ! with _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, ! r'MIME\Database\Content Type') as mimedb: ! for ctype in enum_types(mimedb): try: ! with _winreg.OpenKey(mimedb, ctype) as key: ! suffix, datatype = _winreg.QueryValueEx(key, ! 'Extension') except EnvironmentError: continue - if datatype != _winreg.REG_SZ: - continue - try: - suffix = suffix.encode(default_encoding) # omit in 3.x! - except UnicodeEncodeError: - continue - self.add_type(ctype, suffix, strict) - def guess_type(url, strict=True): """Guess the type of a file based on its URL. --- 254,276 ---- i += 1 default_encoding = sys.getdefaultencoding() ! with _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, '') as hkcr: ! for subkeyname in enum_types(hkcr): # enum_types() sub remains unchanged try: ! with _winreg.OpenKey(hkcr, subkeyname) as subkey: ! if subkeyname[0] == ".": # Only check entries that begin with dots, i.e. file extensions ! # subkeyname is the file extension ! mimetype, datatype = _winreg.QueryValueEx(subkey, 'Content Type') # throws EnvironmentError if no 'Content Type' value ! if datatype != _winreg.REG_SZ: ! continue ! try: ! subkeyname = subkeyname.encode(default_encoding) # omit in 3.x! ! except UnicodeEncodeError: ! continue ! self.add_type(mimetype, subkeyname, strict) ! except EnvironmentError: continue def guess_type(url, strict=True): """Guess the type of a file based on its URL.