Merge branch 'master' into develop
This commit is contained in:
@@ -43,8 +43,8 @@ log = logging.getLogger(__name__)
|
||||
# In order to make sure that Unicode is handled properly
|
||||
# in Python 2.x, reset the default encoding.
|
||||
if sys.version_info < (3, 0):
|
||||
reload(sys)
|
||||
sys.setdefaultencoding('utf8')
|
||||
from sleekxmpp.util.misc_ops import setdefaultencoding
|
||||
setdefaultencoding('utf8')
|
||||
|
||||
|
||||
class BaseXMPP(XMLStream):
|
||||
|
||||
@@ -125,3 +125,27 @@ def hashes():
|
||||
t += ['MD2']
|
||||
hashes = ['SHA-' + h[3:] for h in dir(hashlib) if h.startswith('sha')]
|
||||
return t + hashes
|
||||
|
||||
def setdefaultencoding(encoding):
|
||||
"""
|
||||
Set the current default string encoding used by the Unicode implementation.
|
||||
|
||||
Actually calls sys.setdefaultencoding under the hood - see the docs for that
|
||||
for more details. This method exists only as a way to call find/call it
|
||||
even after it has been 'deleted' when the site module is executed.
|
||||
|
||||
:param string encoding: An encoding name, compatible with sys.setdefaultencoding
|
||||
"""
|
||||
func = getattr(sys, 'setdefaultencoding', None)
|
||||
if func is None:
|
||||
import gc
|
||||
import types
|
||||
for obj in gc.get_objects():
|
||||
if (isinstance(obj, types.BuiltinFunctionType)
|
||||
and obj.__name__ == 'setdefaultencoding'):
|
||||
func = obj
|
||||
break
|
||||
if func is None:
|
||||
raise RuntimeError("Could not find setdefaultencoding")
|
||||
sys.setdefaultencoding = func
|
||||
return func(encoding)
|
||||
Reference in New Issue
Block a user