Mercurial > p > roundup > code
annotate roundup/anypy/random_.py @ 6476:10a8a6bc4667
Change spacing for file addition; larger comment block; top label
Add padding to file input not the close button. This groups the clear
button with its file input.
Comment block becomes larger.
In table layout, make header and data align to top of cell.
Add padding to in table headers, makes the rows easier to scan.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 28 Aug 2021 21:43:11 -0400 |
| parents | adf54478cdaf |
| children | 07ce4e4110f5 |
| rev | line source |
|---|---|
|
5488
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
1 try: |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
2 from secrets import choice, randbelow, token_bytes |
|
6029
adf54478cdaf
flake8 cleanup: whitspeace format changes.
John Rouillard <rouilj@ieee.org>
parents:
5488
diff
changeset
|
3 |
|
adf54478cdaf
flake8 cleanup: whitspeace format changes.
John Rouillard <rouilj@ieee.org>
parents:
5488
diff
changeset
|
4 def seed(v=None): |
|
5488
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
5 pass |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
6 |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
7 is_weak = False |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
8 except ImportError: |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
9 import os as _os |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
10 import random as _random |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
11 |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
12 # prefer to use SystemRandom if it is available |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
13 if hasattr(_random, 'SystemRandom'): |
|
6029
adf54478cdaf
flake8 cleanup: whitspeace format changes.
John Rouillard <rouilj@ieee.org>
parents:
5488
diff
changeset
|
14 def seed(v=None): |
|
5488
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
15 pass |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
16 |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
17 _r = _random.SystemRandom() |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
18 is_weak = False |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
19 else: |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
20 # don't completely throw away the existing state, but add some |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
21 # more random state to the existing state |
|
6029
adf54478cdaf
flake8 cleanup: whitspeace format changes.
John Rouillard <rouilj@ieee.org>
parents:
5488
diff
changeset
|
22 def seed(v=None): |
|
5488
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
23 import os, time |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
24 _r.seed((_r.getstate(), |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
25 v, |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
26 hasattr(os, 'getpid') and os.getpid(), |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
27 time.time())) |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
28 |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
29 # create our own instance so we don't mess with the global |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
30 # random number generator |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
31 _r = _random.Random() |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
32 seed() |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
33 is_weak = True |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
34 |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
35 choice = _r.choice |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
36 |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
37 def randbelow(i): |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
38 return _r.randint(0, i - 1) |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
39 |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
40 if hasattr(_os, 'urandom'): |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
41 def token_bytes(l): |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
42 return _os.urandom(l) |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
43 else: |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
44 def token_bytes(l): |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
45 _bchr = chr if str == bytes else lambda x: bytes((x,)) |
|
52cb53eedf77
reworked random number use
Christof Meerwald <cmeerw@cmeerw.org>
parents:
diff
changeset
|
46 return b''.join([_bchr(_r.getrandbits(8)) for i in range(l)]) |
