Automated with 2to3 and custom fixer.
2to3 -f print tornado > print.diff
2to3 -f print -d tornado > print_doctest.diff
maint/scripts/run_fixers.py -f future_import tornado > future.diff
cd tornado
git apply ../{print,print_doctest,future}.diff
new = FromImport("__future__",
[Name("absolute_import", prefix=" "), Comma(),
Name("division", prefix=" "), Comma(),
+ Name("print_function", prefix=" "), Comma(),
Name("with_statement", prefix=" ")])
if old is not None:
new.prefix = old.prefix
return new
-
+
def transform(self, node, results):
self.found_future_import = True
return self.new_future_import(node)
pos = 0
tree.insert_child(pos, self.new_future_import(None))
tree.insert_child(pos+1, Newline()) # terminates the import stmt
-
-
"""The Tornado web server and tools."""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
# version is a human-readable version number.
# Save the user with, e.g., set_secure_cookie()
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import base64
import binascii
incorrectly.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import os
import sys
script = sys.argv[1]
sys.argv = sys.argv[1:]
else:
- print >>sys.stderr, _USAGE
+ print(_USAGE, file=sys.stderr)
sys.exit(1)
try:
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import functools
import sys
"""Blocking and non-blocking HTTP client implementations using pycurl."""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import cStringIO
import collections
have crept in over time.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import htmlentitydefs
import re
called with more than one argument or any keyword arguments, the result
is an `Arguments` object, which is a named tuple ``(args, kwargs)``.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import functools
import operator
supported version is 7.18.2, and the recommended version is 7.21.1 or newer.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import calendar
import email.utils
else:
raise
if options.print_headers:
- print response.headers
+ print(response.headers)
if options.print_body:
- print response.body
+ print(response.body)
client.close()
if __name__ == "__main__":
`tornado.web.RequestHandler.request`.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import Cookie
import socket
"""HTTP utility code shared by clients and servers."""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import urllib
import re
['A=B', 'C=D']
>>> for (k,v) in sorted(h.get_all()):
- ... print '%s: %s' % (k,v)
- ...
+ ... print('%s: %s' % (k,v))
+ ...
Content-Type: text/html
Set-Cookie: A=B
Set-Cookie: C=D
`IOLoop.add_timeout` is a non-blocking alternative to `time.sleep`.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import datetime
import errno
* `PipeIOStream`: Pipe-based IOStream implementation.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import collections
import errno
string of up to size bytes.
>>> d = collections.deque(['abc', 'de', 'fghi', 'j'])
- >>> _merge_prefix(d, 5); print d
+ >>> _merge_prefix(d, 5); print(d)
deque(['abcde', 'fghi', 'j'])
Strings will be split as necessary to reach the desired size.
- >>> _merge_prefix(d, 7); print d
+ >>> _merge_prefix(d, 7); print(d)
deque(['abcdefg', 'hi', 'j'])
- >>> _merge_prefix(d, 3); print d
+ >>> _merge_prefix(d, 3); print(d)
deque(['abc', 'defg', 'hi', 'j'])
- >>> _merge_prefix(d, 100); print d
+ >>> _merge_prefix(d, 100); print(d)
deque(['abcdefghij'])
"""
if len(deque) == 1 and len(deque[0]) <= size:
the locale.translate method will simply return the original string.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import csv
import datetime
`logging` module. For example, you may wish to send ``tornado.access`` logs
to a separate file for analysis.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import logging
import logging.handlers
"""Miscellaneous network utility code."""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import errno
import os
instances to define isolated sets of options, such as for subcommands.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import datetime
import re
"""Prints all the command line options to stderr (or another file)."""
if file is None:
file = sys.stderr
- print >> file, "Usage: %s [OPTIONS]" % sys.argv[0]
- print >> file, "\nOptions:\n"
+ print("Usage: %s [OPTIONS]" % sys.argv[0], file=file)
+ print("\nOptions:\n", file=file)
by_group = {}
for option in self._options.itervalues():
by_group.setdefault(option.group_name, []).append(option)
for filename, o in sorted(by_group.items()):
if filename:
- print >> file, "\n%s options:\n" % os.path.normpath(filename)
+ print("\n%s options:\n" % os.path.normpath(filename), file=file)
o.sort(key=lambda option: option.name)
for option in o:
prefix = option.name
lines = textwrap.wrap(description, 79 - 35)
if len(prefix) > 30 or len(lines) == 0:
lines.insert(0, '')
- print >> file, " --%-30s %s" % (prefix, lines[0])
+ print(" --%-30s %s" % (prefix, lines[0]), file=file)
for line in lines[1:]:
- print >> file, "%-34s %s" % (' ', line)
- print >> file
+ print("%-34s %s" % (' ', line), file=file)
+ print(file=file)
def _help_callback(self, value):
if value:
from tornado.platform.auto import set_close_exec
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import os
"""Lowest-common-denominator implementations of platform functionality."""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import errno
import socket
Supports the standard library's `select.epoll` function for Python 2.6+,
and our own C module for Python 2.5.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import os
import select
implementation from `tornado.platform.auto`.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
def set_close_exec(fd):
# License for the specific language governing permissions and limitations
# under the License.
"""KQueue-based IOLoop implementation for BSD/Mac systems."""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import select
"""Posix implementations of platform-specific functionality."""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import fcntl
import os
Used as a fallback for systems that don't support epoll or kqueue.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import select
This module has been tested with Twisted versions 11.0.0 and newer.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import functools
import datetime
# for production use.
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import ctypes
import ctypes.wintypes
"""Utilities for working with multiple processes."""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import errno
import functools
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from tornado.escape import utf8, _unicode, native_str
from tornado.httpclient import HTTPRequest, HTTPResponse, HTTPError, AsyncHTTPClient, main, _RequestProxy
block that references your `StackContext`.
'''
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import contextlib
import functools
``{% continue %}`` may be used inside the loop.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import cStringIO
import datetime
ancestors = ["%s:%d" % (tmpl.name, lineno)
for (tmpl, lineno) in self.include_stack]
line_comment += ' (via %s)' % ', '.join(reversed(ancestors))
- print >> self.file, " " * indent + line + line_comment
+ print(" " * indent + line + line_comment, file=self.file)
class _TemplateReader(object):
# python 3)
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from tornado.auth import OpenIdMixin, OAuthMixin, OAuth2Mixin, TwitterMixin
from tornado.escape import json_decode
from tornado.testing import AsyncHTTPTestCase
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import logging
import re
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from tornado.httpclient import HTTPRequest
from tornado.stack_context import ExceptionStackContext
from tornado.testing import AsyncHTTPTestCase
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import tornado.escape
from tornado.escape import utf8, xhtml_escape, xhtml_unescape, url_escape, url_unescape, to_unicode, json_decode, json_encode
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import functools
from tornado.escape import url_escape
from tornado.httpclient import AsyncHTTPClient
# 2) Edit tornado_test.po, setting CHARSET and setting msgstr
# 3) msgfmt tornado_test.po -o tornado_test.mo
# 4) Put the file in the proper location: $LANG/LC_MESSAGES
+
+from __future__ import absolute_import, division, print_function, with_statement
_("school")
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import base64
import binascii
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from tornado import httpclient, simple_httpclient, netutil
from tornado.escape import json_decode, utf8, _unicode, recursive_unicode, native_str
from tornado.httpserver import HTTPServer
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from tornado.httputil import url_concat, parse_multipart_form_data, HTTPHeaders
from tornado.escape import utf8
from tornado.log import gen_log
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from tornado.test.util import unittest
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import contextlib
import datetime
import functools
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from tornado import netutil
from tornado.ioloop import IOLoop
from tornado.iostream import IOStream, SSLIOStream, PipeIOStream
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import os
import tornado.locale
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import contextlib
import glob
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import socket
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import sys
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import logging
import os
import signal
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import logging
import textwrap
import sys
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import collections
from contextlib import closing
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from tornado.log import app_log
from tornado.stack_context import StackContext, wrap, NullContext
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import os
import traceback
#!/usr/bin/env python
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import time
from tornado.testing import AsyncTestCase
from tornado.test.util import unittest
Unittest for the twisted-style reactor.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import os
import shutil
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import os
import sys
# coding: utf-8
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import sys
from tornado.escape import utf8
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from tornado import gen
from tornado.escape import json_decode, utf8, to_unicode, recursive_unicode, native_str, to_basestring
from tornado.iostream import IOStream
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from wsgiref.validate import validator
from tornado.escape import json_decode
information.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
from cStringIO import StringIO
try:
kwargs['buffer'] = True
if __name__ == '__main__' and len(argv) == 1:
- print >> sys.stderr, "No tests specified"
+ print("No tests specified", file=sys.stderr)
sys.exit(1)
try:
# In order to be able to run tests by their fully-qualified name
"""Miscellaneous utility functions."""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import zlib
back to the main thread before finishing the request.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import Cookie
import base64
documentation for caveats).
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
# Author: Jacob Kristhammar, 2010
import array
and Tornado handlers in a single server.
"""
-from __future__ import absolute_import, division, with_statement
+from __future__ import absolute_import, division, print_function, with_statement
import Cookie
import httplib