Skip to content

Commit ebcfe7b

Browse files
authored
random: use bound methods (#7408)
1 parent 3bbc36c commit ebcfe7b

File tree

4 files changed

+24
-51
lines changed

4 files changed

+24
-51
lines changed

stdlib/random.pyi

Lines changed: 24 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -122,53 +122,29 @@ class SystemRandom(Random):
122122
def setstate(self, *args: Any, **kwds: Any) -> NoReturn: ...
123123

124124
# ----- random function stubs -----
125-
if sys.version_info >= (3, 9):
126-
def seed(a: int | float | str | bytes | bytearray | None = ..., version: int = ...) -> None: ...
127-
128-
else:
129-
def seed(a: Any = ..., version: int = ...) -> None: ...
130-
131-
def getstate() -> object: ...
132-
def setstate(state: object) -> None: ...
133-
def getrandbits(__k: int) -> int: ...
134-
def randrange(start: int, stop: None | int = ..., step: int = ...) -> int: ...
135-
def randint(a: int, b: int) -> int: ...
136-
137-
if sys.version_info >= (3, 9):
138-
def randbytes(n: int) -> bytes: ...
139-
140-
def choice(seq: SupportsLenAndGetItem[_T]) -> _T: ...
141-
def choices(
142-
population: SupportsLenAndGetItem[_T],
143-
weights: Sequence[float] | None = ...,
144-
*,
145-
cum_weights: Sequence[float] | None = ...,
146-
k: int = ...,
147-
) -> list[_T]: ...
148-
def shuffle(x: MutableSequence[Any], random: Callable[[], float] | None = ...) -> None: ...
149125

126+
_inst: Random = ...
127+
seed = _inst.seed
128+
random = _inst.random
129+
uniform = _inst.uniform
130+
triangular = _inst.triangular
131+
randint = _inst.randint
132+
choice = _inst.choice
133+
randrange = _inst.randrange
134+
sample = _inst.sample
135+
shuffle = _inst.shuffle
136+
choices = _inst.choices
137+
normalvariate = _inst.normalvariate
138+
lognormvariate = _inst.lognormvariate
139+
expovariate = _inst.expovariate
140+
vonmisesvariate = _inst.vonmisesvariate
141+
gammavariate = _inst.gammavariate
142+
gauss = _inst.gauss
143+
betavariate = _inst.betavariate
144+
paretovariate = _inst.paretovariate
145+
weibullvariate = _inst.weibullvariate
146+
getstate = _inst.getstate
147+
setstate = _inst.setstate
148+
getrandbits = _inst.getrandbits
150149
if sys.version_info >= (3, 9):
151-
def sample(population: Sequence[_T] | AbstractSet[_T], k: int, *, counts: Iterable[_T] | None = ...) -> list[_T]: ...
152-
153-
else:
154-
def sample(population: Sequence[_T] | AbstractSet[_T], k: int) -> list[_T]: ...
155-
156-
def random() -> float: ...
157-
def uniform(a: float, b: float) -> float: ...
158-
def triangular(low: float = ..., high: float = ..., mode: float | None = ...) -> float: ...
159-
def betavariate(alpha: float, beta: float) -> float: ...
160-
def expovariate(lambd: float) -> float: ...
161-
def gammavariate(alpha: float, beta: float) -> float: ...
162-
163-
if sys.version_info >= (3, 11):
164-
def gauss(mu: float = ..., sigma: float = ...) -> float: ...
165-
def normalvariate(mu: float = ..., sigma: float = ...) -> float: ...
166-
167-
else:
168-
def gauss(mu: float, sigma: float) -> float: ...
169-
def normalvariate(mu: float, sigma: float) -> float: ...
170-
171-
def lognormvariate(mu: float, sigma: float) -> float: ...
172-
def vonmisesvariate(mu: float, kappa: float) -> float: ...
173-
def paretovariate(alpha: float) -> float: ...
174-
def weibullvariate(alpha: float, beta: float) -> float: ...
150+
randbytes = _inst.randbytes

tests/stubtest_allowlists/py36.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ mmap.ACCESS_DEFAULT
3434
(os|posix).utime
3535
pyexpat.XMLParserType.ExternalEntityParserCreate # C signature is wrong - function gets only positional args
3636
random.Random.randrange # missing undocumented arg _int
37-
random.randrange # missing undocumented arg _int
3837
sched.Event.__doc__ # __slots__ is overridden
3938
stringprep.unicodedata # re-exported from unicodedata
4039
sre_compile.dis

tests/stubtest_allowlists/py37.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ json.loads
3434
pyexpat.XMLParserType.ExternalEntityParserCreate # C signature is wrong - function gets only positional args
3535
queue.SimpleQueue.__init__ # Default C __init__ signature is wrong
3636
random.Random.randrange # missing undocumented arg _int
37-
random.randrange # missing undocumented arg _int
3837
re.Pattern.scanner # Undocumented and not useful. #6405
3938
sched.Event.__doc__ # __slots__ is overridden
4039
ssl.PROTOCOL_SSLv3 # Depends on ssl compilation

tests/stubtest_allowlists/py38.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ multiprocessing.spawn._main
4747
pickle.Pickler.reducer_override # implemented in C pickler
4848
queue.SimpleQueue.__init__ # Default C __init__ signature is wrong
4949
random.Random.randrange # missing undocumented arg _int
50-
random.randrange # missing undocumented arg _int
5150
re.Pattern.scanner # Undocumented and not useful. #6405
5251
sched.Event.__doc__ # __slots__ is overridden
5352
ssl.PROTOCOL_SSLv3 # Depends on ssl compilation

0 commit comments

Comments
 (0)