arrow
[rainbowstream.git] / rainbowstream / py3patch.py
CommitLineData
c3bab4ef 1"""
2 Python 3 supports
3"""
4import sys
5
6# StringIO module
7try:
77f1d210 8 from StringIO import StringIO, BytesIO
c3bab4ef 9except:
77f1d210 10 from io import StringIO, BytesIO
c3bab4ef 11
b2cde062 12# HTMLParser module
3f6bfc20 13if sys.version[0] == "2":
b2cde062 14 from HTMLParser import HTMLParser
3f6bfc20
O
15else:
16 from html.parser import HTMLParser
17unescape = HTMLParser().unescape
18# According to https://github.com/python/cpython/blob/master/Lib/html/parser.py#L547 ,
19# in python 3.5 maybe I should use
20# from html import unescape
21# but it is a far-future story:)
b2cde062 22
b13c6a0d 23# raw_input and map function behaviour
3f6bfc20
O
24if sys.version[0] == "2":
25 lmap = lambda f, a: map(f, a)
7c437a0f
O
26 str2u = lambda x: x.decode('utf-8')
27 u2str = lambda x: x.encode('utf-8')
3f6bfc20 28else:
13e6b275 29 xrange = range
c3bab4ef 30 raw_input = input
422dd385 31 lmap = lambda f, a: list(map(f, a))
7c437a0f 32 str2u = u2str = lambda x: x