xref: /third_party/python/Tools/freeze/bkfile.py
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/python/Tools/freeze/
17db96d56Sopenharmony_cifrom builtins import open as _orig_open
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_cidef open(file, mode='r', bufsize=-1):
47db96d56Sopenharmony_ci    if 'w' not in mode:
57db96d56Sopenharmony_ci        return _orig_open(file, mode, bufsize)
67db96d56Sopenharmony_ci    import os
77db96d56Sopenharmony_ci    backup = file + '~'
87db96d56Sopenharmony_ci    try:
97db96d56Sopenharmony_ci        os.unlink(backup)
107db96d56Sopenharmony_ci    except OSError:
117db96d56Sopenharmony_ci        pass
127db96d56Sopenharmony_ci    try:
137db96d56Sopenharmony_ci        os.rename(file, backup)
147db96d56Sopenharmony_ci    except OSError:
157db96d56Sopenharmony_ci        return _orig_open(file, mode, bufsize)
167db96d56Sopenharmony_ci    f = _orig_open(file, mode, bufsize)
177db96d56Sopenharmony_ci    _orig_close = f.close
187db96d56Sopenharmony_ci    def close():
197db96d56Sopenharmony_ci        _orig_close()
207db96d56Sopenharmony_ci        import filecmp
217db96d56Sopenharmony_ci        if filecmp.cmp(backup, file, shallow=False):
227db96d56Sopenharmony_ci            import os
237db96d56Sopenharmony_ci            os.unlink(file)
247db96d56Sopenharmony_ci            os.rename(backup, file)
257db96d56Sopenharmony_ci    f.close = close
267db96d56Sopenharmony_ci    return f
27

Indexes created Thu Nov 07 10:32:03 CST 2024