Skip to content

Commit 811974a

Browse files
gh-151914: Reorganize the curses entries in What's New in Python 3.16 (GH-153397)
Order the curses entries from the most important and general to the more specialized: wide-character and complexchar/complexstr support first, then multiple-terminal support, attributes and colors, screen and window management, input handling, and finally introspection. The curses.textpad.Textbox entry, belonging to a separate submodule, moves to the end. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent fbce45b commit 811974a

1 file changed

Lines changed: 49 additions & 49 deletions

File tree

Doc/whatsnew/3.16.rst

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,6 @@ codecs
9999
curses
100100
------
101101

102-
* Add support for multiple terminals to the :mod:`curses` module:
103-
the new functions :func:`curses.newterm`, :func:`curses.set_term`
104-
and :func:`curses.new_prescr`,
105-
the corresponding :ref:`screen <curses-screen-objects>` object,
106-
and the :meth:`window.use() <curses.window.use>` method.
107-
(Contributed by Serhiy Storchaka in :gh:`90092`.)
108-
109102
* The :mod:`curses` character-cell window methods now accept a full character
110103
cell --- a spacing character optionally followed by combining characters ---
111104
in addition to a single integer or byte character. This affects
@@ -126,40 +119,6 @@ curses
126119
and :meth:`~curses.window.in_wstr` returns its decoded text.
127120
(Contributed by Serhiy Storchaka in :gh:`151757`.)
128121

129-
* The wide-character :mod:`curses` functions and methods
130-
:meth:`~curses.window.get_wch`, :meth:`~curses.window.get_wstr`,
131-
:func:`curses.unget_wch`, :func:`curses.erasewchar`,
132-
:func:`curses.killwchar` and :func:`curses.wunctrl` now also work when Python
133-
is not built against a wide-character-aware curses library, on an 8-bit
134-
locale, where each character is a single byte in the relevant encoding.
135-
:func:`curses.ungetch` now also accepts a one-character string, like
136-
:func:`curses.unget_wch`; on a wide-character build it can be any character
137-
(previously a multibyte character raised :exc:`OverflowError`).
138-
(Contributed by Serhiy Storchaka in :gh:`152470`.)
139-
140-
* Add :func:`curses.nofilter`, which undoes the effect of :func:`curses.filter`.
141-
(Contributed by Serhiy Storchaka in :gh:`151744`.)
142-
143-
* Add the :mod:`curses` functions :func:`curses.alloc_pair`,
144-
:func:`curses.find_pair`, :func:`curses.free_pair` and
145-
:func:`curses.reset_color_pairs` for dynamic color-pair management,
146-
available when built against a wide-character ncurses with extended-color
147-
support.
148-
(Contributed by Serhiy Storchaka in :gh:`151774`.)
149-
150-
* Add :mod:`curses` functions and window methods that report state which could
151-
previously only be set, such as :meth:`curses.window.is_keypad`,
152-
:meth:`curses.window.getparent` and :func:`curses.is_cbreak`,
153-
available when built against an ncurses with ``NCURSES_EXT_FUNCS``.
154-
(Contributed by Serhiy Storchaka in :gh:`151776`.)
155-
156-
* Add the :mod:`curses` window methods :meth:`~curses.window.attr_get`,
157-
:meth:`~curses.window.attr_set`, :meth:`~curses.window.attr_on`,
158-
:meth:`~curses.window.attr_off` and :meth:`~curses.window.color_set`, which
159-
pass the color pair as a separate argument instead of packing it into the
160-
attribute value, and the corresponding ``WA_*`` attribute constants.
161-
(Contributed by Serhiy Storchaka in :gh:`152219`.)
162-
163122
* Add the :class:`curses.complexchar` type, representing a styled
164123
character cell (its text, attributes and color pair), and the window
165124
methods :meth:`~curses.window.in_wch` and :meth:`~curses.window.getbkgrnd`
@@ -183,15 +142,52 @@ curses
183142
library.
184143
(Contributed by Serhiy Storchaka in :gh:`152233`.)
185144

