summaryrefslogtreecommitdiff
path: root/coverage/backward.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2013-09-28 10:07:55 -0400
committerNed Batchelder <ned@nedbatchelder.com>2013-09-28 10:07:55 -0400
commit5e5cf2d5b9d7decfce16142a7cf7cc140fcbf354 (patch)
tree42126d750637ec001e5a46046ff76100284faf0b /coverage/backward.py
parentf859f95e5988d88b580afdb7771f03a8ff612411 (diff)
downloadpython-coveragepy-git-5e5cf2d5b9d7decfce16142a7cf7cc140fcbf354.tar.gz
More abstractions for bytes objects. Cleans up some version checks in the real code.
Diffstat (limited to 'coverage/backward.py')
-rw-r--r--coverage/backward.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/coverage/backward.py b/coverage/backward.py
index 4894bac0..e782284a 100644
--- a/coverage/backward.py
+++ b/coverage/backward.py
@@ -140,6 +140,19 @@ if sys.version_info >= (3, 0):
"""Convert bytes `b` to a string."""
return b.decode('utf8')
+ def binary_bytes(byte_values):
+ """Produce a byte string with the ints from `byte_values`."""
+ return bytes(byte_values)
+
+ def byte_to_int(byte_value):
+ """Turn an element of a bytes object into an int."""
+ return byte_value
+
+ def bytes_to_ints(bytes_value):
+ """Turn a bytes object into a sequence of ints."""
+ # In Py3, iterating bytes gives ints.
+ return bytes_value
+
else:
def to_bytes(s):
"""Convert string `s` to bytes (no-op in 2.x)."""
@@ -149,6 +162,19 @@ else:
"""Convert bytes `b` to a string (no-op in 2.x)."""
return b
+ def binary_bytes(byte_values):
+ """Produce a byte string with the ints from `byte_values`."""
+ return "".join(chr(b) for b in byte_values)
+
+ def byte_to_int(byte_value):
+ """Turn an element of a bytes object into an int."""
+ return ord(byte_value)
+
+ def bytes_to_ints(bytes_value):
+ """Turn a bytes object into a sequence of ints."""
+ for byte in bytes_value:
+ yield ord(byte)
+
# Md5 is available in different places.
try:
import hashlib