From 941e881e1fe20ee8955f3b751ce26953d9e86656 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Fri, 9 Sep 2022 23:14:20 +0530 Subject: [PATCH] Fix bug in ae1035646a6be09c2aed3e22eb8910f341ddacfe Closes #4881 --- yt_dlp/YoutubeDL.py | 3 ++- yt_dlp/utils.py | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index 95fa5fb19..83b5100ee 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -108,6 +108,7 @@ from .utils import ( get_domain, int_or_none, iri_to_uri, + is_path_like, join_nonempty, locked_file, make_archive_id, @@ -725,7 +726,7 @@ class YoutubeDL: archive = set() if fn is None: return archive - elif not isinstance(fn, os.PathLike): + elif not is_path_like(fn): return fn self.write_debug(f'Loading archive file {fn!r}') diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index 06699341c..a036e2233 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -1497,6 +1497,10 @@ class YoutubeDLHTTPSHandler(urllib.request.HTTPSHandler): raise +def is_path_like(f): + return isinstance(f, (str, bytes, os.PathLike)) + + class YoutubeDLCookieJar(http.cookiejar.MozillaCookieJar): """ See [1] for cookie file format. @@ -1515,7 +1519,7 @@ class YoutubeDLCookieJar(http.cookiejar.MozillaCookieJar): def __init__(self, filename=None, *args, **kwargs): super().__init__(None, *args, **kwargs) - if self.is_path(filename): + if is_path_like(filename): filename = os.fspath(filename) self.filename = filename @@ -1523,13 +1527,9 @@ class YoutubeDLCookieJar(http.cookiejar.MozillaCookieJar): def _true_or_false(cndn): return 'TRUE' if cndn else 'FALSE' - @staticmethod - def is_path(file): - return isinstance(file, (str, bytes, os.PathLike)) - @contextlib.contextmanager def open(self, file, *, write=False): - if self.is_path(file): + if is_path_like(file): with open(file, 'w' if write else 'r', encoding='utf-8') as f: yield f else: