X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;ds=sidebyside;f=rainbowstream%2Fpy3patch.py;h=4ba959110dd8a202f8c410cda9064317c5e3822b;hb=dfbc72883a8e61e8f3d4ccd37169488e8e67d1fb;hp=05fe7ff469cba4ce2fc2307143dfba37000e2465;hpb=422dd3858dacc83de5e9d053140341b62a44012b;p=rainbowstream.git diff --git a/rainbowstream/py3patch.py b/rainbowstream/py3patch.py index 05fe7ff..4ba9591 100644 --- a/rainbowstream/py3patch.py +++ b/rainbowstream/py3patch.py @@ -1,17 +1,32 @@ -""" - Python 3 supports -""" import sys +# Library compatibility # StringIO module try: from StringIO import StringIO, BytesIO except: from io import StringIO, BytesIO -# raw_input and map functiion behaviour -if sys.version[0] == "3": - raw_input = input - lmap = lambda f, a: list(map(f, a)) +# HTMLParser module +if sys.version[0] == "2": + from HTMLParser import HTMLParser else: + from html.parser import HTMLParser +unescape = HTMLParser().unescape +# According to https://github.com/python/cpython/blob/master/Lib/html/parser.py#L547 , +# in python 3.5 maybe I should use +# from html import unescape +# but it is a far-future story:) + + +# Function compatibility +# xrange, raw_input, map ,unicde +if sys.version[0] == "2": lmap = lambda f, a: map(f, a) + str2u = lambda x: x.decode('utf-8') + u2str = lambda x: x.encode('utf-8') +else: + xrange = range + raw_input = input + lmap = lambda f, a: list(map(f, a)) + str2u = u2str = lambda x: x