diff options
author | Erlend E. Aasland <erlend@python.org> | 2023-08-29 19:57:49 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-29 19:57:49 (GMT) |
commit | d79216d48fae171793868c03d1257c4e07957a0c (patch) | |
tree | 7a04a2287cc21b74bc4d70cd3c70ee2bf34f1011 | |
parent | 34f84f2b9f60d35a142fcdf2d2b855914b69de6d (diff) | |
download | cpython-d79216d48fae171793868c03d1257c4e07957a0c.zip cpython-d79216d48fae171793868c03d1257c4e07957a0c.tar.gz cpython-d79216d48fae171793868c03d1257c4e07957a0c.tar.bz2 |
[3.11] gh-107801: Improve the accuracy of io.IOBase.seek docs (#108268) (#108656)
(cherry picked from commit 8178a88bd81edae87d6974483e4de9b32e808797)
- Add param docstrings
- Link to os.SEEK_* constants
- Mention the return value in the initial paragraph
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
-rw-r--r-- | Doc/library/io.rst | 26 | ||||
-rw-r--r-- | Modules/_io/iobase.c | 21 |
2 files changed, 28 insertions, 19 deletions
diff --git a/Doc/library/io.rst b/Doc/library/io.rst index 25f4d0d..0108887 100644 --- a/Doc/library/io.rst +++ b/Doc/library/io.rst @@ -403,20 +403,19 @@ I/O Base Classes Note that it's already possible to iterate on file objects using ``for line in file: ...`` without calling :meth:`!file.readlines`. - .. method:: seek(offset, whence=SEEK_SET, /) + .. method:: seek(offset, whence=os.SEEK_SET, /) - Change the stream position to the given byte *offset*. *offset* is - interpreted relative to the position indicated by *whence*. The default - value for *whence* is :data:`!SEEK_SET`. Values for *whence* are: + Change the stream position to the given byte *offset*, + interpreted relative to the position indicated by *whence*, + and return the new absolute position. + Values for *whence* are: - * :data:`!SEEK_SET` or ``0`` -- start of the stream (the default); + * :data:`os.SEEK_SET` or ``0`` -- start of the stream (the default); *offset* should be zero or positive - * :data:`!SEEK_CUR` or ``1`` -- current stream position; *offset* may - be negative - * :data:`!SEEK_END` or ``2`` -- end of the stream; *offset* is usually - negative - - Return the new absolute position. + * :data:`os.SEEK_CUR` or ``1`` -- current stream position; + *offset* may be negative + * :data:`os.SEEK_END` or ``2`` -- end of the stream; + *offset* is usually negative .. versionadded:: 3.1 The :data:`!SEEK_*` constants. @@ -1061,6 +1060,10 @@ Text I/O Any other argument combinations are invalid, and may raise exceptions. + .. seealso:: + + :data:`os.SEEK_SET`, :data:`os.SEEK_CUR`, and :data:`os.SEEK_END`. + .. method:: tell() Return the stream position as an opaque number. @@ -1068,7 +1071,6 @@ Text I/O to restore a previous stream position. - .. class:: StringIO(initial_value='', newline='\n') A text stream using an in-memory text buffer. It inherits diff --git a/Modules/_io/iobase.c b/Modules/_io/iobase.c index 6ae43a8..8424fab 100644 --- a/Modules/_io/iobase.c +++ b/Modules/_io/iobase.c @@ -82,15 +82,22 @@ iobase_unsupported(const char *message) /* Positioning */ PyDoc_STRVAR(iobase_seek_doc, - "Change stream position.\n" + "seek($self, offset, whence=os.SEEK_SET, /)\n" + "--\n" "\n" - "Change the stream position to the given byte offset. The offset is\n" - "interpreted relative to the position indicated by whence. Values\n" - "for whence are:\n" + "Change the stream position to the given byte offset.\n" "\n" - "* 0 -- start of stream (the default); offset should be zero or positive\n" - "* 1 -- current stream position; offset may be negative\n" - "* 2 -- end of stream; offset is usually negative\n" + " offset\n" + " The stream position, relative to \'whence\'.\n" + " whence\n" + " The relative position to seek from.\n" + "\n" + "The offset is interpreted relative to the position indicated by whence.\n" + "Values for whence are:\n" + "\n" + "* os.SEEK_SET or 0 -- start of stream (the default); offset should be zero or positive\n" + "* os.SEEK_CUR or 1 -- current stream position; offset may be negative\n" + "* os.SEEK_END or 2 -- end of stream; offset is usually negative\n" "\n" "Return the new absolute position."); |