(root)/
Python-3.12.0/
Tools/
freeze/
bkfile.py
       1  from builtins import open as _orig_open
       2  
       3  def open(file, mode='r', bufsize=-1):
       4      if 'w' not in mode:
       5          return _orig_open(file, mode, bufsize)
       6      import os
       7      backup = file + '~'
       8      try:
       9          os.unlink(backup)
      10      except OSError:
      11          pass
      12      try:
      13          os.rename(file, backup)
      14      except OSError:
      15          return _orig_open(file, mode, bufsize)
      16      f = _orig_open(file, mode, bufsize)
      17      _orig_close = f.close
      18      def close():
      19          _orig_close()
      20          import filecmp
      21          if filecmp.cmp(backup, file, shallow=False):
      22              import os
      23              os.unlink(file)
      24              os.rename(backup, file)
      25      f.close = close
      26      return f