Skip to content

Commit f318894

Browse files
authored
update _CursesWindow to the runtime name "window" (#12744)
Prior to 3.8 the underlying C class was not given a name in python, so typeshed added _CursesWindow to use it as a type. Now that it has a name in python, typeshed should use that name. We can keep _CursesWindow as an alias, for anyone using that already.
1 parent dbc71c9 commit f318894

4 files changed

Lines changed: 29 additions & 25 deletions

File tree

stdlib/_curses.pyi

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ if sys.version_info >= (3, 9):
298298

299299
def getmouse() -> tuple[int, int, int, int, int]: ...
300300
def getsyx() -> tuple[int, int]: ...
301-
def getwin(file: SupportsRead[bytes], /) -> _CursesWindow: ...
301+
def getwin(file: SupportsRead[bytes], /) -> window: ...
302302
def halfdelay(tenths: int, /) -> None: ...
303303
def has_colors() -> bool: ...
304304

@@ -310,7 +310,7 @@ def has_il() -> bool: ...
310310
def has_key(key: int, /) -> bool: ...
311311
def init_color(color_number: int, r: int, g: int, b: int, /) -> None: ...
312312
def init_pair(pair_number: int, fg: int, bg: int, /) -> None: ...
313-
def initscr() -> _CursesWindow: ...
313+
def initscr() -> window: ...
314314
def intrflush(flag: bool, /) -> None: ...
315315
def is_term_resized(nlines: int, ncols: int, /) -> bool: ...
316316
def isendwin() -> bool: ...
@@ -321,8 +321,8 @@ def meta(yes: bool, /) -> None: ...
321321
def mouseinterval(interval: int, /) -> None: ...
322322
def mousemask(newmask: int, /) -> tuple[int, int]: ...
323323
def napms(ms: int, /) -> int: ...
324-
def newpad(nlines: int, ncols: int, /) -> _CursesWindow: ...
325-
def newwin(nlines: int, ncols: int, begin_y: int = ..., begin_x: int = ..., /) -> _CursesWindow: ...
324+
def newpad(nlines: int, ncols: int, /) -> window: ...
325+
def newwin(nlines: int, ncols: int, begin_y: int = ..., begin_x: int = ..., /) -> window: ...
326326
def nl(flag: bool = True, /) -> None: ...
327327
def nocbreak() -> None: ...
328328
def noecho() -> None: ...
@@ -378,7 +378,7 @@ def use_env(flag: bool, /) -> None: ...
378378
class error(Exception): ...
379379

380380
@final
381-
class _CursesWindow:
381+
class window: # undocumented
382382
encoding: str
383383
@overload
384384
def addch(self, ch: _ChType, attr: int = ...) -> None: ...
@@ -431,9 +431,9 @@ class _CursesWindow:
431431
def delch(self, y: int, x: int) -> None: ...
432432
def deleteln(self) -> None: ...
433433
@overload
434-
def derwin(self, begin_y: int, begin_x: int) -> _CursesWindow: ...
434+
def derwin(self, begin_y: int, begin_x: int) -> window: ...
435435
@overload
436-
def derwin(self, nlines: int, ncols: int, begin_y: int, begin_x: int) -> _CursesWindow: ...
436+
def derwin(self, nlines: int, ncols: int, begin_y: int, begin_x: int) -> window: ...
437437
def echochar(self, ch: _ChType, attr: int = ..., /) -> None: ...
438438
def enclose(self, y: int, x: int, /) -> bool: ...
439439
def erase(self) -> None: ...
@@ -505,16 +505,16 @@ class _CursesWindow:
505505
@overload
506506
def noutrefresh(self, pminrow: int, pmincol: int, sminrow: int, smincol: int, smaxrow: int, smaxcol: int) -> None: ...
507507
@overload
508-
def overlay(self, destwin: _CursesWindow) -> None: ...
508+
def overlay(self, destwin: window) -> None: ...
509509
@overload
510510
def overlay(
511-
self, destwin: _CursesWindow, sminrow: int, smincol: int, dminrow: int, dmincol: int, dmaxrow: int, dmaxcol: int
511+
self, destwin: window, sminrow: int, smincol: int, dminrow: int, dmincol: int, dmaxrow: int, dmaxcol: int
512512
) -> None: ...
513513
@overload
514-
def overwrite(self, destwin: _CursesWindow) -> None: ...
514+
def overwrite(self, destwin: window) -> None: ...
515515
@overload
516516
def overwrite(
517-
self, destwin: _CursesWindow, sminrow: int, smincol: int, dminrow: int, dmincol: int, dmaxrow: int, dmaxcol: int
517+
self, destwin: window, sminrow: int, smincol: int, dminrow: int, dmincol: int, dmaxrow: int, dmaxcol: int
518518
) -> None: ...
519519
def putwin(self, file: IO[Any], /) -> None: ...
520520
def redrawln(self, beg: int, num: int, /) -> None: ...
@@ -530,13 +530,13 @@ class _CursesWindow:
530530
def standend(self) -> None: ...
531531
def standout(self) -> None: ...
532532
@overload
533-
def subpad(self, begin_y: int, begin_x: int) -> _CursesWindow: ...
533+
def subpad(self, begin_y: int, begin_x: int) -> window: ...
534534
@overload
535-
def subpad(self, nlines: int, ncols: int, begin_y: int, begin_x: int) -> _CursesWindow: ...
535+
def subpad(self, nlines: int, ncols: int, begin_y: int, begin_x: int) -> window: ...
536536
@overload
537-
def subwin(self, begin_y: int, begin_x: int) -> _CursesWindow: ...
537+
def subwin(self, begin_y: int, begin_x: int) -> window: ...
538538
@overload
539-
def subwin(self, nlines: int, ncols: int, begin_y: int, begin_x: int) -> _CursesWindow: ...
539+
def subwin(self, nlines: int, ncols: int, begin_y: int, begin_x: int) -> window: ...
540540
def syncdown(self) -> None: ...
541541
def syncok(self, flag: bool) -> None: ...
542542
def syncup(self) -> None: ...
@@ -555,4 +555,3 @@ class _ncurses_version(NamedTuple):
555555
patch: int
556556

557557
ncurses_version: _ncurses_version
558-
window = _CursesWindow # undocumented

stdlib/curses/__init__.pyi

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from _curses import *
2-
from _curses import _CursesWindow as _CursesWindow
2+
from _curses import window as window
33
from collections.abc import Callable
44
from typing import TypeVar
55
from typing_extensions import Concatenate, ParamSpec
@@ -19,4 +19,9 @@ COLS: int
1919
COLORS: int
2020
COLOR_PAIRS: int
2121

22-
def wrapper(func: Callable[Concatenate[_CursesWindow, _P], _T], /, *arg: _P.args, **kwds: _P.kwargs) -> _T: ...
22+
def wrapper(func: Callable[Concatenate[window, _P], _T], /, *arg: _P.args, **kwds: _P.kwargs) -> _T: ...
23+
24+
# typeshed used the name _CursesWindow for the underlying C class before
25+
# it was mapped to the name 'window' in 3.8.
26+
# Kept here as a legacy alias in case any third-party code is relying on it.
27+
_CursesWindow = window

stdlib/curses/panel.pyi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from _curses import _CursesWindow
1+
from _curses import window
22

33
version: str
44

@@ -9,14 +9,14 @@ class _Curses_Panel: # type is <class '_curses_panel.curses panel'> (note the s
99
def hidden(self) -> bool: ...
1010
def hide(self) -> None: ...
1111
def move(self, y: int, x: int) -> None: ...
12-
def replace(self, win: _CursesWindow) -> None: ...
12+
def replace(self, win: window) -> None: ...
1313
def set_userptr(self, obj: object) -> None: ...
1414
def show(self) -> None: ...
1515
def top(self) -> None: ...
1616
def userptr(self) -> object: ...
17-
def window(self) -> _CursesWindow: ...
17+
def window(self) -> window: ...
1818

1919
def bottom_panel() -> _Curses_Panel: ...
20-
def new_panel(win: _CursesWindow, /) -> _Curses_Panel: ...
20+
def new_panel(win: window, /) -> _Curses_Panel: ...
2121
def top_panel() -> _Curses_Panel: ...
2222
def update_panels() -> _Curses_Panel: ...

stdlib/curses/textpad.pyi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
from _curses import _CursesWindow
1+
from _curses import window
22
from collections.abc import Callable
33

4-
def rectangle(win: _CursesWindow, uly: int, ulx: int, lry: int, lrx: int) -> None: ...
4+
def rectangle(win: window, uly: int, ulx: int, lry: int, lrx: int) -> None: ...
55

66
class Textbox:
77
stripspaces: bool
8-
def __init__(self, win: _CursesWindow, insert_mode: bool = False) -> None: ...
8+
def __init__(self, win: window, insert_mode: bool = False) -> None: ...
99
def edit(self, validate: Callable[[int], int] | None = None) -> str: ...
1010
def do_command(self, ch: str | int) -> None: ...
1111
def gather(self) -> str: ...

0 commit comments

Comments
 (0)