utils.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # <HTTPretty - HTTP client mock for Python>
  4. # Copyright (C) <2011-2018> Gabriel Falcao <gabriel@nacaolivre.org>
  5. #
  6. # Permission is hereby granted, free of charge, to any person
  7. # obtaining a copy of this software and associated documentation
  8. # files (the "Software"), to deal in the Software without
  9. # restriction, including without limitation the rights to use,
  10. # copy, modify, merge, publish, distribute, sublicense, and/or sell
  11. # copies of the Software, and to permit persons to whom the
  12. # Software is furnished to do so, subject to the following
  13. # conditions:
  14. #
  15. # The above copyright notice and this permission notice shall be
  16. # included in all copies or substantial portions of the Software.
  17. #
  18. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  19. # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  20. # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  21. # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  22. # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  23. # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  24. # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  25. # OTHER DEALINGS IN THE SOFTWARE.
  26. from __future__ import unicode_literals
  27. from .compat import (
  28. binary_type, text_type
  29. )
  30. def utf8(s):
  31. if isinstance(s, text_type):
  32. s = s.encode('utf-8')
  33. elif s is None:
  34. return binary_type()
  35. return binary_type(s)
  36. def decode_utf8(s):
  37. if isinstance(s, binary_type):
  38. s = s.decode("utf-8")
  39. elif s is None:
  40. return text_type()
  41. return text_type(s)