Skip to content

Commit ac6c61b

Browse files
authored
Stubtest stdlib: unpin 3.11 and 3.12 micro versions (#12022)
1 parent ffa0327 commit ac6c61b

File tree

9 files changed

+99
-49
lines changed

9 files changed

+99
-49
lines changed

.github/workflows/daily.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ jobs:
3636
matrix:
3737
# various modules aren't available on macos-13 and higher
3838
os: ["ubuntu-latest", "windows-latest", "macos-12"]
39-
# TODO unpin the 3.11 and 3.12 micro versions
40-
python-version: ["3.8", "3.9", "3.10", "3.11.8", "3.12.2", "3.13"]
39+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
4140
fail-fast: false
4241

4342
steps:

.github/workflows/stubtest_stdlib.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ jobs:
3232
matrix:
3333
# various modules aren't available on macos-13 and higher
3434
os: ["ubuntu-latest", "windows-latest", "macos-12"]
35-
# TODO unpin 3.11 and 3.12 micro versions
36-
python-version: ["3.8", "3.9", "3.10", "3.11.8", "3.12.2", "3.13"]
35+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
3736
fail-fast: false
3837

3938
steps:

stdlib/@tests/stubtest_allowlists/py313.txt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ glob.__all__
121121
glob.translate
122122
importlib.metadata.DeprecatedTuple
123123
importlib.metadata.Distribution.origin
124-
importlib.metadata.MetadataPathFinder.invalidate_caches
125124
importlib.metadata._meta.SimplePath.exists
126125
importlib.metadata._meta.SimplePath.read_bytes
127126
importlib.metadata._meta.SimplePath.read_text
@@ -172,7 +171,6 @@ pdb.Pdb.MAX_CHAINED_EXCEPTION_DEPTH
172171
pdb.Pdb.completedefault
173172
pdb.Pdb.completenames
174173
pdb.Pdb.do_exceptions
175-
pdb.Pdb.execRcLines
176174
pdb.Pdb.interaction
177175
pdb.Pdb.message
178176
pdb.Pdb.user_opcode
@@ -182,15 +180,6 @@ platform.android_ver
182180
platform.ios_ver
183181
pstats.FunctionProfile.__replace__
184182
pstats.StatsProfile.__replace__
185-
pydoc.HTMLDoc.docdata
186-
pydoc.HTMLDoc.docproperty
187-
pydoc.HTMLDoc.docroutine
188-
pydoc.HTMLDoc.parentlink
189-
pydoc.TextDoc.docdata
190-
pydoc.TextDoc.docmodule
191-
pydoc.TextDoc.docother
192-
pydoc.TextDoc.docproperty
193-
pydoc.TextDoc.docroutine
194183
pydoc.pager
195184
pydoc.pipepager
196185
pydoc.plainpager

stdlib/argparse.pyi

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,15 @@ class _VersionAction(Action):
637637
help: str | None = None,
638638
deprecated: bool = False,
639639
) -> None: ...
640+
elif sys.version_info >= (3, 11):
641+
def __init__(
642+
self,
643+
option_strings: Sequence[str],
644+
version: str | None = None,
645+
dest: str = "==SUPPRESS==",
646+
default: str = "==SUPPRESS==",
647+
help: str | None = None,
648+
) -> None: ...
640649
else:
641650
def __init__(
642651
self,

stdlib/importlib/metadata/__init__.pyi

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,10 @@ class DistributionFinder(MetaPathFinder):
240240
class MetadataPathFinder(DistributionFinder):
241241
@classmethod
242242
def find_distributions(cls, context: DistributionFinder.Context = ...) -> Iterable[PathDistribution]: ...
243-
if sys.version_info >= (3, 10):
243+
if sys.version_info >= (3, 11):
244+
@classmethod
245+
def invalidate_caches(cls) -> None: ...
246+
elif sys.version_info >= (3, 10):
244247
# Yes, this is an instance method that has a parameter named "cls"
245248
def invalidate_caches(cls) -> None: ...
246249

stdlib/logging/__init__.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ class LoggerAdapter(Generic[_L]):
469469
def getEffectiveLevel(self) -> int: ...
470470
def setLevel(self, level: _Level) -> None: ...
471471
def hasHandlers(self) -> bool: ...
472-
if sys.version_info >= (3, 13):
472+
if sys.version_info >= (3, 11):
473473
def _log(
474474
self,
475475
level: int,

stdlib/pdb.pyi

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ class Pdb(Bdb, Cmd):
5555
) -> None: ...
5656
def forget(self) -> None: ...
5757
def setup(self, f: FrameType | None, tb: TracebackType | None) -> None: ...
58-
def execRcLines(self) -> None: ...
58+
if sys.version_info < (3, 11):
59+
def execRcLines(self) -> None: ...
60+
5961
def bp_commands(self, frame: FrameType) -> bool: ...
6062
def interaction(self, frame: FrameType | None, traceback: TracebackType | None) -> None: ...
6163
def displayhook(self, obj: object) -> None: ...

stdlib/pydoc.pyi

Lines changed: 79 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sys
2-
from _typeshed import OptExcInfo, SupportsWrite
2+
from _typeshed import OptExcInfo, SupportsWrite, Unused
33
from abc import abstractmethod
44
from builtins import list as _list # "list" conflicts with method name
55
from collections.abc import Callable, Container, Mapping, MutableMapping
@@ -121,30 +121,52 @@ class HTMLDoc(Doc):
121121
def formattree(
122122
self, tree: list[tuple[type, tuple[type, ...]] | list[Any]], modname: str, parent: type | None = None
123123
) -> str: ...
124-
def docmodule(self, object: object, name: str | None = None, mod: str | None = None, *ignored: Any) -> str: ...
124+
def docmodule(self, object: object, name: str | None = None, mod: str | None = None, *ignored: Unused) -> str: ...
125125
def docclass(
126126
self,
127127
object: object,
128128
name: str | None = None,
129129
mod: str | None = None,
130130
funcs: Mapping[str, str] = {},
131131
classes: Mapping[str, str] = {},
132-
*ignored: Any,
132+
*ignored: Unused,
133133
) -> str: ...
134134
def formatvalue(self, object: object) -> str: ...
135-
def docroutine( # type: ignore[override]
136-
self,
137-
object: object,
138-
name: str | None = None,
139-
mod: str | None = None,
140-
funcs: Mapping[str, str] = {},
141-
classes: Mapping[str, str] = {},
142-
methods: Mapping[str, str] = {},
143-
cl: type | None = None,
144-
) -> str: ...
145-
def docproperty(self, object: object, name: str | None = None, mod: str | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
146-
def docother(self, object: object, name: str | None = None, mod: Any | None = None, *ignored: Any) -> str: ...
147-
def docdata(self, object: object, name: str | None = None, mod: Any | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
135+
def docother(self, object: object, name: str | None = None, mod: Any | None = None, *ignored: Unused) -> str: ...
136+
if sys.version_info >= (3, 11):
137+
def docroutine( # type: ignore[override]
138+
self,
139+
object: object,
140+
name: str | None = None,
141+
mod: str | None = None,
142+
funcs: Mapping[str, str] = {},
143+
classes: Mapping[str, str] = {},
144+
methods: Mapping[str, str] = {},
145+
cl: type | None = None,
146+
homecls: type | None = None,
147+
) -> str: ...
148+
def docproperty(
149+
self, object: object, name: str | None = None, mod: str | None = None, cl: Any | None = None, *ignored: Unused
150+
) -> str: ...
151+
def docdata(
152+
self, object: object, name: str | None = None, mod: Any | None = None, cl: Any | None = None, *ignored: Unused
153+
) -> str: ...
154+
else:
155+
def docroutine( # type: ignore[override]
156+
self,
157+
object: object,
158+
name: str | None = None,
159+
mod: str | None = None,
160+
funcs: Mapping[str, str] = {},
161+
classes: Mapping[str, str] = {},
162+
methods: Mapping[str, str] = {},
163+
cl: type | None = None,
164+
) -> str: ...
165+
def docproperty(self, object: object, name: str | None = None, mod: str | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
166+
def docdata(self, object: object, name: str | None = None, mod: Any | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
167+
if sys.version_info >= (3, 11):
168+
def parentlink(self, object: type | ModuleType, modname: str) -> str: ...
169+
148170
def index(self, dir: str, shadowed: MutableMapping[str, bool] | None = None) -> str: ...
149171
def filelink(self, url: str, path: str) -> str: ...
150172

@@ -164,21 +186,48 @@ class TextDoc(Doc):
164186
def formattree(
165187
self, tree: list[tuple[type, tuple[type, ...]] | list[Any]], modname: str, parent: type | None = None, prefix: str = ""
166188
) -> str: ...
167-
def docmodule(self, object: object, name: str | None = None, mod: Any | None = None) -> str: ... # type: ignore[override]
168-
def docclass(self, object: object, name: str | None = None, mod: str | None = None, *ignored: Any) -> str: ...
189+
def docclass(self, object: object, name: str | None = None, mod: str | None = None, *ignored: Unused) -> str: ...
169190
def formatvalue(self, object: object) -> str: ...
170-
def docroutine(self, object: object, name: str | None = None, mod: str | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
171-
def docproperty(self, object: object, name: str | None = None, mod: Any | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
172-
def docdata(self, object: object, name: str | None = None, mod: str | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
173-
def docother( # type: ignore[override]
174-
self,
175-
object: object,
176-
name: str | None = None,
177-
mod: str | None = None,
178-
parent: str | None = None,
179-
maxlen: int | None = None,
180-
doc: Any | None = None,
181-
) -> str: ...
191+
if sys.version_info >= (3, 11):
192+
def docroutine( # type: ignore[override]
193+
self,
194+
object: object,
195+
name: str | None = None,
196+
mod: str | None = None,
197+
cl: Any | None = None,
198+
homecls: Any | None = None,
199+
) -> str: ...
200+
def docmodule(self, object: object, name: str | None = None, mod: Any | None = None, *ignored: Unused) -> str: ...
201+
def docproperty(
202+
self, object: object, name: str | None = None, mod: Any | None = None, cl: Any | None = None, *ignored: Unused
203+
) -> str: ...
204+
def docdata(
205+
self, object: object, name: str | None = None, mod: str | None = None, cl: Any | None = None, *ignored: Unused
206+
) -> str: ...
207+
def docother(
208+
self,
209+
object: object,
210+
name: str | None = None,
211+
mod: str | None = None,
212+
parent: str | None = None,
213+
*ignored: Unused,
214+
maxlen: int | None = None,
215+
doc: Any | None = None,
216+
) -> str: ...
217+
else:
218+
def docroutine(self, object: object, name: str | None = None, mod: str | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
219+
def docmodule(self, object: object, name: str | None = None, mod: Any | None = None) -> str: ... # type: ignore[override]
220+
def docproperty(self, object: object, name: str | None = None, mod: Any | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
221+
def docdata(self, object: object, name: str | None = None, mod: str | None = None, cl: Any | None = None) -> str: ... # type: ignore[override]
222+
def docother( # type: ignore[override]
223+
self,
224+
object: object,
225+
name: str | None = None,
226+
mod: str | None = None,
227+
parent: str | None = None,
228+
maxlen: int | None = None,
229+
doc: Any | None = None,
230+
) -> str: ...
182231

183232
def pager(text: str) -> None: ...
184233
def getpager() -> Callable[[str], None]: ...

stdlib/tokenize.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ class Untokenizer:
125125
def add_whitespace(self, start: _Position) -> None: ...
126126
def untokenize(self, iterable: Iterable[_Token]) -> str: ...
127127
def compat(self, token: Sequence[int | str], iterable: Iterable[_Token]) -> None: ...
128-
if sys.version_info >= (3, 13):
128+
if sys.version_info >= (3, 12):
129129
def escape_brackets(self, token: str) -> str: ...
130130

131131
# the docstring says "returns bytes" but is incorrect --

0 commit comments

Comments
 (0)