aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/compat/functools.py2
-rw-r--r--yt_dlp/downloader/common.py8
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):