I don't understand the example, either. If I run 2to3 on it, I get, as the only change
if sys.version_info[0] < 3: # Python 2
- from urllib import quote, unquote
- from urlparse import urlparse, urlunparse
- from BaseHTTPServer import HTTPServer
- from SimpleHTTPServer import SimpleHTTPRequestHandler
+ from urllib.parse import quote, unquote
+ from urllib.parse import urlparse, urlunparse
+ from http.server import HTTPServer
+ from http.server import SimpleHTTPRequestHandler
def str2data(s, is_nonascii=re.compile("[^\0-\x7F]").search):
As this code is in a Python 2.x block: why does this change cause problems to you? You are supposed to run the 2to3 result in Python 3, and this conversion result will run correctly in Python 3.