octets.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #
  2. # This file is part of pyasn1 software.
  3. #
  4. # Copyright (c) 2005-2017, Ilya Etingof <etingof@gmail.com>
  5. # License: http://pyasn1.sf.net/license.html
  6. #
  7. from sys import version_info
  8. if version_info[0] <= 2:
  9. int2oct = chr
  10. # noinspection PyPep8
  11. ints2octs = lambda s: ''.join([int2oct(x) for x in s])
  12. null = ''
  13. oct2int = ord
  14. # noinspection PyPep8
  15. octs2ints = lambda s: [oct2int(x) for x in s]
  16. # noinspection PyPep8
  17. str2octs = lambda x: x
  18. # noinspection PyPep8
  19. octs2str = lambda x: x
  20. # noinspection PyPep8
  21. isOctetsType = lambda s: isinstance(s, str)
  22. # noinspection PyPep8
  23. isStringType = lambda s: isinstance(s, (str, unicode))
  24. else:
  25. ints2octs = bytes
  26. # noinspection PyPep8
  27. int2oct = lambda x: ints2octs((x,))
  28. null = ints2octs()
  29. # noinspection PyPep8
  30. oct2int = lambda x: x
  31. # noinspection PyPep8
  32. octs2ints = lambda x: x
  33. # noinspection PyPep8
  34. str2octs = lambda x: x.encode('iso-8859-1')
  35. # noinspection PyPep8
  36. octs2str = lambda x: x.decode('iso-8859-1')
  37. # noinspection PyPep8
  38. isOctetsType = lambda s: isinstance(s, bytes)
  39. # noinspection PyPep8
  40. isStringType = lambda s: isinstance(s, str)