1#
2# Licensed to the Apache Software Foundation (ASF) under one
3# or more contributor license agreements. See the NOTICE file
4# distributed with this work for additional information
5# regarding copyright ownership. The ASF licenses this file
6# to you under the Apache License, Version 2.0 (the
7# "License"); you may not use this file except in compliance
8# with the License. You may obtain a copy of the License at
9#
10#   http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing,
13# software distributed under the License is distributed on an
14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15# KIND, either express or implied. See the License for the
16# specific language governing permissions and limitations
17# under the License.
18#
19
20import sys
21
22if sys.version_info[0] == 2:
23
24    from cStringIO import StringIO as BufferIO
25
26    def binary_to_str(bin_val):
27        return bin_val
28
29    def str_to_binary(str_val):
30        return str_val
31
32    def byte_index(bytes_val, i):
33        return ord(bytes_val[i])
34
35else:
36
37    from io import BytesIO as BufferIO  # noqa
38
39    def binary_to_str(bin_val):
40        return bin_val.decode('utf8')
41
42    def str_to_binary(str_val):
43        return bytes(str_val, 'utf8')
44
45    def byte_index(bytes_val, i):
46        return bytes_val[i]
47