From 4a98e3b6d06e5477e5d62f18e85056cbb7253f98 Mon Sep 17 00:00:00 2001 From: Alexander Belopolsky Date: Mon, 18 Oct 2010 14:43:38 +0000 Subject: [PATCH] Issue #10117: Tools/scripts/reindent.py now accepts source files that use encoding other than ASCII or UTF-8. Source encoding is preserved when reindented code is written to a file. --- Lib/trace.py | 1 + Misc/NEWS | 4 ++++ Tools/scripts/reindent.py | 6 ++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Lib/trace.py b/Lib/trace.py index fa24fc1cc3..eb21fde387 100644 --- a/Lib/trace.py +++ b/Lib/trace.py @@ -493,6 +493,7 @@ class Trace: threading.settrace(self.globaltrace) sys.settrace(self.globaltrace) try: + del sys.modules['pickle'] exec(cmd, globals, locals) finally: if not self.donothing: diff --git a/Misc/NEWS b/Misc/NEWS index 768702c164..2f030c3789 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -111,6 +111,10 @@ C-API Tools/Demos ----------- +- Issue #10117: Tools/scripts/reindent.py now accepts source files + that use encoding other than ASCII or UTF-8. Source encoding is + preserved when reindented code is written to a file. + - Issue #7287: Demo/imputil/knee.py was removed. Tests diff --git a/Tools/scripts/reindent.py b/Tools/scripts/reindent.py index cff9a06822..bb4152076b 100755 --- a/Tools/scripts/reindent.py +++ b/Tools/scripts/reindent.py @@ -109,8 +109,10 @@ def check(file): if verbose: print("checking", file, "...", end=' ') + with open(file, 'rb') as f: + encoding, _ = tokenize.detect_encoding(f.readline) try: - with open(file) as f: + with open(file, encoding=encoding) as f: r = Reindenter(f) except IOError as msg: errprint("%s: I/O Error: %s" % (file, str(msg))) @@ -127,7 +129,7 @@ def check(file): shutil.copyfile(file, bak) if verbose: print("backed up", file, "to", bak) - with open(file, "w") as f: + with open(file, "w", encoding=encoding) as f: r.write(f) if verbose: print("wrote new", file) -- 2.49.0