From: Pierce Lopez Date: Mon, 1 Jan 2018 20:01:22 +0000 (-0500) Subject: fix python2.7 / python3 incompatibilities X-Git-Tag: v5.0.0~20^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d72dc5433d5b5e6deb0695713479113abcb7861d;p=thirdparty%2Ftornado.git fix python2.7 / python3 incompatibilities convert remaining uses of python2 print statement to print function add "xrange = range" for python3 where needed add "ResourceWarning = None" for python2 where needed a bit of long/unicode type aliasing such issues only remained in tests/demos --- diff --git a/demos/benchmark/chunk_benchmark.py b/demos/benchmark/chunk_benchmark.py index ba2e0648a..4206253c1 100755 --- a/demos/benchmark/chunk_benchmark.py +++ b/demos/benchmark/chunk_benchmark.py @@ -9,6 +9,11 @@ from tornado.ioloop import IOLoop from tornado.options import define, options, parse_command_line from tornado.web import RequestHandler, Application +try: + xrange +except NameError: + xrange = range + define('port', default=8888) define('num_chunks', default=1000) define('chunk_size', default=2048) diff --git a/demos/s3server/s3server.py b/demos/s3server/s3server.py index 6ca104d1e..f3051a1d3 100644 --- a/demos/s3server/s3server.py +++ b/demos/s3server/s3server.py @@ -42,6 +42,12 @@ from tornado import escape from tornado import httpserver from tornado import ioloop from tornado import web +from tornado.util import unicode_type + +try: + long +except NameError: + long = int def start(port, root_directory="/tmp/s3", bucket_depth=0): @@ -87,9 +93,9 @@ class BaseRequestHandler(web.RequestHandler): ''.join(parts)) def _render_parts(self, value, parts=[]): - if isinstance(value, (unicode, bytes)): + if isinstance(value, (unicode_type, bytes)): parts.append(escape.xhtml_escape(value)) - elif isinstance(value, int) or isinstance(value, long): + elif isinstance(value, (int, long)): parts.append(str(value)) elif isinstance(value, datetime.datetime): parts.append(value.strftime("%Y-%m-%dT%H:%M:%S.000Z")) diff --git a/maint/test/appengine/common/cgi_runtests.py b/maint/test/appengine/common/cgi_runtests.py index 7041a42d9..f28aa6ca0 100644 --- a/maint/test/appengine/common/cgi_runtests.py +++ b/maint/test/appengine/common/cgi_runtests.py @@ -1,4 +1,6 @@ #!/usr/bin/env python +from __future__ import absolute_import, division, print_function + import sys import unittest @@ -42,13 +44,13 @@ def all(): def main(): - print "Content-Type: text/plain\r\n\r\n", + print("Content-Type: text/plain\r\n\r\n", end="") try: unittest.main(defaultTest='all', argv=sys.argv[:1]) - except SystemExit, e: + except SystemExit as e: if e.code == 0: - print "PASS" + print("PASS") else: raise diff --git a/maint/test/appengine/common/runtests.py b/maint/test/appengine/common/runtests.py index 364f97190..ba89a7aa0 100644 --- a/maint/test/appengine/common/runtests.py +++ b/maint/test/appengine/common/runtests.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -from __future__ import with_statement +from __future__ import absolute_import, division, print_function import contextlib import errno @@ -12,6 +12,11 @@ import sys import time import urllib2 +try: + xrange +except NameError: + xrange = range + if __name__ == "__main__": tornado_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../..')) @@ -39,7 +44,7 @@ if __name__ == "__main__": raise Exception("Server didn't start listening") resp = urllib2.urlopen("http://localhost:%d/" % port) - print resp.read() + print(resp.read()) finally: # dev_appserver sometimes ignores SIGTERM (especially on 2.5), # so try a few times to kill it. diff --git a/maint/vm/windows/bootstrap.py b/maint/vm/windows/bootstrap.py index e795e97f7..e9f4f7d59 100644 --- a/maint/vm/windows/bootstrap.py +++ b/maint/vm/windows/bootstrap.py @@ -19,6 +19,7 @@ To run the tests with tox, cd to e:\maint\vm\windows and run To run under cygwin (which must be installed separately), run cd /cygdrive/e; python -m tornado.test.runtests """ +from __future__ import absolute_import, division, print_function import os import subprocess @@ -55,9 +56,9 @@ def main(): os.chdir(TMPDIR) for exe, url in PYTHON_VERSIONS: if os.path.exists(exe): - print "%s already exists, skipping" % exe + print("%s already exists, skipping" % exe) continue - print "Installing %s" % url + print("Installing %s" % url) filename = download_to_cache(url) # http://blog.jaraco.com/2012/01/how-i-install-python-on-windows.html subprocess.check_call(['msiexec', '/i', filename, diff --git a/tornado/test/runtests.py b/tornado/test/runtests.py index d9842ed75..1bee79726 100644 --- a/tornado/test/runtests.py +++ b/tornado/test/runtests.py @@ -126,7 +126,7 @@ def main(): # and even # `python3.4 -W error -c 'import asyncio; asyncio.get_event_loop()'` # would generate a warning. - warnings.filterwarnings("ignore", category=ResourceWarning, + warnings.filterwarnings("ignore", category=ResourceWarning, # noqa: F821 module=r"asyncio\..*") logging.getLogger("tornado.access").setLevel(logging.CRITICAL) diff --git a/tornado/test/twisted_test.py b/tornado/test/twisted_test.py index 84a9f44df..4cc062971 100644 --- a/tornado/test/twisted_test.py +++ b/tornado/test/twisted_test.py @@ -67,6 +67,7 @@ if PY3: import _thread as thread else: import thread + ResourceWarning = None try: import asyncio