From: Serhiy Storchaka <storchaka@gmail.com>
Date: Wed, 11 Mar 2015 15:18:03 +0000 (+0200)
Subject: Issue #23615: Modules bz2, tarfile and tokenize now can be reloaded with
X-Git-Tag: v3.5.0a3~203^2
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf4a2f29adb6bdae0b18e983250d7c48d486c9d6;p=python

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 6f47bfaf6c..6c5a60d619 100644
--- a/Lib/bz2.py
+++ b/Lib/bz2.py
@@ -9,6 +9,7 @@ __all__ = ["BZ2File", "BZ2Compressor", "BZ2Decompressor",
 
 __author__ = "Nadeem Vawda <nadeem.vawda@gmail.com>"
 
+from builtins import open as _builtin_open
 import io
 import warnings
 
@@ -27,8 +28,6 @@ _MODE_WRITE    = 3
 
 _BUFFER_SIZE = 8192
 
-_builtin_open = open
-
 
 class BZ2File(io.BufferedIOBase):
 
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index 37e4dcd0e9..f9e5c189a1 100755
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -38,6 +38,7 @@ __credits__ = "Gustavo Niemeyer, Niels Gust\u00e4bel, Richard Townsend."
 #---------
 # Imports
 #---------
+from builtins import open as bltn_open
 import sys
 import os
 import io
@@ -2421,7 +2422,6 @@ def is_tarfile(name):
     except TarError:
         return False
 
-bltn_open = open
 open = TarFile.open
 
 
diff --git a/Lib/tokenize.py b/Lib/tokenize.py
index 5b47ebd821..ed4153cec6 100644
--- a/Lib/tokenize.py
+++ b/Lib/tokenize.py
@@ -24,6 +24,7 @@ __author__ = 'Ka-Ping Yee <ping@lfw.org>'
 __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 @@ def detect_encoding(readline):
     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 e52a480f9e..a6073b8c43 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -16,6 +16,9 @@ Core and Builtins
 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 58246fa2ad..6abacc9e0e 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):