Skip to content

Python dependency: Update pywinpty requirement from ==2.0.* to ==3.1.* in /web/regression - #10756

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/pip/web/regression/pywinpty-eq-3.1.star
Closed

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/pip/web/regression/pywinpty-eq-3.1.star

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 6, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on pywinpty to permit the latest version.

Release notes

Sourced from pywinpty's releases.

Version 3.1.2

  • Require winpty-rs 1.0.8, which makes EOF detection work and fixes spawning an executable whose path contains a space. Measured through this package's own API:

    3.1.1 3.1.2
    while not pty.iseof(): pty.read() never terminates exits via iseof()
    ...time to exit, ConPTY 5.07 s, WinptyError('') 0.20 s, no error
    PTY.iseof(), both backends always False True once drained
    spawn from a path containing a space fails, bad-image error spawns, argv[0] intact
    errors with an empty message 1 0
  • Behavioural change. PTY.iseof() could never return True before, so code written around that behaves differently now. A loop of the shape

    while not data and not pty.iseof():
        data = pty.read()
    • stop when there is nothing to read and we are not at EOF - used to end on its first empty read and will now run forever; the condition wants inverting. There is no API change, so nothing gates the upgrade.
  • Spawning from a path containing a space failed differently on each backend. The WinPTY backend ran the right executable but split argv, so C:\Program Files\Python\python.exe arrived as argv[0] = "C:\Program" with the remainder shifted into the caller's arguments. The ConPTY backend left argv[0] intact but let CreateProcessW guess which file to run, which could fail the spawn outright with a bad-image error whose %1 placeholder was never substituted - reported in #583 as being related to path length, though what actually decided it was whether a shorter candidate existed on disk.

  • Closing a PTY no longer waits out a fixed five seconds. A blocking read after the child exits now returns in about 175 ms rather than 5.1 s, and teardown no longer cancels I/O that has stopped belonging to it, which could abort a read owned by the host application.

  • Still not fixed: the output truncation half of #565 is cpython#86210, where an unbuffered _textiowrapper_writeflush ignores a partial write and drops the remainder. That is a CPython bug on the producer side and is unaffected by this release; a buffered producer, or one that checks the return value of write, is not affected. The EOF half of that report is fixed. See also the dated correction added to the 3.1.1 notes.

... (truncated)

Changelog

Sourced from pywinpty's changelog.

Version 3.1.2 (2026/10/28)

  • Require winpty-rs 1.0.8, which makes EOF detection work and fixes spawning an executable whose path contains a space. Measured through this package's own API:

    3.1.1 3.1.2
    while not pty.iseof(): pty.read() never terminates exits via iseof()
    ...time to exit, ConPTY 5.07 s, WinptyError('') 0.20 s, no error
    PTY.iseof(), both backends always False True once drained
    spawn from a path containing a space fails, bad-image error spawns, argv[0] intact
    errors with an empty message 1 0
  • Behavioural change. PTY.iseof() could never return True before, so code written around that behaves differently now. A loop of the shape

    while not data and not pty.iseof():
        data = pty.read()
    • stop when there is nothing to read and we are not at EOF - used to end on its first empty read and will now run forever; the condition wants inverting. There is no API change, so nothing gates the upgrade.
  • Spawning from a path containing a space failed differently on each backend. The WinPTY backend ran the right executable but split argv, so C:\Program Files\Python\python.exe arrived as argv[0] = "C:\Program" with the remainder shifted into the caller's arguments. The ConPTY backend left argv[0] intact but let CreateProcessW guess which file to run, which could fail the spawn outright with a bad-image error whose %1 placeholder was never substituted - reported in #583 as being related to path length, though what actually decided it was whether a shorter candidate existed on disk.

  • Closing a PTY no longer waits out a fixed five seconds. A blocking read after the child exits now returns in about 175 ms rather than 5.1 s, and teardown no longer cancels I/O that has stopped belonging to it, which could abort a read owned by the host application.

  • Still not fixed: the output truncation half of #565 is cpython#86210, where an unbuffered _textiowrapper_writeflush ignores a partial write and drops the remainder. That is a CPython bug on the producer side and is unaffected by this release; a buffered producer, or one that checks the return value of write, is not affected. The EOF half of that report is fixed. See also the dated correction added to the 3.1.1 notes.

... (truncated)

Commits
  • 5eb05c5 Release v3.1.2
  • ccc3dc6 Update Changelog
  • d45584a Merge pull request #592 from andfoy/chore/bump-winpty-rs-1.0.8
  • 7b9262a Correct the 3.1.1 note about large ConPTY output
  • 6774c03 Bump winpty-rs to 1.0.8
  • 40d71b1 Back to work
  • 3fdfeb9 Update Changelog for the sdist and ConPTY drain fixes
  • 27c2a34 Keep the vendored NuGet Python out of the sdist
  • a13d913 Release v3.1.1
  • c1294da Update Changelog
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [pywinpty](https://github.com/andfoy/pywinpty) to permit the latest version.
- [Release notes](https://github.com/andfoy/pywinpty/releases)
- [Changelog](https://github.com/andfoy/pywinpty/blob/main/CHANGELOG.md)
- [Commits](andfoy/pywinpty@v2.0.0...v3.1.2)

---
updated-dependencies:
- dependency-name: pywinpty
  dependency-version: 3.1.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the Dependencies Pull requests that update a dependency file label Nov 6, 2026
@coderabbitai

coderabbitai Bot commented Nov 6, 2026

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@dpage

dpage commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

pywinpty 3.1.1 and later stop dropping argv[0] on the WinPTY backend, so the doubled executable that #10725 added in web/pgadmin/tools/psql/init.py would make psql treat its own path as the database name, and ==3.1.* also admits 3.1.1, which splits unquoted paths such as C:\Program Files. Moving to 3.x needs that code change, a >=3.1.2,<3.2 pin and a manual PSQL tool test on Windows, so it will be done in its own PR.

@dpage dpage closed this Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant