1# -*- coding: utf-8 -*-
2"""
3    plan._compat
4    ~~~~~~~~~~~~
5
6    Some py2/py3 compatibility support.
7
8    :copyright: (c) 2014 by Shipeng Feng.
9    :license: BSD, see LICENSE for more details.
10"""
11import sys
12
13PY2 = sys.version_info[0] == 2
14
15
16if not PY2:
17    text_type = str
18    string_types = (str,)
19    integer_types = (int,)
20
21    iterkeys = lambda d: iter(d.keys())
22    itervalues = lambda d: iter(d.values())
23    iteritems = lambda d: iter(d.items())
24else:
25    text_type = unicode
26    string_types = (str, unicode)
27    integer_types = (int, long)
28
29    iterkeys = lambda d: d.iterkeys()
30    itervalues = lambda d: d.itervalues()
31    iteritems = lambda d: d.iteritems()
32
33
34def get_binary_content(content):
35    """Get binary content for binary_writer."""
36    if isinstance(content, text_type):
37        return content.encode('utf-8')
38    return content
39