Skip to content

Commit 9d1d6cf

Browse files
committed
Add Python 3.15 math integer updates
1 parent 24f7cf4 commit 9d1d6cf

6 files changed

Lines changed: 37 additions & 10 deletions

File tree

stdlib/@tests/stubtest_allowlists/py315.txt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,6 @@ mailbox.Mailbox.__exit__
130130
mailbox._ProxyFile.__class_getitem__
131131
marshal.dump
132132
marshal.dumps
133-
math.fmax
134-
math.fmin
135-
math.isnormal
136-
math.issubnormal
137-
math.signbit
138133
multiprocessing.context.BaseContext.set_forkserver_preload
139134
multiprocessing.forkserver.ForkServer.set_forkserver_preload
140135
multiprocessing.forkserver.main
@@ -197,8 +192,6 @@ profiling.sampling.sample
197192
profiling.sampling.stack_collector
198193
profiling.sampling.string_table
199194
profiling.tracing
200-
pydoc.Doc.STDLIB_DIR
201-
pydoc.Doc.getdocloc
202195
site.addsitedir
203196
site.addsitepackages
204197
site.addusersitepackages
@@ -221,7 +214,6 @@ threading.__all__
221214
threading.concurrent_tee
222215
threading.serialize_iterator
223216
threading.synchronized_iterator
224-
timeit.Timer.autorange
225217
tkinter.Grid.content
226218
tkinter.Grid.grid_content
227219
tkinter.Image.__iter__

stdlib/VERSIONS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ mailbox: 3.0-
208208
mailcap: 3.0-3.12
209209
marshal: 3.0-
210210
math: 3.0-
211+
math.integer: 3.15-
211212
mimetypes: 3.0-
212213
mmap: 3.0-
213214
modulefinder: 3.0-
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ def floor(x: _SupportsFloor[_T], /) -> _T: ...
5858
@overload
5959
def floor(x: _SupportsFloatOrIndex, /) -> int: ...
6060
def fmod(x: _SupportsFloatOrIndex, y: _SupportsFloatOrIndex, /) -> float: ...
61+
62+
if sys.version_info >= (3, 15):
63+
def fmax(x: _SupportsFloatOrIndex, y: _SupportsFloatOrIndex, /) -> float: ...
64+
def fmin(x: _SupportsFloatOrIndex, y: _SupportsFloatOrIndex, /) -> float: ...
65+
6166
def frexp(x: _SupportsFloatOrIndex, /) -> tuple[float, int]: ...
6267
def fsum(seq: Iterable[_SupportsFloatOrIndex], /) -> float: ...
6368
def gamma(x: _SupportsFloatOrIndex, /) -> float: ...
@@ -73,6 +78,11 @@ def isclose(
7378
def isinf(x: _SupportsFloatOrIndex, /) -> bool: ...
7479
def isfinite(x: _SupportsFloatOrIndex, /) -> bool: ...
7580
def isnan(x: _SupportsFloatOrIndex, /) -> bool: ...
81+
82+
if sys.version_info >= (3, 15):
83+
def isnormal(x: _SupportsFloatOrIndex, /) -> bool: ...
84+
def issubnormal(x: _SupportsFloatOrIndex, /) -> bool: ...
85+
7686
def isqrt(n: SupportsIndex, /) -> int: ...
7787
def lcm(*integers: SupportsIndex) -> int: ...
7888
def ldexp(x: _SupportsFloatOrIndex, i: int, /) -> float: ...
@@ -118,6 +128,10 @@ def prod(iterable: Iterable[_MultiplicableT1], /, *, start: _MultiplicableT2) ->
118128
def radians(x: _SupportsFloatOrIndex, /) -> float: ...
119129
def remainder(x: _SupportsFloatOrIndex, y: _SupportsFloatOrIndex, /) -> float: ...
120130
def sin(x: _SupportsFloatOrIndex, /) -> float: ...
131+
132+
if sys.version_info >= (3, 15):
133+
def signbit(x: _SupportsFloatOrIndex, /) -> bool: ...
134+
121135
def sinh(x: _SupportsFloatOrIndex, /) -> float: ...
122136

123137
if sys.version_info >= (3, 12):

stdlib/math/integer.pyi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from typing import SupportsIndex
2+
3+
def comb(n: SupportsIndex, k: SupportsIndex, /) -> int: ...
4+
def factorial(n: SupportsIndex, /) -> int: ...
5+
def gcd(*integers: SupportsIndex) -> int: ...
6+
def isqrt(n: SupportsIndex, /) -> int: ...
7+
def lcm(*integers: SupportsIndex) -> int: ...
8+
def perm(n: SupportsIndex, k: SupportsIndex | None = None, /) -> int: ...

stdlib/pydoc.pyi

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ def safeimport(path: str, forceload: bool = ..., cache: MutableMapping[str, Modu
6262

6363
class Doc:
6464
PYTHONDOCS: str
65+
if sys.version_info >= (3, 15):
66+
STDLIB_DIR: str
67+
6568
def document(self, object: object, name: str | None = None, *args: Any) -> str: ...
6669
def fail(self, object: object, name: str | None = None, *args: Any) -> NoReturn: ...
6770
@abstractmethod
@@ -76,7 +79,10 @@ class Doc:
7679
def docproperty(self, object: object, name: str | None = None, *args: Any) -> str: ...
7780
@abstractmethod
7881
def docdata(self, object: object, name: str | None = None, *args: Any) -> str: ...
79-
def getdocloc(self, object: object, basedir: str = ...) -> str | None: ...
82+
if sys.version_info >= (3, 15):
83+
def getdocloc(self, object: object, basedir: str | None = None) -> str | None: ...
84+
else:
85+
def getdocloc(self, object: object, basedir: str = ...) -> str | None: ...
8086

8187
class HTMLRepr(Repr):
8288
def __init__(self) -> None: ...

stdlib/timeit.pyi

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import sys
12
import time
23
from collections.abc import Callable, Sequence
34
from typing import IO, Any, TypeAlias
@@ -20,7 +21,12 @@ class Timer:
2021
def print_exc(self, file: IO[str] | None = None) -> None: ...
2122
def timeit(self, number: int = 1000000) -> float: ...
2223
def repeat(self, repeat: int = 5, number: int = 1000000) -> list[float]: ...
23-
def autorange(self, callback: Callable[[int, float], object] | None = None) -> tuple[int, float]: ...
24+
if sys.version_info >= (3, 15):
25+
def autorange(
26+
self, callback: Callable[[int, float], object] | None = None, target_time: float = 0.2
27+
) -> tuple[int, float]: ...
28+
else:
29+
def autorange(self, callback: Callable[[int, float], object] | None = None) -> tuple[int, float]: ...
2430

2531
def timeit(
2632
stmt: _Stmt = "pass",

0 commit comments

Comments
 (0)