186-
* Add the :mod:`curses` window method :meth:`~curses.window.dupwin`, which
187-
returns a new window that is an independent duplicate of an existing one.
188-
(Contributed by Serhiy Storchaka in :gh:`152258`.)
145+
* The wide-character :mod:`curses` functions and methods
146+
:meth:`~curses.window.get_wch`, :meth:`~curses.window.get_wstr`,
147+
:func:`curses.unget_wch`, :func:`curses.erasewchar`,
148+
:func:`curses.killwchar` and :func:`curses.wunctrl` now also work when Python
149+
is not built against a wide-character-aware curses library, on an 8-bit
150+
locale, where each character is a single byte in the relevant encoding.
151+
:func:`curses.ungetch` now also accepts a one-character string, like
152+
:func:`curses.unget_wch`; on a wide-character build it can be any character
153+
(previously a multibyte character raised :exc:`OverflowError`).
154+
(Contributed by Serhiy Storchaka in :gh:`152470`.)
155+
156+
* Add support for multiple terminals to the :mod:`curses` module:
157+
the new functions :func:`curses.newterm`, :func:`curses.set_term`
158+
and :func:`curses.new_prescr`,
159+
the corresponding :ref:`screen <curses-screen-objects>` object,
160+
and the :meth:`window.use() <curses.window.use>` method.
161+
(Contributed by Serhiy Storchaka in :gh:`90092`.)
162+
163+
* Add the :mod:`curses` window methods :meth:`~curses.window.attr_get`,
164+
:meth:`~curses.window.attr_set`, :meth:`~curses.window.attr_on`,
165+
:meth:`~curses.window.attr_off` and :meth:`~curses.window.color_set`, which
166+
pass the color pair as a separate argument instead of packing it into the
167+
attribute value, and the corresponding ``WA_*`` attribute constants.
168+
(Contributed by Serhiy Storchaka in :gh:`152219`.)
169+
170+
* Add the :func:`curses.term_attrs` function, which returns the supported
171+
video attributes as :ref:`WA_* <curses-wa-constants>` values, the
172+
counterpart of :func:`curses.termattrs`.
173+
(Contributed by Serhiy Storchaka in :gh:`152332`.)
174+
175+
* Add the :mod:`curses` functions :func:`curses.alloc_pair`,
176+
:func:`curses.find_pair`, :func:`curses.free_pair` and
177+
:func:`curses.reset_color_pairs` for dynamic color-pair management,
178+
available when built against a wide-character ncurses with extended-color
179+
support.
180+
(Contributed by Serhiy Storchaka in :gh:`151774`.)
189181

190182
* Add the :mod:`curses` functions :func:`~curses.scr_dump`,
191183
:func:`~curses.scr_restore`, :func:`~curses.scr_init` and
192184
:func:`~curses.scr_set`, which dump the whole screen to a file and restore it.
193185
(Contributed by Serhiy Storchaka in :gh:`152260`.)
194186

187+
* Add the :mod:`curses` window method :meth:`~curses.window.dupwin`, which
188+
returns a new window that is an independent duplicate of an existing one.
189+
(Contributed by Serhiy Storchaka in :gh:`152258`.)
190+
195191
* Add the soft-label-key functions to the :mod:`curses` module, which manage a
196192
row of labels along the bottom line of the screen:
197193
:func:`~curses.slk_init`, :func:`~curses.slk_set`, :func:`~curses.slk_label`,
@@ -204,11 +200,6 @@ curses
204200
:func:`~curses.slk_attr_set`, and :func:`~curses.slk_color`.
205201
(Contributed by Serhiy Storchaka in :gh:`152263`.)
206202

207-
* Add the :func:`curses.term_attrs` function, which returns the supported
208-
video attributes as :ref:`WA_* <curses-wa-constants>` values, the
209-
counterpart of :func:`curses.termattrs`.
210-
(Contributed by Serhiy Storchaka in :gh:`152332`.)
211-
212203
* Add the :mod:`curses` key-management functions :func:`~curses.define_key`,
213204
:func:`~curses.key_defined` and :func:`~curses.keyok`, available when built
214205
against an ncurses with ``NCURSES_EXT_FUNCS``.
@@ -219,6 +210,15 @@ curses
219210
mouse interface.
220211
(Contributed by Serhiy Storchaka in :gh:`152325`.)
221212

213+
* Add :mod:`curses` functions and window methods that report state which could
214+
previously only be set, such as :meth:`curses.window.is_keypad`,
215+
:meth:`curses.window.getparent` and :func:`curses.is_cbreak`,
216+
available when built against an ncurses with ``NCURSES_EXT_FUNCS``.
217+
(Contributed by Serhiy Storchaka in :gh:`151776`.)
218+
219+
* Add :func:`curses.nofilter`, which undoes the effect of :func:`curses.filter`.
220+
(Contributed by Serhiy Storchaka in :gh:`151744`.)
221+
222222
* :class:`curses.textpad.Textbox` now supports entering and reading back the
223223
full Unicode range, including combining characters, when curses is built with
224224
wide-character support.

0 commit comments

Comments
 (0)