15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import sys 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)__all__ = ['b', 'basestring_', 'bytes', 'next', 'is_unicode'] 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)if sys.version < "3": 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) b = bytes = str 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) basestring_ = basestring 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)else: 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def b(s): 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if isinstance(s, str): 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return s.encode('latin1') 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return bytes(s) 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) basestring_ = (bytes, str) 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) bytes = bytes 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)text = str 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)if sys.version < "3": 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def next(obj): 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return obj.next() 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)else: 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) next = next 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)if sys.version < "3": 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def is_unicode(obj): 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return isinstance(obj, unicode) 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)else: 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def is_unicode(obj): 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return isinstance(obj, str) 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)def coerce_text(v): 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if not isinstance(v, basestring_): 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if sys.version < "3": 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) attr = '__unicode__' 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) else: 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) attr = '__str__' 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if hasattr(v, attr): 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return unicode(v) 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) else: 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return bytes(v) 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return v 46