@@ -5,7 +5,7 @@ from builtins import list as _list # "list" conflicts with method name
5
5
from collections .abc import Callable , Container , Mapping , MutableMapping
6
6
from reprlib import Repr
7
7
from types import MethodType , ModuleType , TracebackType
8
- from typing import IO , Any , AnyStr , Final , NoReturn , TypeVar
8
+ from typing import IO , Any , AnyStr , Final , NoReturn , Protocol , TypeVar
9
9
from typing_extensions import TypeGuard
10
10
11
11
__all__ = ["help" ]
@@ -17,6 +17,9 @@ __date__: Final[str]
17
17
__version__ : Final [str ]
18
18
__credits__ : Final [str ]
19
19
20
+ class _Pager (Protocol ):
21
+ def __call__ (self , text : str , title : str = "" ) -> None : ...
22
+
20
23
def pathdirs () -> list [str ]: ...
21
24
def getdoc (object : object ) -> str : ...
22
25
def splitdoc (doc : AnyStr ) -> tuple [AnyStr , AnyStr ]: ...
@@ -229,16 +232,36 @@ class TextDoc(Doc):
229
232
doc : Any | None = None ,
230
233
) -> str : ...
231
234
232
- def pager (text : str ) -> None : ...
233
- def getpager () -> Callable [[str ], None ]: ...
235
+ if sys .version_info >= (3 , 13 ):
236
+ def pager (text : str , title : str = "" ) -> None : ...
237
+
238
+ else :
239
+ def pager (text : str ) -> None : ...
240
+
234
241
def plain (text : str ) -> str : ...
235
- def pipepager (text : str , cmd : str ) -> None : ...
236
- def tempfilepager (text : str , cmd : str ) -> None : ...
237
- def ttypager (text : str ) -> None : ...
238
- def plainpager (text : str ) -> None : ...
239
242
def describe (thing : Any ) -> str : ...
240
243
def locate (path : str , forceload : bool = ...) -> object : ...
241
244
245
+ if sys .version_info >= (3 , 13 ):
246
+ def get_pager () -> _Pager : ...
247
+ def pipe_pager (text : str , cmd : str , title : str = "" ) -> None : ...
248
+ def tempfile_pager (text : str , cmd : str , title : str = "" ) -> None : ...
249
+ def tty_pager (text : str , title : str = "" ) -> None : ...
250
+ def plain_pager (text : str , title : str = "" ) -> None : ...
251
+
252
+ # For backwards compatibility.
253
+ getpager = get_pager
254
+ pipepager = pipe_pager
255
+ tempfilepager = tempfile_pager
256
+ ttypager = tty_pager
257
+ plainpager = plain_pager
258
+ else :
259
+ def getpager () -> Callable [[str ], None ]: ...
260
+ def pipepager (text : str , cmd : str ) -> None : ...
261
+ def tempfilepager (text : str , cmd : str ) -> None : ...
262
+ def ttypager (text : str ) -> None : ...
263
+ def plainpager (text : str ) -> None : ...
264
+
242
265
text : TextDoc
243
266
html : HTMLDoc
244
267
0 commit comments