converter.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. # -*- coding: utf-8 -*-
  2. # Compat
  3. import sys
  4. py2 = sys.version_info.major == 2
  5. py27 = sys.version_info[0:2] == (2, 7)
  6. py3 = sys.version_info.major == 3
  7. py34 = sys.version_info[0:2] == (3, 4)
  8. py35 = sys.version_info[0:2] == (3, 5)
  9. if py3:
  10. class TeaConverter(object):
  11. unicode = str
  12. basestring = (str, bytes)
  13. number = (int, float)
  14. @staticmethod
  15. def to_unicode(s, encoding='utf-8'):
  16. if s is None:
  17. return s
  18. if isinstance(s, bytes):
  19. return s.decode(encoding)
  20. else:
  21. return str(s)
  22. @staticmethod
  23. def to_str(s, encoding='utf-8'):
  24. if s is None:
  25. return s
  26. if isinstance(s, bytes):
  27. return s.decode(encoding)
  28. else:
  29. return str(s)
  30. @staticmethod
  31. def to_bytes(s, encoding='utf-8'):
  32. if s is None or isinstance(s, bytes):
  33. return s
  34. if isinstance(s, str):
  35. return s.encode(encoding)
  36. else:
  37. return str(s).encode(encoding)
  38. @staticmethod
  39. def to_string(s, encoding='utf-8'):
  40. if s is None:
  41. return s
  42. if isinstance(s, bytes):
  43. return s.decode(encoding)
  44. else:
  45. return str(s)
  46. else:
  47. class TeaConverter(object):
  48. unicode = unicode
  49. basestring = basestring
  50. number = (int, float, long)
  51. @staticmethod
  52. def to_unicode(s, encoding='utf-8'):
  53. if s is None:
  54. return s
  55. if isinstance(s, str):
  56. return s.decode(encoding)
  57. else:
  58. return unicode(s)
  59. @staticmethod
  60. def to_str(s, encoding='utf-8'):
  61. if s is None:
  62. return s
  63. if isinstance(s, unicode):
  64. return s.encode(encoding)
  65. else:
  66. return str(s)
  67. @staticmethod
  68. def to_bytes(s, encoding='utf-8'):
  69. if s is None:
  70. return s
  71. if isinstance(s, unicode):
  72. return s.encode(encoding)
  73. else:
  74. return str(s)
  75. @staticmethod
  76. def to_string(s, encoding='utf-8'):
  77. if s is None:
  78. return s
  79. if isinstance(s, str):
  80. return s.decode(encoding)
  81. else:
  82. return unicode(s)