Skip to content

Commit 036dd69

Browse files
[3.12] gh-107801: Improve the accuracy of io.IOBase.seek docs (#108268) (#108655)
(cherry picked from commit 8178a88) - Add param docstrings - Link to os.SEEK_* constants - Mention the return value in the initial paragraph Co-authored-by: Adam Turner <[email protected]>
1 parent 4afc5d8 commit 036dd69

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed

Doc/library/io.rst

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -403,20 +403,19 @@ I/O Base Classes
403403
Note that it's already possible to iterate on file objects using ``for
404404
line in file: ...`` without calling :meth:`!file.readlines`.
405405

406-
.. method:: seek(offset, whence=SEEK_SET, /)
406+
.. method:: seek(offset, whence=os.SEEK_SET, /)
407407

408-
Change the stream position to the given byte *offset*. *offset* is
409-
interpreted relative to the position indicated by *whence*. The default
410-
value for *whence* is :data:`!SEEK_SET`. Values for *whence* are:
408+
Change the stream position to the given byte *offset*,
409+
interpreted relative to the position indicated by *whence*,
410+
and return the new absolute position.
411+
Values for *whence* are:
411412

412-
* :data:`!SEEK_SET` or ``0`` -- start of the stream (the default);
413+
* :data:`os.SEEK_SET` or ``0`` -- start of the stream (the default);
413414
*offset* should be zero or positive
414-
* :data:`!SEEK_CUR` or ``1`` -- current stream position; *offset* may
415-
be negative
416-
* :data:`!SEEK_END` or ``2`` -- end of the stream; *offset* is usually
417-
negative
418-
419-
Return the new absolute position.
415+
* :data:`os.SEEK_CUR` or ``1`` -- current stream position;
416+
*offset* may be negative
417+
* :data:`os.SEEK_END` or ``2`` -- end of the stream;
418+
*offset* is usually negative
420419

421420
.. versionadded:: 3.1
422421
The :data:`!SEEK_*` constants.
@@ -1061,14 +1060,17 @@ Text I/O
10611060
Any other argument combinations are invalid,
10621061
and may raise exceptions.
10631062

1063+
.. seealso::
1064+
1065+
:data:`os.SEEK_SET`, :data:`os.SEEK_CUR`, and :data:`os.SEEK_END`.
1066+
10641067
.. method:: tell()
10651068

10661069
Return the stream position as an opaque number.
10671070
The return value of :meth:`!tell` can be given as input to :meth:`seek`,
10681071
to restore a previous stream position.
10691072

10701073

1071-
10721074
.. class:: StringIO(initial_value='', newline='\n')
10731075

10741076
A text stream using an in-memory text buffer. It inherits

Modules/_io/clinic/iobase.c.h

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/_io/iobase.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@ iobase_unsupported(_PyIO_State *state, const char *message)
8383
_io._IOBase.seek
8484
cls: defining_class
8585
offset: int(unused=True)
86+
The stream position, relative to 'whence'.
8687
whence: int(unused=True, c_default='0') = os.SEEK_SET
88+
The relative position to seek from.
8789
/
8890
8991
Change the stream position to the given byte offset.
@@ -101,7 +103,7 @@ Return the new absolute position.
101103
static PyObject *
102104
_io__IOBase_seek_impl(PyObject *self, PyTypeObject *cls,
103105
int Py_UNUSED(offset), int Py_UNUSED(whence))
104-
/*[clinic end generated code: output=8bd74ea6538ded53 input=8d4e6adcd08292f2]*/
106+
/*[clinic end generated code: output=8bd74ea6538ded53 input=74211232b363363e]*/
105107
{
106108
_PyIO_State *state = get_io_state_by_cls(cls);
107109
return iobase_unsupported(state, "seek");

0 commit comments

Comments
 (0)