[Python-checkins] Revert "gh-85567: Register a cleanup function to close files for FileType objects in argparse (#32257)" (#91771)

vstinner webhook-mailer at python.org
Wed Apr 20 21:11:00 EDT 2022


https://github.com/python/cpython/commit/c77953b23e4b864129edf7983eaa6a0d22414ec6
commit: c77953b23e4b864129edf7983eaa6a0d22414ec6
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2022-04-21T03:10:51+02:00
summary:

Revert "gh-85567: Register a cleanup function to close files for FileType objects in argparse (#32257)" (#91771)

This reverts commit 328dbc051f84bd5fdf61101bb4fa61d85f8b7feb.

files:
D Misc/NEWS.d/next/Library/2022-04-02-14-40-53.bpo-41395.Y1ZVvT.rst
M Lib/argparse.py
M Misc/ACKS

diff --git a/Lib/argparse.py b/Lib/argparse.py
index 881dfda6d4d932..429a72ab7841e7 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -84,7 +84,7 @@
     'ZERO_OR_MORE',
 ]
 
-import atexit as _atexit
+
 import os as _os
 import re as _re
 import sys as _sys
@@ -1268,12 +1268,8 @@ def __call__(self, string):
 
         # all other arguments are used as file names
         try:
-            fh = open(string, self._mode, self._bufsize, self._encoding, self._errors)
-
-            # Register cleanup function to close file
-            _atexit.register(fh.close)
-
-            return fh
+            return open(string, self._mode, self._bufsize, self._encoding,
+                        self._errors)
         except OSError as e:
             args = {'filename': string, 'error': e}
             message = _("can't open '%(filename)s': %(error)s")
diff --git a/Misc/ACKS b/Misc/ACKS
index a1df84c0d6779e..5e66a2e757adf6 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -313,7 +313,6 @@ Nicolas Chauvat
 Jerry Chen
 Michael Chermside
 Ingrid Cheung
-Adam Chhina
 Terry Chia
 Albert Chin-A-Young
 Adal Chiriliuc
diff --git a/Misc/NEWS.d/next/Library/2022-04-02-14-40-53.bpo-41395.Y1ZVvT.rst b/Misc/NEWS.d/next/Library/2022-04-02-14-40-53.bpo-41395.Y1ZVvT.rst
deleted file mode 100644
index 5358b0e71715e2..00000000000000
--- a/Misc/NEWS.d/next/Library/2022-04-02-14-40-53.bpo-41395.Y1ZVvT.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-FileType objects from argparse may not be closed and lead to
-ResourceWarning. Register a file.close function with atexit for FileType
-objects to ensure they are closed. Patch Contributed by Adam Chhina.



More information about the Python-checkins mailing list