diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2013-01-11 20:16:15 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2013-01-11 20:16:15 (GMT) |
commit | dfae912d8056d7c607a99b456c8442b28d18ffd4 (patch) | |
tree | 78903031ff37c21f148ab7f76c359ec1a1f5dec1 | |
parent | 8b41c2e259be8214b984b383f3f046152b2b510d (diff) | |
download | cpython-dfae912d8056d7c607a99b456c8442b28d18ffd4.zip cpython-dfae912d8056d7c607a99b456c8442b28d18ffd4.tar.gz cpython-dfae912d8056d7c607a99b456c8442b28d18ffd4.tar.bz2 |
Issue #15539: Fix backup file creation in pindent.py on Windows
-rw-r--r-- | Lib/test/test_tools.py | 1 | ||||
-rwxr-xr-x | Tools/scripts/pindent.py | 34 |
2 files changed, 23 insertions, 12 deletions
diff --git a/Lib/test/test_tools.py b/Lib/test/test_tools.py index 4756e4f..f60b4c7 100644 --- a/Lib/test/test_tools.py +++ b/Lib/test/test_tools.py @@ -57,6 +57,7 @@ class PindentTests(unittest.TestCase): return '\n'.join(line.lstrip() for line in data.splitlines()) + '\n' def test_selftest(self): + self.maxDiff = None with temp_dir() as directory: data_path = os.path.join(directory, '_test.py') with open(self.script) as f: diff --git a/Tools/scripts/pindent.py b/Tools/scripts/pindent.py index 26d81b1..6e40d60 100755 --- a/Tools/scripts/pindent.py +++ b/Tools/scripts/pindent.py @@ -76,6 +76,8 @@ # - realign comments # - optionally do much more thorough reformatting, a la C indent +from __future__ import print_function + # Defaults STEPSIZE = 8 TABSIZE = 8 @@ -370,6 +372,23 @@ def reformat_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = return output.getvalue() # end def reformat_string +def make_backup(filename): + import os, os.path + backup = filename + '~' + if os.path.lexists(backup): + try: + os.remove(backup) + except os.error: + print("Can't remove backup %r" % (backup,), file=sys.stderr) + # end try + # end if + try: + os.rename(filename, backup) + except os.error: + print("Can't rename %r to %r" % (filename, backup), file=sys.stderr) + # end try +# end def make_backup + def complete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS): with open(filename, 'r') as f: source = f.read() @@ -377,10 +396,7 @@ def complete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = result = complete_string(source, stepsize, tabsize, expandtabs) if source == result: return 0 # end if - import os - try: os.rename(filename, filename + '~') - except os.error: pass - # end try + make_backup(filename) with open(filename, 'w') as f: f.write(result) # end with @@ -394,10 +410,7 @@ def delete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = E result = delete_string(source, stepsize, tabsize, expandtabs) if source == result: return 0 # end if - import os - try: os.rename(filename, filename + '~') - except os.error: pass - # end try + make_backup(filename) with open(filename, 'w') as f: f.write(result) # end with @@ -411,10 +424,7 @@ def reformat_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = result = reformat_string(source, stepsize, tabsize, expandtabs) if source == result: return 0 # end if - import os - try: os.rename(filename, filename + '~') - except os.error: pass - # end try + make_backup(filename) with open(filename, 'w') as f: f.write(result) # end with |