Issue #23615: Modules bz2, tarfile and tokenize now can be reloaded with
imp.reload(). Patch by Thomas Kluyver.
diff --git a/Lib/bz2.py b/Lib/bz2.py
index 6f47bfa..6c5a60d 100644
--- a/Lib/bz2.py
+++ b/Lib/bz2.py
@@ -9,6 +9,7 @@
__author__ = "Nadeem Vawda <nadeem.vawda@gmail.com>"
+from builtins import open as _builtin_open
import io
import warnings
@@ -27,8 +28,6 @@
_BUFFER_SIZE = 8192
-_builtin_open = open
-
class BZ2File(io.BufferedIOBase):
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index 37e4dcd..f9e5c18 100755
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -38,6 +38,7 @@
#---------
# Imports
#---------
+from builtins import open as bltn_open
import sys
import os
import io
@@ -2421,7 +2422,6 @@
except TarError:
return False
-bltn_open = open
open = TarFile.open
diff --git a/Lib/tokenize.py b/Lib/tokenize.py
index 5b47ebd..ed4153c 100644
--- a/Lib/tokenize.py
+++ b/Lib/tokenize.py
@@ -24,6 +24,7 @@
__credits__ = ('GvR, ESR, Tim Peters, Thomas Wouters, Fred Drake, '
'Skip Montanaro, Raymond Hettinger, Trent Nelson, '
'Michael Foord')
+from builtins import open as _builtin_open
from codecs import lookup, BOM_UTF8
import collections
from io import TextIOWrapper
@@ -429,8 +430,6 @@
return default, [first, second]
-_builtin_open = open
-
def open(filename):
"""Open a file in read only mode using the encoding detected by
detect_encoding().
diff --git a/Misc/NEWS b/Misc/NEWS
index e52a480..a6073b8 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -16,6 +16,9 @@
Library
-------
+- Issue #23615: Modules bz2, tarfile and tokenize now can be reloaded with
+ imp.reload(). Patch by Thomas Kluyver.
+
- Issue #23476: In the ssl module, enable OpenSSL's X509_V_FLAG_TRUSTED_FIRST
flag on certificate stores when it is available.
diff --git a/Tools/freeze/bkfile.py b/Tools/freeze/bkfile.py
index 58246fa..6abacc9 100644
--- a/Tools/freeze/bkfile.py
+++ b/Tools/freeze/bkfile.py
@@ -1,4 +1,4 @@
-_orig_open = open
+from builtins import open as _orig_open
class _BkFile:
def __init__(self, file, mode, bufsize):