Feature or enhancement
CPython 3.11 is on average 25% faster than CPython 3.10
Therefore hope the python 3.12 stdlibs can get optimized as well, since maybe web could use secrets tokens a lot
Pitch
|
def token_hex(nbytes=None): |
|
"""Return a random text string, in hexadecimal. |
|
|
|
The string has *nbytes* random bytes, each byte converted to two |
|
hex digits. If *nbytes* is ``None`` or not supplied, a reasonable |
|
default is used. |
|
|
|
>>> token_hex(16) #doctest:+SKIP |
|
'f9bf78b9a18ce6d46a0cd2b0b86df9da' |
|
|
|
""" |
|
return binascii.hexlify(token_bytes(nbytes)).decode('ascii') |
import os
t = os.urandom(32)
# Before:
timeit binascii.hexlify(t).decode('ascii') # 215 ns ± 6.7 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
# After:
timeit t.hex() # 91 ns ± 1.6 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)
Feature or enhancement
Therefore hope the python 3.12 stdlibs can get optimized as well, since maybe web could use secrets tokens a lot
Pitch
cpython/Lib/secrets.py
Lines 48 to 59 in 7c9c993
secrets.token_hex()speeded up 2x #99306