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