]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-141570: can_colorize: Expect fileno() to raise OSError, as documented (#141716)
authorMiro Hrončok <miro@hroncok.cz>
Wed, 19 Nov 2025 14:02:52 +0000 (15:02 +0100)
committerGitHub <noreply@github.com>
Wed, 19 Nov 2025 14:02:52 +0000 (15:02 +0100)
commit96f496a949b05054d0d043c3085f00cec2f83bf5
treefe17fd687dbd0d2d9679ce68958346be1917d9f5
parente2178743feab3964a25578b0c0bd3ed1a5ed6f75
gh-141570: can_colorize: Expect fileno() to raise OSError, as documented (#141716)

In Fedora, we've been given a slightly incomplete reproducer for a problematic
Python 3.14 color-related change in argparse that leads to an exception when
Python is used from mod_wsgi: https://bugzilla.redhat.com/2414940

mod_wsgi replaces sys.stdout with a custom object that raises OSError on .fileno():

https://github.com/GrahamDumpleton/mod_wsgi/blob/8460dbfcd5c7108892b3cde9fab7cbc1caa27886/src/server/wsgi_logger.c#L434-L440

This should be supported, as the documentation of fileno explicitly says:

> An OSError is raised if the IO object does not use a file descriptor.

https://docs.python.org/3.14/library/io.html#io.IOBase.fileno

The previously expected exception inherits from OSError,
so it is still expected.

Fixes https://github.com/python/cpython/issues/141570

Co-authored-by: Cody Maloney <cmaloney@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
Lib/_colorize.py
Lib/test/test__colorize.py
Misc/NEWS.d/next/Library/2025-11-18-14-39-31.gh-issue-141570.q3n984.rst [new file with mode: 0644]