[Python-checkins] bpo-45155: Apply new byteorder default values for int.to/from_bytes (GH-28465)
rhettinger
webhook-mailer at python.org
Mon Sep 20 14:23:06 EDT 2021
https://github.com/python/cpython/commit/9510e6f3c797b4398aaf58abc1072b9db0a644f9
commit: 9510e6f3c797b4398aaf58abc1072b9db0a644f9
branch: main
author: Raymond Hettinger <rhettinger at users.noreply.github.com>
committer: rhettinger <rhettinger at users.noreply.github.com>
date: 2021-09-20T13:22:55-05:00
summary:
bpo-45155: Apply new byteorder default values for int.to/from_bytes (GH-28465)
files:
M Lib/base64.py
M Lib/hashlib.py
M Lib/ipaddress.py
M Lib/random.py
M Lib/uuid.py
diff --git a/Lib/base64.py b/Lib/base64.py
index ffe2ce7332baa..b25156ddb35d3 100755
--- a/Lib/base64.py
+++ b/Lib/base64.py
@@ -182,7 +182,7 @@ def _b32encode(alphabet, s):
from_bytes = int.from_bytes
b32tab2 = _b32tab2[alphabet]
for i in range(0, len(s), 5):
- c = from_bytes(s[i: i + 5], 'big')
+ c = from_bytes(s[i: i + 5]) # big endian
encoded += (b32tab2[c >> 30] + # bits 1 - 10
b32tab2[(c >> 20) & 0x3ff] + # bits 11 - 20
b32tab2[(c >> 10) & 0x3ff] + # bits 21 - 30
@@ -234,13 +234,13 @@ def _b32decode(alphabet, s, casefold=False, map01=None):
acc = (acc << 5) + b32rev[c]
except KeyError:
raise binascii.Error('Non-base32 digit found') from None
- decoded += acc.to_bytes(5, 'big')
+ decoded += acc.to_bytes(5) # big endian
# Process the last, partial quanta
if l % 8 or padchars not in {0, 1, 3, 4, 6}:
raise binascii.Error('Incorrect padding')
if padchars and decoded:
acc <<= 5 * padchars
- last = acc.to_bytes(5, 'big')
+ last = acc.to_bytes(5) # big endian
leftover = (43 - 5 * padchars) // 8 # 1: 4, 3: 3, 4: 2, 6: 1
decoded[-5:] = last[:leftover]
return bytes(decoded)
diff --git a/Lib/hashlib.py b/Lib/hashlib.py
index 21a73f3bf6cb6..562501860a72b 100644
--- a/Lib/hashlib.py
+++ b/Lib/hashlib.py
@@ -235,15 +235,15 @@ def prf(msg, inner=inner, outer=outer):
loop = 1
from_bytes = int.from_bytes
while len(dkey) < dklen:
- prev = prf(salt + loop.to_bytes(4, 'big'))
+ prev = prf(salt + loop.to_bytes(4))
# endianness doesn't matter here as long to / from use the same
- rkey = int.from_bytes(prev, 'big')
+ rkey = from_bytes(prev)
for i in range(iterations - 1):
prev = prf(prev)
# rkey = rkey ^ prev
- rkey ^= from_bytes(prev, 'big')
+ rkey ^= from_bytes(prev)
loop += 1
- dkey += rkey.to_bytes(inner.digest_size, 'big')
+ dkey += rkey.to_bytes(inner.digest_size)
return dkey[:dklen]
diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py
index 4a6496a5da3ef..e601f6f476e4d 100644
--- a/Lib/ipaddress.py
+++ b/Lib/ipaddress.py
@@ -135,7 +135,7 @@ def v4_int_to_packed(address):
"""
try:
- return address.to_bytes(4, 'big')
+ return address.to_bytes(4) # big endian
except OverflowError:
raise ValueError("Address negative or too large for IPv4")
@@ -151,7 +151,7 @@ def v6_int_to_packed(address):
"""
try:
- return address.to_bytes(16, 'big')
+ return address.to_bytes(16) # big endian
except OverflowError:
raise ValueError("Address negative or too large for IPv6")
@@ -1297,7 +1297,7 @@ def __init__(self, address):
# Constructing from a packed address
if isinstance(address, bytes):
self._check_packed_address(address, 4)
- self._ip = int.from_bytes(address, 'big')
+ self._ip = int.from_bytes(address) # big endian
return
# Assume input argument to be string or any object representation
diff --git a/Lib/random.py b/Lib/random.py
index 38c4a540522b3..3569d58cc4243 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -154,7 +154,7 @@ def seed(self, a=None, version=2):
elif version == 2 and isinstance(a, (str, bytes, bytearray)):
if isinstance(a, str):
a = a.encode()
- a = int.from_bytes(a + _sha512(a).digest(), 'big')
+ a = int.from_bytes(a + _sha512(a).digest())
elif not isinstance(a, (type(None), int, float, str, bytes, bytearray)):
raise TypeError('The only supported seed types are: None,\n'
@@ -795,14 +795,14 @@ class SystemRandom(Random):
def random(self):
"""Get the next random number in the range [0.0, 1.0)."""
- return (int.from_bytes(_urandom(7), 'big') >> 3) * RECIP_BPF
+ return (int.from_bytes(_urandom(7)) >> 3) * RECIP_BPF
def getrandbits(self, k):
"""getrandbits(k) -> x. Generates an int with k random bits."""
if k < 0:
raise ValueError('number of bits must be non-negative')
numbytes = (k + 7) // 8 # bits / 8 and rounded up
- x = int.from_bytes(_urandom(numbytes), 'big')
+ x = int.from_bytes(_urandom(numbytes))
return x >> (numbytes * 8 - k) # trim excess bits
def randbytes(self, n):
diff --git a/Lib/uuid.py b/Lib/uuid.py
index 67da88560cfb1..f179d68e8265a 100644
--- a/Lib/uuid.py
+++ b/Lib/uuid.py
@@ -186,7 +186,7 @@ def __init__(self, hex=None, bytes=None, bytes_le=None, fields=None,
if len(bytes) != 16:
raise ValueError('bytes is not a 16-char string')
assert isinstance(bytes, bytes_), repr(bytes)
- int = int_.from_bytes(bytes, byteorder='big')
+ int = int_.from_bytes(bytes) # big endian
if fields is not None:
if len(fields) != 6:
raise ValueError('fields is not a 6-tuple')
@@ -284,7 +284,7 @@ def __str__(self):
@property
def bytes(self):
- return self.int.to_bytes(16, 'big')
+ return self.int.to_bytes(16) # big endian
@property
def bytes_le(self):
More information about the Python-checkins
mailing list