Repository navigation
gh-160141: Curses core fixes - #160142
gh-160141: Curses core fixes#160142cdorsman wants to merge 15 commits into
Conversation
|
The following commit authors need to sign the Contributor License Agreement: |
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
Documentation build overview
|
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
picnixz
left a comment
There was a problem hiding this comment.
ISTM that this makes unrelated code changes and also doesn't use AC where it could be used. I also wonder whether this API is really necessayr.
| /* | ||
| * Interface to the ncurses panel library | ||
| * | ||
| * Original version by Thomas Gellekum |
There was a problem hiding this comment.
I don't understand this specific change. Panels are already written in _curses_panel.c. Why duplicating this?
| return curses_check_err(module, putp(string), "putp", NULL); | ||
| } | ||
|
|
||
| static PyObject * |
|
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase |
|
I'm clsoing the PR because the feature has not been discussed by the maintainer. What are the use cases for those specific functions? panel is implemented by the _curses_panel.c file |
|
I understand that new functionality requires justification, but I think we’re overlooking a more fundamental question here.
What is the long-term purpose of maintaining the _curses module if its development is largely stagnant and contributions that complete existing functionality face these barriers?
My changes are not intended to introduce a new abstraction or fundamentally change the module. They expose functionality that already exists in the underlying Curses library, following the approach established by the existing implementation.
I acknowledge the technical feedback provided on this PR. The relevant comments, including the accidental inclusion of Panel-related functionality, will be addressed and incorporated into a revised implementation before resubmitting the PR.
Furthermore, my intention is to continue this work by implementing bindings for the Menu and Form libraries, with the goal of providing more complete coverage of the Curses ecosystem in Python.
However, the response to this PR raises concerns about whether such contributions are actually welcome.
If completing the existing bindings is not considered a sufficient reason for accepting these changes, what is the intended scope and future direction of this module? And would further contributions, including Menu and Form support, even be considered?
…________________________________
From: Bénédikt Tran ***@***.***>
Sent: Thursday, 22 October 2026 01:31:39
To: python/cpython ***@***.***>
Cc: Chris Dorsman ***@***.***>; Author ***@***.***>
Subject: Re: [python/cpython] gh-160141: Curses core fixes (PR #160142)
Closed #160142<#160142>.
—
Reply to this email directly, view it on GitHub<#160142?email_source=notifications&email_token=AJMU4ANWH65WQEW2NDV6U2D5VFBNXA5CNFSNUABQM5UWIORPF5TWS5BNNB2WEL2JONZXKZKFOZSW45CON52GSZTJMNQXI2LPNYXTGMZYHE4DIOBYGYYDBJTSMVQXG33OUZQXK5DIN5ZKKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#event-33898488600>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AJMU4AOA4EGC6YYF7RG3SDT5VFBNXAVCNFSNUABEKJSXA33TNF2G64TZHM4DCNJZHA4TMMJ3JFZXG5LFHM2TSNRZHA4TCMZRG6QXMAQ>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Summary
Complete the core curses bindings in CPython and adapt the port to the
current stateful curses module architecture.
The change covers the broader curses core API, including:
ripofflineExisting functionality already present on
mainis preserved andintegrated with the port. The curses form and menu APIs are intentionally
excluded from this change.
Tests
make -j2TERM=dumb ./python -m test -u curses test_curses -vResult:
provides ncurses 6.4.
Notes
The implementation uses the current CPython module-state and Argument
Clinic conventions rather than copying the older implementation
verbatim.
Closes gh-160141