remove more Python2 compatibility
diff --git a/lib/java/src/test/java/org/apache/thrift/test/EqualityTest.java b/lib/java/src/test/java/org/apache/thrift/test/EqualityTest.java
index fee495c..02a14d0 100644
--- a/lib/java/src/test/java/org/apache/thrift/test/EqualityTest.java
+++ b/lib/java/src/test/java/org/apache/thrift/test/EqualityTest.java
@@ -20,10 +20,7 @@
/*
This program was generated by the following Python script:
-#!/usr/bin/python2.5
-
-# Remove this when Python 2.6 hits the streets.
-from __future__ import with_statement
+#!/usr/bin/python3
import sys
import os.path
diff --git a/lib/py/setup.py b/lib/py/setup.py
index 066483e..2a170a4 100644
--- a/lib/py/setup.py
+++ b/lib/py/setup.py
@@ -97,8 +97,6 @@
extensions = dict()
ssl_deps = []
- if sys.version_info[0] == 2:
- ssl_deps.append('ipaddress')
if sys.hexversion < 0x03050000:
ssl_deps.append('backports.ssl_match_hostname>=3.5')
tornado_deps = ['tornado>=4.0']
diff --git a/lib/py/src/TRecursive.py b/lib/py/src/TRecursive.py
index abf202c..aed696a 100644
--- a/lib/py/src/TRecursive.py
+++ b/lib/py/src/TRecursive.py
@@ -10,11 +10,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
from thrift.Thrift import TType
TYPE_IDX = 1
diff --git a/lib/py/src/TTornado.py b/lib/py/src/TTornado.py
index 5eff11d..c409e09 100644
--- a/lib/py/src/TTornado.py
+++ b/lib/py/src/TTornado.py
@@ -17,7 +17,6 @@
# under the License.
#
-from __future__ import absolute_import
import logging
import socket
import struct
@@ -34,7 +33,7 @@
logger = logging.getLogger(__name__)
-class _Lock(object):
+class _Lock:
def __init__(self):
self._waiters = deque()
diff --git a/lib/py/src/compat.py b/lib/py/src/compat.py
index 0e8271d..3b3d57f 100644
--- a/lib/py/src/compat.py
+++ b/lib/py/src/compat.py
@@ -17,30 +17,13 @@
# under the License.
#
-import sys
+from io import BytesIO as BufferIO # noqa
-if sys.version_info[0] == 2:
+def binary_to_str(bin_val):
+ return bin_val.decode('utf8')
- from cStringIO import StringIO as BufferIO
+def str_to_binary(str_val):
+ return bytes(str_val, 'utf8')
- def binary_to_str(bin_val):
- return bin_val
-
- def str_to_binary(str_val):
- return str_val
-
- def byte_index(bytes_val, i):
- return ord(bytes_val[i])
-
-else:
-
- from io import BytesIO as BufferIO # noqa
-
- def binary_to_str(bin_val):
- return bin_val.decode('utf8')
-
- def str_to_binary(str_val):
- return bytes(str_val, 'utf8')
-
- def byte_index(bytes_val, i):
- return bytes_val[i]
+def byte_index(bytes_val, i):
+ return bytes_val[i]
diff --git a/lib/py/src/protocol/TJSONProtocol.py b/lib/py/src/protocol/TJSONProtocol.py
index 1741702..fef0cc9 100644
--- a/lib/py/src/protocol/TJSONProtocol.py
+++ b/lib/py/src/protocol/TJSONProtocol.py
@@ -263,19 +263,11 @@
def _toChar(self, high, low=None):
if not low:
- if sys.version_info[0] == 2:
- return ("\\u%04x" % high).decode('unicode-escape') \
- .encode('utf-8')
- else:
- return chr(high)
+ return chr(high)
else:
codepoint = (1 << 16) + ((high & 0x3ff) << 10)
codepoint += low & 0x3ff
- if sys.version_info[0] == 2:
- s = "\\U%08x" % codepoint
- return s.decode('unicode-escape').encode('utf-8')
- else:
- return chr(codepoint)
+ return chr(codepoint)
def readJSONString(self, skipContext):
highSurrogate = None
@@ -317,7 +309,7 @@
elif character in ESCAPE_CHAR_VALS:
raise TProtocolException(TProtocolException.INVALID_DATA,
"Unescaped control char")
- elif sys.version_info[0] > 2:
+ else:
utf8_bytes = bytearray([ord(character)])
while ord(self.reader.peek()) >= 0x80:
utf8_bytes.append(ord(self.reader.read()))
diff --git a/lib/py/src/protocol/TProtocol.py b/lib/py/src/protocol/TProtocol.py
index bac54ae..ec71ab3 100644
--- a/lib/py/src/protocol/TProtocol.py
+++ b/lib/py/src/protocol/TProtocol.py
@@ -261,11 +261,6 @@
raise TProtocolException(type=TProtocolException.INVALID_DATA,
message='Invalid binary field type %d' % ttype)
return ('readBinary', 'writeBinary', False)
- if sys.version_info[0] == 2 and spec == 'UTF8':
- if ttype != TType.STRING:
- raise TProtocolException(type=TProtocolException.INVALID_DATA,
- message='Invalid string field type %d' % ttype)
- return ('readUtf8', 'writeUtf8', False)
return self._TTYPE_HANDLERS[ttype] if ttype < len(self._TTYPE_HANDLERS) else (None, None, False)
def _read_by_ttype(self, ttype, spec, espec):
diff --git a/lib/py/src/transport/TTransport.py b/lib/py/src/transport/TTransport.py
index ff20d7e..a686b12 100644
--- a/lib/py/src/transport/TTransport.py
+++ b/lib/py/src/transport/TTransport.py
@@ -17,9 +17,10 @@
# under the License.
#
+from io import BytesIO as BufferIO
+
from struct import pack, unpack
from thrift.Thrift import TException
-from ..compat import BufferIO
class TTransportException(TException):
diff --git a/lib/py/src/transport/TZlibTransport.py b/lib/py/src/transport/TZlibTransport.py
index e848579..8b08297 100644
--- a/lib/py/src/transport/TZlibTransport.py
+++ b/lib/py/src/transport/TZlibTransport.py
@@ -22,13 +22,12 @@
data compression.
"""
-from __future__ import division
import zlib
from .TTransport import TTransportBase, CReadableTransport
from ..compat import BufferIO
-class TZlibTransportFactory(object):
+class TZlibTransportFactory:
"""Factory transport that builds zlib compressed transports.
This factory caches the last single client/transport that it was passed
diff --git a/lib/py/test/thrift_json.py b/lib/py/test/thrift_json.py
index 125ea59..5a491e2 100644
--- a/lib/py/test/thrift_json.py
+++ b/lib/py/test/thrift_json.py
@@ -42,8 +42,6 @@
transport = TTransport.TBufferedTransportFactory().getTransport(buf)
protocol = TJSONProtocol(transport)
- if sys.version_info[0] == 2:
- unicode_text = unicode_text.encode('utf8')
self.assertEqual(protocol.readString(), unicode_text)
def test_TJSONProtocol_write(self):