• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# This file is part of pyasn1 software.
3#
4# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
5# License: http://snmplabs.com/pyasn1/license.html
6#
7from sys import version_info
8
9if version_info[0] <= 2:
10    int2oct = chr
11    # noinspection PyPep8
12    ints2octs = lambda s: ''.join([int2oct(x) for x in s])
13    null = ''
14    oct2int = ord
15    # TODO: refactor to return a sequence of ints
16    # noinspection PyPep8
17    octs2ints = lambda s: [oct2int(x) for x in s]
18    # noinspection PyPep8
19    str2octs = lambda x: x
20    # noinspection PyPep8
21    octs2str = lambda x: x
22    # noinspection PyPep8
23    isOctetsType = lambda s: isinstance(s, str)
24    # noinspection PyPep8
25    isStringType = lambda s: isinstance(s, (str, unicode))
26    # noinspection PyPep8
27    ensureString = str
28else:
29    ints2octs = bytes
30    # noinspection PyPep8
31    int2oct = lambda x: ints2octs((x,))
32    null = ints2octs()
33    # noinspection PyPep8
34    oct2int = lambda x: x
35    # noinspection PyPep8
36    octs2ints = lambda x: x
37    # noinspection PyPep8
38    str2octs = lambda x: x.encode('iso-8859-1')
39    # noinspection PyPep8
40    octs2str = lambda x: x.decode('iso-8859-1')
41    # noinspection PyPep8
42    isOctetsType = lambda s: isinstance(s, bytes)
43    # noinspection PyPep8
44    isStringType = lambda s: isinstance(s, str)
45    # noinspection PyPep8
46    ensureString = bytes
47