mirror of https://github.com/celery/kombu.git
Adds kombu.utils.encoding
This commit is contained in:
parent
8ad9264dbb
commit
b86c129a82
|
@ -0,0 +1,32 @@
|
|||
import sys
|
||||
import traceback
|
||||
|
||||
|
||||
def default_encoding():
|
||||
if sys.platform.startswith("java"):
|
||||
return "utf-8"
|
||||
return sys.getfilesystemencoding()
|
||||
|
||||
|
||||
def safe_str(s, errors="replace"):
|
||||
if not isinstance(s, basestring):
|
||||
return safe_repr(s, errors)
|
||||
return _safe_str(s, errors)
|
||||
|
||||
|
||||
def _safe_str(s, errors="replace"):
|
||||
encoding = default_encoding()
|
||||
try:
|
||||
if isinstance(s, unicode):
|
||||
return s.encode(encoding, errors)
|
||||
return unicode(s, encoding, errors)
|
||||
except Exception, exc:
|
||||
return "<Unrepresentable %r: %r %r>" % (
|
||||
type(s), exc, "\n".join(traceback.format_stack()))
|
||||
|
||||
|
||||
def safe_repr(o, errors="replace"):
|
||||
try:
|
||||
return repr(o)
|
||||
except Exception:
|
||||
return _safe_str(o, errors)
|
Loading…
Reference in New Issue