sphinx.util.logging: Make write() methods return int #13595
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
In typeshed, we're currently switching from our old custom protocol
_typeshed.SupportsWrite
to the newWriter
protocol (in Python 3.14'sio
module and backported totyping_extensions
starting with 4.14.0). One incompatibility is thatWriter.write()
expects anint
return type, whileSupportsWrite.write()
was usingobject
. This leads to a few new type errors in Sphinx (as pointed out by mypy_primer).This PR fixes upcoming type check errors in Sphinx, but also makes the two logging writer classes more compatible by returning the number of written bytes from
write()
.Does this require an entry in
CHANGES.rst
or are the classes in util internal-facing?References
See python/typeshed#14149 for background.