[Lldb-commits] [lldb] 56f9cfe - [lldb] Remove uses of six module (NFC)
Dave Lee via lldb-commits
lldb-commits at lists.llvm.org
Thu Aug 11 19:06:25 PDT 2022
Author: Dave Lee
Date: 2022-08-11T19:06:15-07:00
New Revision: 56f9cfe30c4488aade888905bb6280ecb952a613
URL: https://github.com/llvm/llvm-project/commit/56f9cfe30c4488aade888905bb6280ecb952a613
DIFF: https://github.com/llvm/llvm-project/commit/56f9cfe30c4488aade888905bb6280ecb952a613.diff
LOG: [lldb] Remove uses of six module (NFC)
With lldb (& llvm) requiring Python 3.6+, use of the `six` module can be removed.
Differential Revision: https://reviews.llvm.org/D131304
Added:
Modified:
lldb/bindings/interface/SBData.i
lldb/bindings/python/python.swig
lldb/examples/python/scripted_process/scripted_process.py
lldb/examples/summaries/synth.py
lldb/packages/Python/lldbsuite/support/encoded_file.py
lldb/packages/Python/lldbsuite/support/seven.py
lldb/packages/Python/lldbsuite/test/decorators.py
lldb/packages/Python/lldbsuite/test/dotest.py
lldb/packages/Python/lldbsuite/test/lldbpexpect.py
lldb/packages/Python/lldbsuite/test/lldbplatform.py
lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
lldb/packages/Python/lldbsuite/test/lldbtest.py
lldb/packages/Python/lldbsuite/test/lldbutil.py
lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
lldb/test/API/api/listeners/TestListener.py
lldb/test/API/commands/command/script/import/thepackage/TPunitA.py
lldb/test/API/commands/command/script/import/thepackage/TPunitB.py
lldb/test/API/commands/process/launch/TestProcessLaunch.py
lldb/test/API/functionalities/gdb_remote_client/TestGdbClientModuleLoad.py
lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py
lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
lldb/test/API/functionalities/postmortem/minidump/TestMiniDump.py
lldb/test/API/functionalities/postmortem/wow64_minidump/TestWow64MiniDump.py
lldb/test/API/python_api/frame/TestFrames.py
lldb/test/API/terminal/TestSTTYBeforeAndAfter.py
lldb/test/API/test_utils/base/TestBaseTest.py
lldb/third_party/Python/module/progress/progress.py
lldb/third_party/Python/module/unittest2/unittest2/case.py
lldb/third_party/Python/module/unittest2/unittest2/main.py
lldb/third_party/Python/module/unittest2/unittest2/result.py
lldb/third_party/Python/module/unittest2/unittest2/suite.py
lldb/third_party/Python/module/unittest2/unittest2/test/test_case.py
lldb/third_party/Python/module/unittest2/unittest2/test/test_functiontestcase.py
Removed:
################################################################################
diff --git a/lldb/bindings/interface/SBData.i b/lldb/bindings/interface/SBData.i
index 1f2f9fbf05e2d..8e1d2fcf9d3ec 100644
--- a/lldb/bindings/interface/SBData.i
+++ b/lldb/bindings/interface/SBData.i
@@ -157,7 +157,7 @@ public:
for x in range(*key.indices(self.__len__())):
list.append(self.__getitem__(x))
return list
- if not (isinstance(key,six.integer_types)):
+ if not (isinstance(key, int)):
raise TypeError('must be int')
key = key * self.item_size # SBData uses byte-based indexes, but we want to use itemsize-based indexes here
error = SBError()
diff --git a/lldb/bindings/python/python.swig b/lldb/bindings/python/python.swig
index cb80e1be61a82..b1f6c4b9301da 100644
--- a/lldb/bindings/python/python.swig
+++ b/lldb/bindings/python/python.swig
@@ -84,8 +84,6 @@ void name ## _set(type *t, int index, type val) {
import uuid
import re
import os
-
-import six
%}
// Include the version of swig that was used to generate this interface.
diff --git a/lldb/examples/python/scripted_process/scripted_process.py b/lldb/examples/python/scripted_process/scripted_process.py
index b9388ae25e466..48966f8385cb0 100644
--- a/lldb/examples/python/scripted_process/scripted_process.py
+++ b/lldb/examples/python/scripted_process/scripted_process.py
@@ -1,10 +1,8 @@
from abc import ABCMeta, abstractmethod
-import six
import lldb
- at six.add_metaclass(ABCMeta)
-class ScriptedProcess:
+class ScriptedProcess(metaclass=ABCMeta):
"""
The base class for a scripted process.
@@ -193,8 +191,7 @@ def get_scripted_thread_plugin(self):
"""
return None
- at six.add_metaclass(ABCMeta)
-class ScriptedThread:
+class ScriptedThread(metaclass=ABCMeta):
"""
The base class for a scripted thread.
diff --git a/lldb/examples/summaries/synth.py b/lldb/examples/summaries/synth.py
index 02dcc4f701467..97e84ea9b09d3 100644
--- a/lldb/examples/summaries/synth.py
+++ b/lldb/examples/summaries/synth.py
@@ -33,8 +33,7 @@ def has_children(self):
def gen_child(self, name, value):
data = None
type = None
- import six
- if isinstance(value, six.integer_types):
+ if isinstance(value, int):
data = lldb.SBData.CreateDataFromUInt64Array(
self.bo, self.ps, [value])
type = self.value.target.GetBasicType(lldb.eBasicTypeLong)
diff --git a/lldb/packages/Python/lldbsuite/support/encoded_file.py b/lldb/packages/Python/lldbsuite/support/encoded_file.py
index c233e046ba757..9de63fdc3a8ea 100644
--- a/lldb/packages/Python/lldbsuite/support/encoded_file.py
+++ b/lldb/packages/Python/lldbsuite/support/encoded_file.py
@@ -10,26 +10,12 @@
# Python modules:
import io
-# Third party modules
-import six
-
-
-def _encoded_read(old_read, encoding):
- def impl(size):
- result = old_read(size)
- # If this is Python 2 then we need to convert the resulting `unicode` back
- # into a `str` before returning
- if six.PY2:
- result = result.encode(encoding)
- return result
- return impl
-
def _encoded_write(old_write, encoding):
def impl(s):
- # If we were asked to write a `str` (in Py2) or a `bytes` (in Py3) decode it
- # as unicode before attempting to write.
- if isinstance(s, six.binary_type):
+ # If we were asked to write a `bytes` decode it as unicode before
+ # attempting to write.
+ if isinstance(s, bytes):
s = s.decode(encoding, "replace")
# Filter unreadable characters, Python 3 is stricter than python 2 about them.
import re
@@ -38,9 +24,8 @@ def impl(s):
return impl
'''
-Create a Text I/O file object that can be written to with either unicode strings or byte strings
-under Python 2 and Python 3, and automatically encodes and decodes as necessary to return the
-native string type for the current Python version
+Create a Text I/O file object that can be written to with either unicode strings
+or byte strings.
'''
@@ -60,8 +45,6 @@ def open(
errors=errors,
newline=newline,
closefd=closefd)
- new_read = _encoded_read(getattr(wrapped_file, 'read'), encoding)
new_write = _encoded_write(getattr(wrapped_file, 'write'), encoding)
- setattr(wrapped_file, 'read', new_read)
setattr(wrapped_file, 'write', new_write)
return wrapped_file
diff --git a/lldb/packages/Python/lldbsuite/support/seven.py b/lldb/packages/Python/lldbsuite/support/seven.py
index 969b61d005c58..e9ebf172894c0 100644
--- a/lldb/packages/Python/lldbsuite/support/seven.py
+++ b/lldb/packages/Python/lldbsuite/support/seven.py
@@ -1,47 +1,31 @@
import binascii
-import six
import shlex
-
-if six.PY2:
- import commands
- get_command_output = commands.getoutput
- get_command_status_output = commands.getstatusoutput
-
- cmp_ = cmp
-else:
- def get_command_status_output(command):
- try:
- import subprocess
- return (
- 0,
- subprocess.check_output(
- command,
- shell=True,
- universal_newlines=True).rstrip())
- except subprocess.CalledProcessError as e:
- return (e.returncode, e.output)
-
- def get_command_output(command):
- return get_command_status_output(command)[1]
-
- cmp_ = lambda x, y: (x > y) - (x < y)
-
-def bitcast_to_string(b):
+import subprocess
+
+def get_command_output(command):
+ try:
+ return subprocess.check_output(
+ command,
+ shell=True,
+ universal_newlines=True).rstrip()
+ except subprocess.CalledProcessError as e:
+ return e.output
+
+def bitcast_to_string(b: bytes) -> str:
"""
- Take a string(PY2) or a bytes(PY3) object and return a string. The returned
- string contains the exact same bytes as the input object (latin1 <-> unicode
- transformation is an identity operation for the first 256 code points).
+ Take a bytes object and return a string. The returned string contains the
+ exact same bytes as the input object. (latin1 <-> unicode transformation is
+ an identity operation for the first 256 code points).
"""
- return b if six.PY2 else b.decode("latin1")
+ return b.decode("latin1")
-def bitcast_to_bytes(s):
+def bitcast_to_bytes(s: str) -> bytes:
"""
- Take a string and return a string(PY2) or a bytes(PY3) object. The returned
- object contains the exact same bytes as the input string. (latin1 <->
- unicode transformation is an identity operation for the first 256 code
- points).
+ Take a string and return a bytes object. The returned object contains the
+ exact same bytes as the input string. (latin1 <-> unicode transformation isi
+ an identity operation for the first 256 code points).
"""
- return s if six.PY2 else s.encode("latin1")
+ return s.encode("latin1")
def unhexlify(hexstr):
"""Hex-decode a string. The result is always a string."""
diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py
index 477f4a7209820..3e3db099cd4a6 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -13,7 +13,6 @@
import subprocess
# Third-party modules
-import six
import unittest2
# LLDB modules
@@ -71,7 +70,6 @@ def fn_neq(x, y): return x != y
LooseVersion(expected_str))
-_re_pattern_type = type(re.compile(''))
def _match_decorator_property(expected, actual):
if expected is None:
return True
@@ -82,7 +80,7 @@ def _match_decorator_property(expected, actual):
if isinstance(expected, no_match):
return not _match_decorator_property(expected.item, actual)
- if isinstance(expected, (_re_pattern_type,) + six.string_types):
+ if isinstance(expected, (re.Pattern, str)):
return re.search(expected, actual) is not None
if hasattr(expected, "__iter__"):
@@ -131,7 +129,7 @@ def wrapper(*args, **kwargs):
# the first way, the first argument will be the actual function because decorators are
# weird like that. So this is basically a check that says "which syntax was the original
# function decorated with?"
- if six.callable(bugnumber):
+ if callable(bugnumber):
return expectedFailure_impl(bugnumber)
else:
return expectedFailure_impl
@@ -162,7 +160,7 @@ def wrapper(*args, **kwargs):
# the first way, the first argument will be the actual function because decorators are
# weird like that. So this is basically a check that says "how was the
# decorator used"
- if six.callable(bugnumber):
+ if callable(bugnumber):
return skipTestIfFn_impl(bugnumber)
else:
return skipTestIfFn_impl
@@ -249,7 +247,7 @@ def fn(self):
mode_str, reason_str)
else:
reason_str = "{} unconditionally".format(mode_str)
- if bugnumber is not None and not six.callable(bugnumber):
+ if bugnumber is not None and not callable(bugnumber):
reason_str = reason_str + " [" + str(bugnumber) + "]"
return reason_str
@@ -463,7 +461,7 @@ def wrapper(*args, **kwargs):
# the first way, the first argument will be the actual function because decorators are
# weird like that. So this is basically a check that says "which syntax was the original
# function decorated with?"
- if six.callable(bugnumber):
+ if callable(bugnumber):
return expectedFailure_impl(bugnumber)
else:
return expectedFailure_impl
diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py
index ee59500a4fc7f..fd212631d3e27 100644
--- a/lldb/packages/Python/lldbsuite/test/dotest.py
+++ b/lldb/packages/Python/lldbsuite/test/dotest.py
@@ -36,7 +36,6 @@
import tempfile
# Third-party modules
-import six
import unittest2
# LLDB Modules
diff --git a/lldb/packages/Python/lldbsuite/test/lldbpexpect.py b/lldb/packages/Python/lldbsuite/test/lldbpexpect.py
index 22a30c5d22c45..f298cc501029a 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbpexpect.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbpexpect.py
@@ -4,9 +4,6 @@
import os
import sys
-# Third-party modules
-import six
-
# LLDB Modules
import lldb
from .lldbtest import *
@@ -72,7 +69,7 @@ def expect(self, cmd, substrs=None):
self.assertNotIn('\n', cmd)
# If 'substrs' is a string then this code would just check that every
# character of the string is in the output.
- assert not isinstance(substrs, six.string_types), \
+ assert not isinstance(substrs, str), \
"substrs must be a collection of strings"
self.child.sendline(cmd)
diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatform.py b/lldb/packages/Python/lldbsuite/test/lldbplatform.py
index 18a4fe5754dec..441894289933a 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbplatform.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbplatform.py
@@ -5,9 +5,6 @@
# System modules
import itertools
-# Third-party modules
-import six
-
# LLDB modules
import lldb
@@ -39,10 +36,10 @@
def translate(values):
- if isinstance(values, six.integer_types):
+ if isinstance(values, int):
# This is a value from the platform enumeration, translate it.
return __name_lookup[values]
- elif isinstance(values, six.string_types):
+ elif isinstance(values, str):
# This is a raw string, return it.
return [values]
elif hasattr(values, "__iter__"):
diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
index 719131c9248e8..3f95e8054f789 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
@@ -9,10 +9,7 @@
import subprocess
import sys
import os
-
-# Third-party modules
-import six
-from six.moves.urllib import parse as urlparse
+from urllib.parse import urlparse
# LLDB modules
from . import configuration
@@ -62,7 +59,7 @@ def android_device_api():
if not hasattr(android_device_api, 'result'):
assert configuration.lldb_platform_url is not None
device_id = None
- parsed_url = urlparse.urlparse(configuration.lldb_platform_url)
+ parsed_url = urlparse(configuration.lldb_platform_url)
host_name = parsed_url.netloc.split(":")[0]
if host_name != 'localhost':
device_id = host_name
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index d28e0d294ad3d..69bb5ac5629e4 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -48,9 +48,6 @@
# Third-party modules
import unittest2
-from six import add_metaclass
-from six import StringIO as SixStringIO
-import six
# LLDB modules
import lldb
@@ -320,7 +317,7 @@ def check_value_children(self, test_base, val, error_msg=None):
child_error = "Checking child with index " + str(i) + ":\n" + error_msg
expected_child.check_value(test_base, actual_child, child_error)
-class recording(SixStringIO):
+class recording(io.StringIO):
"""
A nice little context manager for recording the debugger interactions into
our session object. If trace flag is ON, it also emits the interactions
@@ -328,8 +325,8 @@ class recording(SixStringIO):
"""
def __init__(self, test, trace):
- """Create a SixStringIO instance; record the session obj and trace flag."""
- SixStringIO.__init__(self)
+ """Create a io.StringIO instance; record the session obj and trace flag."""
+ io.StringIO.__init__(self)
# The test might not have undergone the 'setUp(self)' phase yet, so that
# the attribute 'session' might not even exist yet.
self.session = getattr(test, "session", None) if test else None
@@ -338,7 +335,7 @@ def __init__(self, test, trace):
def __enter__(self):
"""
Context management protocol on entry to the body of the with statement.
- Just return the SixStringIO object.
+ Just return the io.StringIO object.
"""
return self
@@ -346,7 +343,7 @@ def __exit__(self, type, value, tb):
"""
Context management protocol on exit from the body of the with statement.
If trace is ON, it emits the recordings into stderr. Always add the
- recordings to our session object. And close the SixStringIO object, too.
+ recordings to our session object. And close the io.StringIO object, too.
"""
if self.trace:
print(self.getvalue(), file=sys.stderr)
@@ -355,8 +352,7 @@ def __exit__(self, type, value, tb):
self.close()
- at add_metaclass(abc.ABCMeta)
-class _BaseProcess(object):
+class _BaseProcess(object, metaclass=abc.ABCMeta):
@abc.abstractproperty
def pid(self):
@@ -945,7 +941,7 @@ def addTearDownHook(self, hook):
Hooks are executed in a first come first serve manner.
"""
- if six.callable(hook):
+ if callable(hook):
with recording(self, traceAlways) as sbuf:
print(
"Adding tearDown hook:",
@@ -1691,8 +1687,7 @@ def test_method(self, attrvalue=attrvalue):
# methods when a new class is loaded
- at add_metaclass(LLDBTestCaseFactory)
-class TestBase(Base):
+class TestBase(Base, metaclass=LLDBTestCaseFactory):
"""
This abstract base class is meant to be subclassed. It provides default
implementations for setUpClass(), tearDownClass(), setUp(), and tearDown(),
@@ -2230,7 +2225,7 @@ def filecheck(
def expect(
self,
- str,
+ string,
msg=None,
patterns=None,
startstr=None,
@@ -2264,9 +2259,9 @@ def expect(
client is expecting the output of the command not to match the golden
input.
- Finally, the required argument 'str' represents the lldb command to be
+ Finally, the required argument 'string' represents the lldb command to be
sent to the command interpreter. In case the keyword argument 'exe' is
- set to False, the 'str' is treated as a string to be matched/not-matched
+ set to False, the 'string' is treated as a string to be matched/not-matched
against the golden input.
"""
# Catch cases where `expect` has been miscalled. Specifically, prevent
@@ -2280,9 +2275,9 @@ def expect(
assert False, "expect() missing a matcher argument"
# Check `patterns` and `substrs` are not accidentally given as strings.
- assert not isinstance(patterns, six.string_types), \
+ assert not isinstance(patterns, str), \
"patterns must be a collection of strings"
- assert not isinstance(substrs, six.string_types), \
+ assert not isinstance(substrs, str), \
"substrs must be a collection of strings"
trace = (True if traceAlways else trace)
@@ -2292,7 +2287,7 @@ def expect(
# Pass the assert message along since it provides more semantic
# info.
self.runCmd(
- str,
+ string,
msg=msg,
trace=(
True if trace else False),
@@ -2305,13 +2300,13 @@ def expect(
# If error is True, the API client expects the command to fail!
if error:
self.assertFalse(self.res.Succeeded(),
- "Command '" + str + "' is expected to fail!")
+ "Command '" + string + "' is expected to fail!")
else:
- # No execution required, just compare str against the golden input.
- if isinstance(str, lldb.SBCommandReturnObject):
- output = str.GetOutput()
+ # No execution required, just compare string against the golden input.
+ if isinstance(string, lldb.SBCommandReturnObject):
+ output = string.GetOutput()
else:
- output = str
+ output = string
with recording(self, trace) as sbuf:
print("looking at:", output, file=sbuf)
@@ -2322,7 +2317,7 @@ def found_str(matched):
# To be used as assert fail message and/or trace content
log_lines = [
"{}:".format("Ran command" if exe else "Checking string"),
- "\"{}\"".format(str),
+ "\"{}\"".format(string),
# Space out command and output
"",
]
diff --git a/lldb/packages/Python/lldbsuite/test/lldbutil.py b/lldb/packages/Python/lldbsuite/test/lldbutil.py
index eba05a46b4959..8bd49c742cb04 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbutil.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbutil.py
@@ -9,16 +9,13 @@
# System modules
import errno
+import io
import os
import re
import sys
import subprocess
from typing import Dict
-# Third-party modules
-from six import StringIO as SixStringIO
-import six
-
# LLDB modules
import lldb
from . import lldbtest_config
@@ -111,7 +108,7 @@ def disassemble(target, function_or_symbol):
It returns the disassembly content in a string object.
"""
- buf = SixStringIO()
+ buf = io.StringIO()
insts = function_or_symbol.GetInstructions(target)
for i in insts:
print(i, file=buf)
@@ -1080,7 +1077,7 @@ def GetStackFrame(i):
def print_stacktrace(thread, string_buffer=False):
"""Prints a simple stack trace of this thread."""
- output = SixStringIO() if string_buffer else sys.stdout
+ output = io.StringIO() if string_buffer else sys.stdout
target = thread.GetProcess().GetTarget()
depth = thread.GetNumFrames()
@@ -1142,7 +1139,7 @@ def print_stacktrace(thread, string_buffer=False):
def print_stacktraces(process, string_buffer=False):
"""Prints the stack traces of all the threads."""
- output = SixStringIO() if string_buffer else sys.stdout
+ output = io.StringIO() if string_buffer else sys.stdout
print("Stack traces for " + str(process), file=output)
@@ -1258,7 +1255,7 @@ def get_args_as_string(frame, showFuncName=True):
def print_registers(frame, string_buffer=False):
"""Prints all the register sets of the frame."""
- output = SixStringIO() if string_buffer else sys.stdout
+ output = io.StringIO() if string_buffer else sys.stdout
print("Register sets for " + str(frame), file=output)
@@ -1344,7 +1341,7 @@ class BasicFormatter(object):
def format(self, value, buffer=None, indent=0):
if not buffer:
- output = SixStringIO()
+ output = io.StringIO()
else:
output = buffer
# If there is a summary, it suffices.
@@ -1374,7 +1371,7 @@ def __init__(self, indent_child=2):
def format(self, value, buffer=None):
if not buffer:
- output = SixStringIO()
+ output = io.StringIO()
else:
output = buffer
@@ -1401,7 +1398,7 @@ def __init__(self, indent_level=0, indent_child=2):
def format(self, value, buffer=None):
if not buffer:
- output = SixStringIO()
+ output = io.StringIO()
else:
output = buffer
@@ -1511,7 +1508,7 @@ def __repr__(self):
def skip_if_callable(test, mycallable, reason):
- if six.callable(mycallable):
+ if callable(mycallable):
if mycallable(test):
test.skipTest(reason)
return True
diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
index df1fd2cb71b6f..16539106e6638 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
@@ -59,8 +59,7 @@ def test_method(self, attrvalue=attrvalue):
return super(GdbRemoteTestCaseFactory, cls).__new__(
cls, name, bases, newattrs)
- at add_metaclass(GdbRemoteTestCaseFactory)
-class GdbRemoteTestCaseBase(Base):
+class GdbRemoteTestCaseBase(Base, metaclass=GdbRemoteTestCaseFactory):
# Default time out in seconds. The timeout is increased tenfold under Asan.
DEFAULT_TIMEOUT = 20 * (10 if ('ASAN_OPTIONS' in os.environ) else 1)
diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
index 82e1685666bc0..8e615ec8160a7 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
@@ -8,7 +8,6 @@
import os.path
import platform
import re
-import six
import socket
import subprocess
from lldbsuite.support import seven
@@ -803,7 +802,7 @@ def process_is_running(pid, unknown_value=True):
If we don't know how to check running process ids on the given OS:
return the value provided by the unknown_value arg.
"""
- if not isinstance(pid, six.integer_types):
+ if not isinstance(pid, int):
raise Exception(
"pid must be an integral type (actual type: %s)" % str(
type(pid)))
@@ -878,7 +877,7 @@ def send_packet(self, packet):
@staticmethod
def _checksum(packet):
checksum = 0
- for c in six.iterbytes(packet):
+ for c in iter(packet):
checksum += c
return checksum % 256
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
index 4bfec20b55e5c..2178db8e9b7c5 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
@@ -429,7 +429,7 @@ ScriptInterpreterPythonImpl::ScriptInterpreterPythonImpl(Debugger &debugger)
// Reloading modules requires a
diff erent syntax in Python 2 and Python 3.
// This provides a consistent syntax no matter what version of Python.
run_string.Clear();
- run_string.Printf("run_one_line (%s, 'from six.moves import reload_module')",
+ run_string.Printf("run_one_line (%s, 'from importlib import reload as reload_module')",
m_dictionary_name.c_str());
PyRun_SimpleString(run_string.GetData());
diff --git a/lldb/test/API/api/listeners/TestListener.py b/lldb/test/API/api/listeners/TestListener.py
index a8c36574d02e7..de0491b6dbc15 100644
--- a/lldb/test/API/api/listeners/TestListener.py
+++ b/lldb/test/API/api/listeners/TestListener.py
@@ -7,8 +7,6 @@
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
-import six
-
class ListenToModuleLoadedEvents (TestBase):
NO_DEBUG_INFO_TESTCASE = True
diff --git a/lldb/test/API/commands/command/script/import/thepackage/TPunitA.py b/lldb/test/API/commands/command/script/import/thepackage/TPunitA.py
index 9694b084295fc..ec2ae93e471f7 100644
--- a/lldb/test/API/commands/command/script/import/thepackage/TPunitA.py
+++ b/lldb/test/API/commands/command/script/import/thepackage/TPunitA.py
@@ -1,7 +1,3 @@
-
-import six
-
-
def command(debugger, command, result, internal_dict):
- result.PutCString(six.u("hello world A"))
+ result.PutCString("hello world A")
return None
diff --git a/lldb/test/API/commands/command/script/import/thepackage/TPunitB.py b/lldb/test/API/commands/command/script/import/thepackage/TPunitB.py
index 94a333bc696bb..82095e538cf1f 100644
--- a/lldb/test/API/commands/command/script/import/thepackage/TPunitB.py
+++ b/lldb/test/API/commands/command/script/import/thepackage/TPunitB.py
@@ -1,7 +1,3 @@
-
-import six
-
-
def command(debugger, command, result, internal_dict):
- result.PutCString(six.u("hello world B"))
+ result.PutCString("hello world B")
return None
diff --git a/lldb/test/API/commands/process/launch/TestProcessLaunch.py b/lldb/test/API/commands/process/launch/TestProcessLaunch.py
index a7ce5bf8fd41b..e9e7348413289 100644
--- a/lldb/test/API/commands/process/launch/TestProcessLaunch.py
+++ b/lldb/test/API/commands/process/launch/TestProcessLaunch.py
@@ -11,8 +11,6 @@
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
-import six
-
class ProcessLaunchTestCase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestGdbClientModuleLoad.py b/lldb/test/API/functionalities/gdb_remote_client/TestGdbClientModuleLoad.py
index 8fb2d7f7f0425..3d25229e50699 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestGdbClientModuleLoad.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestGdbClientModuleLoad.py
@@ -3,7 +3,6 @@
from lldbsuite.test.decorators import *
from lldbsuite.test.gdbclientutils import *
from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase
-from lldbsuite.support import seven
class MyResponder(MockGDBServerResponder):
"""
diff --git a/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py b/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py
index 7c36675c533f0..04f95d277c41f 100644
--- a/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py
+++ b/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py
@@ -2,8 +2,6 @@
Test basics of Minidump debugging.
"""
-from six import iteritems
-
import shutil
import lldb
@@ -327,7 +325,7 @@ def do_test_deeper_stack(self, binary, core, pid):
expected_stack = {1: 'bar', 2: 'foo', 3: '_start'}
self.assertGreaterEqual(thread.GetNumFrames(), len(expected_stack))
- for index, name in iteritems(expected_stack):
+ for index, name in expected_stack.items():
frame = thread.GetFrameAtIndex(index)
self.assertTrue(frame.IsValid())
function_name = frame.GetFunctionName()
diff --git a/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py b/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
index 98a4464cc2319..54a249e213238 100644
--- a/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
+++ b/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
@@ -2,9 +2,6 @@
Test basics of Minidump debugging.
"""
-from six import iteritems
-
-
import lldb
import os
from lldbsuite.test.decorators import *
diff --git a/lldb/test/API/functionalities/postmortem/minidump/TestMiniDump.py b/lldb/test/API/functionalities/postmortem/minidump/TestMiniDump.py
index e0c5600cf1bdd..e36f1af89e9ca 100644
--- a/lldb/test/API/functionalities/postmortem/minidump/TestMiniDump.py
+++ b/lldb/test/API/functionalities/postmortem/minidump/TestMiniDump.py
@@ -2,9 +2,6 @@
Test basics of mini dump debugging.
"""
-from six import iteritems
-
-
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
@@ -130,7 +127,7 @@ def test_deeper_stack_in_mini_dump(self):
expected_stack = {0: 'bar', 1: 'foo', 2: 'main'}
self.assertGreaterEqual(thread.GetNumFrames(), len(expected_stack))
- for index, name in iteritems(expected_stack):
+ for index, name in expected_stack.items():
frame = thread.GetFrameAtIndex(index)
self.assertTrue(frame.IsValid())
function_name = frame.GetFunctionName()
diff --git a/lldb/test/API/functionalities/postmortem/wow64_minidump/TestWow64MiniDump.py b/lldb/test/API/functionalities/postmortem/wow64_minidump/TestWow64MiniDump.py
index ef4cf6e30984b..b4c19ee8fc7b1 100644
--- a/lldb/test/API/functionalities/postmortem/wow64_minidump/TestWow64MiniDump.py
+++ b/lldb/test/API/functionalities/postmortem/wow64_minidump/TestWow64MiniDump.py
@@ -7,9 +7,6 @@
get the 32-bit register contexts.
"""
-from six import iteritems
-
-
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
diff --git a/lldb/test/API/python_api/frame/TestFrames.py b/lldb/test/API/python_api/frame/TestFrames.py
index d8721f23838b1..06bb1d346e86b 100644
--- a/lldb/test/API/python_api/frame/TestFrames.py
+++ b/lldb/test/API/python_api/frame/TestFrames.py
@@ -5,6 +5,7 @@
from __future__ import print_function
+import io
import lldb
from lldbsuite.test.decorators import *
@@ -42,8 +43,7 @@ def test_get_arg_vals_for_call_stack(self):
# depth of 3 of the 'c' leaf function.
callsOfA = 0
- from six import StringIO as SixStringIO
- session = SixStringIO()
+ session = io.StringIO()
while process.GetState() == lldb.eStateStopped:
thread = lldbutil.get_stopped_thread(
process, lldb.eStopReasonBreakpoint)
diff --git a/lldb/test/API/terminal/TestSTTYBeforeAndAfter.py b/lldb/test/API/terminal/TestSTTYBeforeAndAfter.py
index 51147101ab568..7e5dd7afcaf0e 100644
--- a/lldb/test/API/terminal/TestSTTYBeforeAndAfter.py
+++ b/lldb/test/API/terminal/TestSTTYBeforeAndAfter.py
@@ -6,7 +6,7 @@
import lldb
-import six
+import io
import sys
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
@@ -57,8 +57,8 @@ def test_stty_dash_a_before_and_afetr_invoking_lldb_command(self):
child.expect(expect_prompt)
# Turn on loggings for input/output to/from the child.
- child.logfile_send = child_send1 = six.StringIO()
- child.logfile_read = child_read1 = six.StringIO()
+ child.logfile_send = child_send1 = io.StringIO()
+ child.logfile_read = child_read1 = io.StringIO()
child.sendline('stty -a')
child.expect(expect_prompt)
@@ -75,8 +75,8 @@ def test_stty_dash_a_before_and_afetr_invoking_lldb_command(self):
child.sendline('quit')
child.expect(expect_prompt)
- child.logfile_send = child_send2 = six.StringIO()
- child.logfile_read = child_read2 = six.StringIO()
+ child.logfile_send = child_send2 = io.StringIO()
+ child.logfile_read = child_read2 = io.StringIO()
child.sendline('stty -a')
child.expect(expect_prompt)
diff --git a/lldb/test/API/test_utils/base/TestBaseTest.py b/lldb/test/API/test_utils/base/TestBaseTest.py
index 7f0ce1cc02823..254dfb1983d11 100644
--- a/lldb/test/API/test_utils/base/TestBaseTest.py
+++ b/lldb/test/API/test_utils/base/TestBaseTest.py
@@ -2,9 +2,10 @@
Test TestBase test functions.
"""
+import io
+
from lldbsuite.test.lldbtest import *
from lldbsuite.test_event import build_exception
-import six
class TestBuildMethod(Base):
@@ -15,9 +16,9 @@ def setUp(self):
# override the parent trace method
def trace(self, *args, **kwargs):
- io = six.StringIO()
- print(*args, file=io, **kwargs)
- self._traces.append(io.getvalue())
+ buf = io.StringIO()
+ print(*args, file=buf, **kwargs)
+ self._traces.append(buf.getvalue())
def test_build_fails_helpfully(self):
try:
diff --git a/lldb/third_party/Python/module/progress/progress.py b/lldb/third_party/Python/module/progress/progress.py
index e4bd9d5fd5b4c..833d1a3fc3f28 100644
--- a/lldb/third_party/Python/module/progress/progress.py
+++ b/lldb/third_party/Python/module/progress/progress.py
@@ -3,7 +3,6 @@
from __future__ import print_function
import use_lldb_suite
-import six
import sys
import time
@@ -21,17 +20,17 @@ class ProgressBar(object):
format Format
incremental
"""
- light_block = six.unichr(0x2591).encode("utf-8")
- solid_block = six.unichr(0x2588).encode("utf-8")
- solid_right_arrow = six.unichr(0x25BA).encode("utf-8")
+ light_block = chr(0x2591).encode("utf-8")
+ solid_block = chr(0x2588).encode("utf-8")
+ solid_right_arrow = chr(0x25BA).encode("utf-8")
def __init__(self,
start=0,
end=10,
width=12,
- fill=six.unichr(0x25C9).encode("utf-8"),
- blank=six.unichr(0x25CC).encode("utf-8"),
- marker=six.unichr(0x25CE).encode("utf-8"),
+ fill=chr(0x25C9).encode("utf-8"),
+ blank=chr(0x25CC).encode("utf-8"),
+ marker=chr(0x25CE).encode("utf-8"),
format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%',
incremental=True):
super(ProgressBar, self).__init__()
@@ -91,9 +90,9 @@ def __init__(self,
start=0,
end=10,
width=12,
- fill=six.unichr(0x25C9).encode("utf-8"),
- blank=six.unichr(0x25CC).encode("utf-8"),
- marker=six.unichr(0x25CE).encode("utf-8"),
+ fill=chr(0x25C9).encode("utf-8"),
+ blank=chr(0x25CC).encode("utf-8"),
+ marker=chr(0x25CE).encode("utf-8"),
format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%',
incremental=True,
stdout=sys.stdout):
@@ -129,9 +128,9 @@ def __init__(self,
start=0,
end=10,
width=12,
- fill=six.unichr(0x25C9).encode("utf-8"),
- blank=six.unichr(0x25CC).encode("utf-8"),
- marker=six.unichr(0x25CE).encode("utf-8"),
+ fill=chr(0x25C9).encode("utf-8"),
+ blank=chr(0x25CC).encode("utf-8"),
+ marker=chr(0x25CE).encode("utf-8"),
format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%',
incremental=True,
stdout=sys.stdout):
diff --git a/lldb/third_party/Python/module/unittest2/unittest2/case.py b/lldb/third_party/Python/module/unittest2/unittest2/case.py
index c567037ea8a41..a24b9af98f40b 100644
--- a/lldb/third_party/Python/module/unittest2/unittest2/case.py
+++ b/lldb/third_party/Python/module/unittest2/unittest2/case.py
@@ -7,8 +7,6 @@
import unittest
import warnings
-import six
-
from unittest2 import result
from unittest2.util import (
safe_repr, safe_str, strclass,
@@ -153,7 +151,7 @@ def __exit__(self, exc_type, exc_value, tb):
return True
expected_regexp = self.expected_regexp
- if isinstance(expected_regexp, six.string_types):
+ if isinstance(expected_regexp, str):
expected_regexp = re.compile(expected_regexp)
if not expected_regexp.search(str(exc_value)):
raise self.failureException(
@@ -173,7 +171,7 @@ def __setitem__(self, key, value):
def __getitem__(self, key):
value = self._store[key]
- if isinstance(value, six.string_types):
+ if isinstance(value, str):
return getattr(self.testcase, value)
return value
@@ -251,10 +249,7 @@ def __init__(self, methodName='runTest'):
self.addTypeEqualityFunc(tuple, 'assertTupleEqual')
self.addTypeEqualityFunc(set, 'assertSetEqual')
self.addTypeEqualityFunc(frozenset, 'assertSetEqual')
- if six.PY2:
- self.addTypeEqualityFunc(unicode, 'assertMultiLineEqual')
- else:
- self.addTypeEqualityFunc(str, 'assertMultiLineEqual')
+ self.addTypeEqualityFunc(str, 'assertMultiLineEqual')
def addTypeEqualityFunc(self, typeobj, function):
"""Add a type specific assertEqual style function to compare a type.
@@ -993,9 +988,9 @@ def assertItemsEqual(self, expected_seq, actual_seq, msg=None):
def assertMultiLineEqual(self, first, second, msg=None):
"""Assert that two multi-line strings are equal."""
- self.assert_(isinstance(first, six.string_types), (
+ self.assert_(isinstance(first, str), (
'First argument is not a string'))
- self.assert_(isinstance(second, six.string_types), (
+ self.assert_(isinstance(second, str), (
'Second argument is not a string'))
if first != second:
@@ -1076,7 +1071,7 @@ def assertRaisesRegexp(self, expected_exception, expected_regexp,
try:
callable_obj(*args, **kwargs)
except expected_exception as exc_value:
- if isinstance(expected_regexp, six.string_types):
+ if isinstance(expected_regexp, str):
expected_regexp = re.compile(expected_regexp)
if not expected_regexp.search(str(exc_value)):
raise self.failureException(
@@ -1091,7 +1086,7 @@ def assertRaisesRegexp(self, expected_exception, expected_regexp,
def assertRegexpMatches(self, text, expected_regexp, msg=None):
"""Fail the test unless the text matches the regular expression."""
- if isinstance(expected_regexp, six.string_types):
+ if isinstance(expected_regexp, str):
expected_regexp = re.compile(expected_regexp)
if not expected_regexp.search(text):
msg = msg or "Regexp didn't match"
@@ -1101,7 +1096,7 @@ def assertRegexpMatches(self, text, expected_regexp, msg=None):
def assertNotRegexpMatches(self, text, unexpected_regexp, msg=None):
"""Fail the test if the text matches the regular expression."""
- if isinstance(unexpected_regexp, six.string_types):
+ if isinstance(unexpected_regexp, str):
unexpected_regexp = re.compile(unexpected_regexp)
match = unexpected_regexp.search(text)
if match:
diff --git a/lldb/third_party/Python/module/unittest2/unittest2/main.py b/lldb/third_party/Python/module/unittest2/unittest2/main.py
index 76e3e7323a857..0d3c5b8bd6c4d 100644
--- a/lldb/third_party/Python/module/unittest2/unittest2/main.py
+++ b/lldb/third_party/Python/module/unittest2/unittest2/main.py
@@ -3,7 +3,6 @@
import sys
import os
import types
-import six
from unittest2 import loader, runner
try:
@@ -77,7 +76,7 @@ def __init__(self, module='__main__', defaultTest=None,
argv=None, testRunner=None,
testLoader=loader.defaultTestLoader, exit=True,
verbosity=1, failfast=None, catchbreak=None, buffer=None):
- if isinstance(module, six.string_types):
+ if isinstance(module, str):
self.module = __import__(module)
for part in module.split('.')[1:]:
self.module = getattr(self.module, part)
diff --git a/lldb/third_party/Python/module/unittest2/unittest2/result.py b/lldb/third_party/Python/module/unittest2/unittest2/result.py
index 8f89816b772fb..97eb4fa851481 100644
--- a/lldb/third_party/Python/module/unittest2/unittest2/result.py
+++ b/lldb/third_party/Python/module/unittest2/unittest2/result.py
@@ -2,12 +2,11 @@
import use_lldb_suite
+import io
import sys
import traceback
import unittest
-from six import StringIO as SixStringIO
-
from unittest2 import util
from unittest2.compatibility import wraps
@@ -65,8 +64,8 @@ def startTest(self, test):
self._mirrorOutput = False
if self.buffer:
if self._stderr_buffer is None:
- self._stderr_buffer = SixStringIO()
- self._stdout_buffer = SixStringIO()
+ self._stderr_buffer = io.StringIO()
+ self._stdout_buffer = io.StringIO()
sys.stdout = self._stdout_buffer
sys.stderr = self._stderr_buffer
diff --git a/lldb/third_party/Python/module/unittest2/unittest2/suite.py b/lldb/third_party/Python/module/unittest2/unittest2/suite.py
index 6b50680ec0985..f2554447cc91a 100644
--- a/lldb/third_party/Python/module/unittest2/unittest2/suite.py
+++ b/lldb/third_party/Python/module/unittest2/unittest2/suite.py
@@ -3,7 +3,6 @@
import sys
import unittest
from unittest2 import case, util
-import six
__unittest = True
@@ -50,7 +49,7 @@ def addTest(self, test):
self._tests.append(test)
def addTests(self, tests):
- if isinstance(tests, six.string_types):
+ if isinstance(tests, str):
raise TypeError("tests must be an iterable of tests, not a string")
for test in tests:
self.addTest(test)
diff --git a/lldb/third_party/Python/module/unittest2/unittest2/test/test_case.py b/lldb/third_party/Python/module/unittest2/unittest2/test/test_case.py
index acf7e4edc57bb..795fa39be7350 100644
--- a/lldb/third_party/Python/module/unittest2/unittest2/test/test_case.py
+++ b/lldb/third_party/Python/module/unittest2/unittest2/test/test_case.py
@@ -1,7 +1,6 @@
import
diff lib
import pprint
import re
-import six
from copy import deepcopy
@@ -543,7 +542,7 @@ class Foo(unittest2.TestCase):
def runTest(self):
pass
- self.assertIsInstance(Foo().id(), six.string_types)
+ self.assertIsInstance(Foo().id(), str)
# "If result is omitted or None, a temporary result object is created
# and used, but is not made available to the caller. As TestCase owns the
diff --git a/lldb/third_party/Python/module/unittest2/unittest2/test/test_functiontestcase.py b/lldb/third_party/Python/module/unittest2/unittest2/test/test_functiontestcase.py
index ccfadc97d3646..9bafb54be5a6e 100644
--- a/lldb/third_party/Python/module/unittest2/unittest2/test/test_functiontestcase.py
+++ b/lldb/third_party/Python/module/unittest2/unittest2/test/test_functiontestcase.py
@@ -1,5 +1,4 @@
import unittest2
-import six
from unittest2.test.support import LoggingResult
@@ -125,7 +124,7 @@ def tearDown():
def test_id(self):
test = unittest2.FunctionTestCase(lambda: None)
- self.assertIsInstance(test.id(), six.string_types)
+ self.assertIsInstance(test.id(), str)
# "Returns a one-line description of the test, or None if no description
# has been provided. The default implementation of this method returns
More information about the lldb-commits
mailing list