feat(ST2.UtilPackages): bump up all packages
- Refresh PackageCache with latest versions of everything
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import os
|
||||
import locale
|
||||
import sys
|
||||
|
||||
|
||||
# Sublime Text on OS X does not seem to report the correct encoding
|
||||
# so we hard-code that to UTF-8
|
||||
_encoding = 'utf-8' if sys.platform == 'darwin' else locale.getpreferredencoding()
|
||||
|
||||
_fallback_encodings = ['utf-8', 'cp1252']
|
||||
|
||||
|
||||
def unicode_from_os(e):
|
||||
"""
|
||||
This is needed as some exceptions coming from the OS are
|
||||
already encoded and so just calling unicode(e) will result
|
||||
in an UnicodeDecodeError as the string isn't in ascii form.
|
||||
|
||||
:param e:
|
||||
The exception to get the value of
|
||||
|
||||
:return:
|
||||
The unicode version of the exception message
|
||||
"""
|
||||
|
||||
if sys.version_info >= (3,):
|
||||
return str(e)
|
||||
|
||||
try:
|
||||
if isinstance(e, Exception):
|
||||
e = e.message
|
||||
|
||||
if isinstance(e, unicode):
|
||||
return e
|
||||
|
||||
if isinstance(e, int):
|
||||
e = str(e)
|
||||
|
||||
return unicode(e, _encoding)
|
||||
|
||||
# If the "correct" encoding did not work, try some defaults, and then just
|
||||
# obliterate characters that we can't seen to decode properly
|
||||
except UnicodeDecodeError:
|
||||
for encoding in _fallback_encodings:
|
||||
try:
|
||||
return unicode(e, encoding, errors='strict')
|
||||
except:
|
||||
pass
|
||||
return unicode(e, errors='replace')
|
Reference in New Issue
Block a user