From add46228701d78444e20afdde4beafa3268344f2 Mon Sep 17 00:00:00 2001 From: dirkf Date: Fri, 4 Apr 2025 04:09:56 +0100 Subject: [PATCH] [compat] Add compat_os_makedirs * support exists_ok parameter in Py < 3.2 --- youtube_dl/compat.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py index 8910a4dac..72b2f8f78 100644 --- a/youtube_dl/compat.py +++ b/youtube_dl/compat.py @@ -3120,6 +3120,21 @@ else: compat_os_path_expanduser = compat_expanduser +# compat_os_makedirs +try: + os.makedirs('.', exist_ok=True) + compat_os_makedirs = os.makedirs +except TypeError: # < Py3.2 + from errno import EEXIST as _errno_EEXIST + + def compat_os_makedirs(name, mode=0o777, exist_ok=False): + try: + return os.makedirs(name, mode=mode) + except OSError as ose: + if not (exist_ok and ose.errno == _errno_EEXIST): + raise + + # compat_os_path_realpath if compat_os_name == 'nt' and sys.version_info < (3, 8): # os.path.realpath on Windows does not follow symbolic links @@ -3637,6 +3652,7 @@ __all__ = [ 'compat_numeric_types', 'compat_open', 'compat_ord', + 'compat_os_makedirs', 'compat_os_name', 'compat_os_path_expanduser', 'compat_os_path_realpath',