diff options
-rw-r--r-- | yt_dlp/compat/functools.py | 2 | ||||
-rw-r--r-- | yt_dlp/downloader/common.py | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/yt_dlp/compat/functools.py b/yt_dlp/compat/functools.py index c3c4d8f48..ec003ea90 100644 --- a/yt_dlp/compat/functools.py +++ b/yt_dlp/compat/functools.py @@ -20,5 +20,7 @@ except NameError: self.func = func def __get__(self, instance, _): + if instance is None: + return self setattr(instance, self.func.__name__, self.func(instance)) return getattr(instance, self.func.__name__) diff --git a/yt_dlp/downloader/common.py b/yt_dlp/downloader/common.py index d74692130..93eb10f76 100644 --- a/yt_dlp/downloader/common.py +++ b/yt_dlp/downloader/common.py @@ -11,11 +11,11 @@ from ..minicurses import ( MultilinePrinter, QuietMultilinePrinter, ) -from ..compat import functools from ..utils import ( NUMBER_RE, LockingUnsupportedError, Namespace, + classproperty, decodeArgument, encodeFilename, error_to_compat_str, @@ -103,9 +103,9 @@ class FileDownloader: __to_screen = to_screen - @functools.cached_property - def FD_NAME(self): - return re.sub(r'(?<!^)(?=[A-Z])', '_', type(self).__name__[:-2]).lower() + @classproperty + def FD_NAME(cls): + return re.sub(r'(?<!^)(?=[A-Z])', '_', cls.__name__[:-2]).lower() @staticmethod def format_seconds(seconds): |