diff options
author | 2020-08-03 14:33:06 +0000 | |
---|---|---|
committer | 2020-08-03 14:33:06 +0000 | |
commit | 061da546b983eb767bad15e67af1174fb0bcf31c (patch) | |
tree | 83c78b820819d70aa40c36d90447978b300078c5 /gnu/llvm/lldb/packages/Python/lldbsuite/support/seven.py | |
parent | Import LLVM 10.0.0 release including clang, lld and lldb. (diff) | |
download | wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.tar.xz wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.zip |
Import LLVM 10.0.0 release including clang, lld and lldb.
ok hackroom
tested by plenty
Diffstat (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/support/seven.py')
-rw-r--r-- | gnu/llvm/lldb/packages/Python/lldbsuite/support/seven.py | 51 |
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))) |