From e8a6386f83e70d6add39016b49878c39d2cb338c Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Tue, 9 Jul 2024 17:31:09 -0500 Subject: [PATCH 1/6] Pydoc 3.13 fixes --- stdlib/@tests/stubtest_allowlists/py313.txt | 5 ---- stdlib/pydoc.pyi | 30 ++++++++++++++++----- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/py313.txt b/stdlib/@tests/stubtest_allowlists/py313.txt index 2f3db297afee..3b02a73abb37 100644 --- a/stdlib/@tests/stubtest_allowlists/py313.txt +++ b/stdlib/@tests/stubtest_allowlists/py313.txt @@ -106,11 +106,6 @@ os.path.splitroot # `__replace__` to be special cased in dataclasses pstats.FunctionProfile.__replace__ pstats.StatsProfile.__replace__ -pydoc.pager -pydoc.pipepager -pydoc.plainpager -pydoc.tempfilepager -pydoc.ttypager site.gethistoryfile site.register_readline sre_compile.SRE_FLAG_TEMPLATE diff --git a/stdlib/pydoc.pyi b/stdlib/pydoc.pyi index 1a90eb30efca..e9f2d91a1573 100644 --- a/stdlib/pydoc.pyi +++ b/stdlib/pydoc.pyi @@ -5,7 +5,7 @@ from builtins import list as _list # "list" conflicts with method name from collections.abc import Callable, Container, Mapping, MutableMapping from reprlib import Repr from types import MethodType, ModuleType, TracebackType -from typing import IO, Any, AnyStr, Final, NoReturn, TypeVar +from typing import IO, Any, AnyStr, Final, NoReturn, Protocol, TypeVar from typing_extensions import TypeGuard __all__ = ["help"] @@ -17,6 +17,9 @@ __date__: Final[str] __version__: Final[str] __credits__: Final[str] +class _Pager(Protocol): + def __call__(self, text: str, title: str = "") -> None: ... + def pathdirs() -> list[str]: ... def getdoc(object: object) -> str: ... def splitdoc(doc: AnyStr) -> tuple[AnyStr, AnyStr]: ... @@ -230,15 +233,30 @@ class TextDoc(Doc): ) -> str: ... def pager(text: str) -> None: ... -def getpager() -> Callable[[str], None]: ... def plain(text: str) -> str: ... -def pipepager(text: str, cmd: str) -> None: ... -def tempfilepager(text: str, cmd: str) -> None: ... -def ttypager(text: str) -> None: ... -def plainpager(text: str) -> None: ... def describe(thing: Any) -> str: ... def locate(path: str, forceload: bool = ...) -> object: ... +if sys.version_info >= (3, 11): + def get_pager() -> _Pager: ... + def pipe_pager(text: str, title: str = "") -> None: ... + def tempfile_pager(text: str, cmd: str, title: str = "") -> None: ... + def tty_pager(text: str, title: str = "") -> None: ... + def plain_pager(text: str, title: str = "") -> None: ... + + # For backwards compatibility. + getpager = get_pager + pipepager = pipe_pager + tempfilepager = tempfile_pager + ttypager = tty_pager + plainpager = plain_pager +else: + def getpager() -> Callable[[str], None]: ... + def pipepager(text: str, cmd: str) -> None: ... + def tempfilepager(text: str, cmd: str) -> None: ... + def ttypager(text: str) -> None: ... + def plainpager(text: str) -> None: ... + text: TextDoc html: HTMLDoc From 9a08bec681d35b6ea1804068fac0205cd4aff048 Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Tue, 9 Jul 2024 17:33:04 -0500 Subject: [PATCH 2/6] Fix ver --- stdlib/pydoc.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/pydoc.pyi b/stdlib/pydoc.pyi index e9f2d91a1573..4bc2065b574c 100644 --- a/stdlib/pydoc.pyi +++ b/stdlib/pydoc.pyi @@ -237,7 +237,7 @@ def plain(text: str) -> str: ... def describe(thing: Any) -> str: ... def locate(path: str, forceload: bool = ...) -> object: ... -if sys.version_info >= (3, 11): +if sys.version_info >= (3, 13): def get_pager() -> _Pager: ... def pipe_pager(text: str, title: str = "") -> None: ... def tempfile_pager(text: str, cmd: str, title: str = "") -> None: ... From 7decdd2abb2a3f6d10709dc15a276a035d827cf9 Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Tue, 9 Jul 2024 17:41:19 -0500 Subject: [PATCH 3/6] Fix --- stdlib/pydoc.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/pydoc.pyi b/stdlib/pydoc.pyi index 4bc2065b574c..2c04165ec0d2 100644 --- a/stdlib/pydoc.pyi +++ b/stdlib/pydoc.pyi @@ -239,7 +239,7 @@ def locate(path: str, forceload: bool = ...) -> object: ... if sys.version_info >= (3, 13): def get_pager() -> _Pager: ... - def pipe_pager(text: str, title: str = "") -> None: ... + def pipe_pager(text: str, cmd: str, title: str = "") -> None: ... def tempfile_pager(text: str, cmd: str, title: str = "") -> None: ... def tty_pager(text: str, title: str = "") -> None: ... def plain_pager(text: str, title: str = "") -> None: ... From 0c941448e11cdeb43f21b0e7a259c54af678450e Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:10:57 -0500 Subject: [PATCH 4/6] Fix --- stdlib/pydoc.pyi | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/stdlib/pydoc.pyi b/stdlib/pydoc.pyi index 2c04165ec0d2..09be8ee8edde 100644 --- a/stdlib/pydoc.pyi +++ b/stdlib/pydoc.pyi @@ -232,7 +232,11 @@ class TextDoc(Doc): doc: Any | None = None, ) -> str: ... -def pager(text: str) -> None: ... +if sys.version_info >= (3, 13): + def pager(text: str, title="") -> None: ... +else: + def pager(text: str) -> None: ... + def plain(text: str) -> str: ... def describe(thing: Any) -> str: ... def locate(path: str, forceload: bool = ...) -> object: ... From 3c99ecaec6d68adb8d52acd40eb1c8ed7832678e Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:11:22 -0500 Subject: [PATCH 5/6] missing type --- stdlib/pydoc.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/pydoc.pyi b/stdlib/pydoc.pyi index 09be8ee8edde..de6a7d85c7b5 100644 --- a/stdlib/pydoc.pyi +++ b/stdlib/pydoc.pyi @@ -233,7 +233,7 @@ class TextDoc(Doc): ) -> str: ... if sys.version_info >= (3, 13): - def pager(text: str, title="") -> None: ... + def pager(text: str, title: str = "") -> None: ... else: def pager(text: str) -> None: ... From f4218b2f6f717b8a95d7a2493953339e6486f3f5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 23:14:30 +0000 Subject: [PATCH 6/6] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/pydoc.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stdlib/pydoc.pyi b/stdlib/pydoc.pyi index de6a7d85c7b5..144f782acad5 100644 --- a/stdlib/pydoc.pyi +++ b/stdlib/pydoc.pyi @@ -234,6 +234,7 @@ class TextDoc(Doc): if sys.version_info >= (3, 13): def pager(text: str, title: str = "") -> None: ... + else: def pager(text: str) -> None: ...