Mercurial > p > roundup > code
view roundup/anypy/random_.py @ 5748:943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
config.ini from all templates. Looks like classic and minimal never
included a config.ini. Presence of config.ini stopped
'roundup-admin install' from generating an up to date config.ini.
Created special option class for backend database. Comment now uses
roundup.backend.list_backends to give user indication of valid values.
Also we now get an error if user specifies invalid backend.
Moved backend setting to top or [rdbms] section. It is the most
important thing in there and if set to anydbm (or some other non-rdbm)
the rest of the settings can be ignored.
Change rdbms config section comment to indicate that the backend
setting was used by other database backends. (e.g. if set to anydbm).
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 01 Jun 2019 09:05:23 -0400 |
| parents | 52cb53eedf77 |
| children | adf54478cdaf |
line wrap: on
line source
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): import os, 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(l): return _os.urandom(l) else: def token_bytes(l): _bchr = chr if str == bytes else lambda x: bytes((x,)) return b''.join([_bchr(_r.getrandbits(8)) for i in range(l)])
