Feature or enhancement
Proposal:
bytes.fromhex() should accept a bytes:
>>> bytes.fromhex(b'8a3218def90a84cb4373beed87d9ba1ccc7d90d1')
b'\x8a2\x18\xde\xf9\n\x84\xcbCs\xbe\xed\x87\xd9\xba\x1c\xcc}\x90\xd1'
Background:
bytes.fromhex() accepts a str:
>>> bytes.fromhex('8a3218def90a84cb4373beed87d9ba1ccc7d90d1')
b'\x8a2\x18\xde\xf9\n\x84\xcbCs\xbe\xed\x87\xd9\xba\x1c\xcc}\x90\xd1'
However, it refuses to parse a byte string:
>>> bytes.fromhex(b'8a3218def90a84cb4373beed87d9ba1ccc7d90d1')
Traceback (most recent call last):
File "<python-input-0>", line 1, in <module>
bytes.fromhex(b'8a3218def90a84cb4373beed87d9ba1ccc7d90d1')
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: fromhex() argument must be str, not bytes
This requires an extra .decode(), which is rather wasteful given that the str is not of any real use.
This came up for me in parsing the output of git cat-file --batch, which must be a binary stream because it contains bytes, but includes header lines like
8a3218def90a84cb4373beed87d9ba1ccc7d90d1 100644 1394
The integers are parseable directly from bytes:
>>> int(b'100644', 8)
33188
so it seems like an omission that the SHAs are not.
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
Linked PRs
Feature or enhancement
Proposal:
bytes.fromhex()should accept abytes:Background:
bytes.fromhex()accepts astr:However, it refuses to parse a byte string:
This requires an extra
.decode(), which is rather wasteful given that thestris not of any real use.This came up for me in parsing the output of
git cat-file --batch, which must be a binary stream because it contains bytes, but includes header lines likeThe integers are parseable directly from bytes:
so it seems like an omission that the SHAs are not.
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
Linked PRs