Mercurial > p > roundup > code
view roundup/anypy/random_.py @ 8209:9d2ad7386627
chore(ruff): use names not magic numbers.
This one names the 32 chars as being equivalent to 256 bytes
Also adds the missing http_.client.TOO_MANY_REQUESTS under python 2 to
http_. It allows me to use a symbolic name and not have to touch
client.py code when I remove python2 support from http_.
Also the prior checkin had a bogus commit message. Sigh, time to step
away from the computer today 8-). It replaced a magic number with
MAX_MIME_EXTENSION_LENGTH which was set to a better magic number
derived by parsing extensions in /etc/mime.types.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 11 Dec 2024 16:24:16 -0500 |
| parents | f002747b6773 |
| children |
line wrap: on
line source
# ruff: noqa: ARG001 try: from secrets import choice, randbelow, token_bytes def seed(v=None): pass is_weak = False except ImportError: import os as _os import random as _random # prefer to use SystemRandom if it is available if hasattr(_random, 'SystemRandom'): def seed(v=None): pass _r = _random.SystemRandom() is_weak = False else: # don't completely throw away the existing state, but add some # more random state to the existing state def seed(v=None): # ruff: noqa: PLC0415 import os import time _r.seed((_r.getstate(), v, hasattr(os, 'getpid') and os.getpid(), time.time())) # create our own instance so we don't mess with the global # random number generator _r = _random.Random() seed() is_weak = True choice = _r.choice def randbelow(i): return _r.randint(0, i - 1) if hasattr(_os, 'urandom'): def token_bytes(size): return _os.urandom(size) else: def token_bytes(size): _bchr = chr if str is bytes else lambda x: bytes((x,)) return b''.join([_bchr(_r.getrandbits(8)) for i in range(size)])
