]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-67641: Clarify documentation on bytes vs text with non-seeking tarfile stream...
authorStanley <46876382+slateny@users.noreply.github.com>
Wed, 27 Dec 2023 17:16:36 +0000 (09:16 -0800)
committerGitHub <noreply@github.com>
Wed, 27 Dec 2023 17:16:36 +0000 (17:16 +0000)
Doc/library/tarfile.rst
Lib/tarfile.py

index f4e83d64bb15800b989e0d02b41769877b648d3b..7ba29d4a40dedb225e4561d74e9ee8b226da62d1 100644 (file)
@@ -116,10 +116,12 @@ Some facts and figures:
    ``'filemode|[compression]'``.  :func:`tarfile.open` will return a :class:`TarFile`
    object that processes its data as a stream of blocks.  No random seeking will
    be done on the file. If given, *fileobj* may be any object that has a
-   :meth:`~io.TextIOBase.read` or :meth:`~io.TextIOBase.write` method (depending on the *mode*). *bufsize*
-   specifies the blocksize and defaults to ``20 * 512`` bytes. Use this variant
-   in combination with e.g. ``sys.stdin``, a socket :term:`file object` or a tape
-   device. However, such a :class:`TarFile` object is limited in that it does
+   :meth:`~io.RawIOBase.read` or :meth:`~io.RawIOBase.write` method
+   (depending on the *mode*) that works with bytes.
+   *bufsize* specifies the blocksize and defaults to ``20 * 512`` bytes.
+   Use this variant in combination with e.g. ``sys.stdin.buffer``, a socket
+   :term:`file object` or a tape device.
+   However, such a :class:`TarFile` object is limited in that it does
    not allow random access, see :ref:`tar-examples`.  The currently
    possible modes:
 
index 5ada0ad626bda81a5022087221ea7c21f99efe44..20e0394507f5db157ffc3a49590457453e629f2b 100755 (executable)
@@ -330,10 +330,11 @@ class _LowLevelFile:
 class _Stream:
     """Class that serves as an adapter between TarFile and
        a stream-like object.  The stream-like object only
-       needs to have a read() or write() method and is accessed
-       blockwise.  Use of gzip or bzip2 compression is possible.
-       A stream-like object could be for example: sys.stdin,
-       sys.stdout, a socket, a tape device etc.
+       needs to have a read() or write() method that works with bytes,
+       and the method is accessed blockwise.
+       Use of gzip or bzip2 compression is possible.
+       A stream-like object could be for example: sys.stdin.buffer,
+       sys.stdout.buffer, a socket, a tape device etc.
 
        _Stream is intended to be used only internally.
     """