gh-85567: Register a cleanup function to close files for FileType objects in argparse (#32257)
* bpo-41395: Register a cleanup function to close files for FileType objects in argparse * Added import as top level import, and renamed file as fh.
This commit is contained in:
@@ -84,7 +84,7 @@ __all__ = [
|
||||
'ZERO_OR_MORE',
|
||||
]
|
||||
|
||||
|
||||
import atexit as _atexit
|
||||
import os as _os
|
||||
import re as _re
|
||||
import sys as _sys
|
||||
@@ -1268,8 +1268,12 @@ class FileType(object):
|
||||
|
||||
# all other arguments are used as file names
|
||||
try:
|
||||
return open(string, self._mode, self._bufsize, self._encoding,
|
||||
self._errors)
|
||||
fh = open(string, self._mode, self._bufsize, self._encoding, self._errors)
|
||||
|
||||
# Register cleanup function to close file
|
||||
_atexit.register(fh.close)
|
||||
|
||||
return fh
|
||||
except OSError as e:
|
||||
args = {'filename': string, 'error': e}
|
||||
message = _("can't open '%(filename)s': %(error)s")
|
||||
|
||||
Reference in New Issue
Block a user