From ec42789e6e14f6b6ac13569aeadc13798d7173a8 Mon Sep 17 00:00:00 2001 From: Andrey Doroschenko Date: Tue, 20 Oct 2020 17:05:01 +0300 Subject: bpo-39693: mention KeyError in tarfile extractfile documentation (GH-18639) Co-authored-by: Andrey Darascheka --- Doc/library/tarfile.rst | 9 +++++---- Lib/tarfile.py | 7 ++++--- Misc/ACKS | 1 + .../next/Documentation/2020-02-24-09-02-05.bpo-39693.QXw0Fm.rst | 1 + 4 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 Misc/NEWS.d/next/Documentation/2020-02-24-09-02-05.bpo-39693.QXw0Fm.rst diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst index cca466b..7a114fd 100644 --- a/Doc/library/tarfile.rst +++ b/Doc/library/tarfile.rst @@ -445,10 +445,11 @@ be finalized; only the internally used file object will be closed. See the .. method:: TarFile.extractfile(member) - Extract a member from the archive as a file object. *member* may be a filename - or a :class:`TarInfo` object. If *member* is a regular file or a link, an - :class:`io.BufferedReader` object is returned. Otherwise, :const:`None` is - returned. + Extract a member from the archive as a file object. *member* may be + a filename or a :class:`TarInfo` object. If *member* is a regular file or + a link, an :class:`io.BufferedReader` object is returned. For all other + existing members, :const:`None` is returned. If *member* does not appear + in the archive, :exc:`KeyError` is raised. .. versionchanged:: 3.3 Return an :class:`io.BufferedReader` object. diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 1fae294..e422794 100755 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -2093,9 +2093,10 @@ class TarFile(object): def extractfile(self, member): """Extract a member from the archive as a file object. `member' may be - a filename or a TarInfo object. If `member' is a regular file or a - link, an io.BufferedReader object is returned. Otherwise, None is - returned. + a filename or a TarInfo object. If `member' is a regular file or + a link, an io.BufferedReader object is returned. For all other + existing members, None is returned. If `member' does not appear + in the archive, KeyError is raised. """ self._check("r") diff --git a/Misc/ACKS b/Misc/ACKS index 0aab456..404f70e 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1957,5 +1957,6 @@ Gennadiy Zlobin Doug Zongker Peter Åstrand Vlad Emelianov +Andrey Doroschenko (Entries should be added in rough alphabetical order by last names) diff --git a/Misc/NEWS.d/next/Documentation/2020-02-24-09-02-05.bpo-39693.QXw0Fm.rst b/Misc/NEWS.d/next/Documentation/2020-02-24-09-02-05.bpo-39693.QXw0Fm.rst new file mode 100644 index 0000000..86049c5 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2020-02-24-09-02-05.bpo-39693.QXw0Fm.rst @@ -0,0 +1 @@ +Fix tarfile's extractfile documentation -- cgit v0.12