aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/downloader/common.py
diff options
context:
space:
mode:
authorPaul Wrubel <pwrubel7@gmail.com>2021-08-26 21:27:20 -0500
committerGitHub <noreply@github.com>2021-08-27 07:57:20 +0530
commitd75201a873a413d73f12748e5710f000e9f727da (patch)
tree6d60de6dbbf3892dc2e5d49c6c78e4e0123174fd /yt_dlp/downloader/common.py
parent691d5823d6ff72b813eb34ede8009b70bebd73da (diff)
downloadhypervideo-pre-d75201a873a413d73f12748e5710f000e9f727da.tar.lz
hypervideo-pre-d75201a873a413d73f12748e5710f000e9f727da.tar.xz
hypervideo-pre-d75201a873a413d73f12748e5710f000e9f727da.zip
Use `os.replace` where applicable (#793)
When using ```py os.remove(encodeFilename(filename)) os.rename(encodeFilename(temp_filename), encodeFilename(filename)) ``` the `os.remove` need not be atomic and so can be executed arbitrarily compared to the immediately following rename call. It is better to use `os.replace` instead Authored by: paulwrubel
Diffstat (limited to 'yt_dlp/downloader/common.py')
-rw-r--r--yt_dlp/downloader/common.py7
1 files changed, 2 insertions, 5 deletions
diff --git a/yt_dlp/downloader/common.py b/yt_dlp/downloader/common.py
index f5f6393a6..ce914bd4a 100644
--- a/yt_dlp/downloader/common.py
+++ b/yt_dlp/downloader/common.py
@@ -207,12 +207,9 @@ class FileDownloader(object):
if old_filename == new_filename:
return
try:
- if self.params.get('overwrites', False):
- if os.path.isfile(encodeFilename(new_filename)):
- os.remove(encodeFilename(new_filename))
- os.rename(encodeFilename(old_filename), encodeFilename(new_filename))
+ os.replace(old_filename, new_filename)
except (IOError, OSError) as err:
- self.report_error('unable to rename file: %s' % error_to_compat_str(err))
+ self.report_error(f'unable to rename file: {err}')
def try_utime(self, filename, last_modified_hdr):
"""Try to set the last-modified time of the given file."""