summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lldb/packages/Python/lldbsuite/support/seven.py
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/support/seven.py')
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/support/seven.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/support/seven.py b/gnu/llvm/lldb/packages/Python/lldbsuite/support/seven.py
new file mode 100644
index 00000000000..9b23d94b021
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/support/seven.py
@@ -0,0 +1,51 @@
+import binascii
+import six
+
+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):
+ """
+ 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).
+ """
+ return b if six.PY2 else b.decode("latin1")
+
+def bitcast_to_bytes(s):
+ """
+ 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).
+ """
+ return s if six.PY2 else s.encode("latin1")
+
+def unhexlify(hexstr):
+ """Hex-decode a string. The result is always a string."""
+ return bitcast_to_string(binascii.unhexlify(hexstr))
+
+def hexlify(data):
+ """Hex-encode string data. The result if always a string."""
+ return bitcast_to_string(binascii.hexlify(bitcast_to_bytes(data)))