aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/test_utils.py1
-rw-r--r--yt_dlp/utils.py5
2 files changed, 4 insertions, 2 deletions
diff --git a/test/test_utils.py b/test/test_utils.py
index 6be5bb642..a7f1b0e94 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -1780,6 +1780,7 @@ Line 1
self.assertEqual(format_bytes(1024**6), '1.00EiB')
self.assertEqual(format_bytes(1024**7), '1.00ZiB')
self.assertEqual(format_bytes(1024**8), '1.00YiB')
+ self.assertEqual(format_bytes(1024**9), '1024.00YiB')
def test_hide_login_info(self):
self.assertEqual(Config.hide_login_info(['-u', 'foo', '-p', 'bar']),
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index c9b57c2f0..da6f27801 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -2279,8 +2279,9 @@ def format_decimal_suffix(num, fmt='%d%s', *, factor=1000):
num, factor = float_or_none(num), float(factor)
if num is None or num < 0:
return None
- exponent = 0 if num == 0 else int(math.log(num, factor))
- suffix = ['', *'kMGTPEZY'][exponent]
+ POSSIBLE_SUFFIXES = 'kMGTPEZY'
+ exponent = 0 if num == 0 else min(int(math.log(num, factor)), len(POSSIBLE_SUFFIXES))
+ suffix = ['', *POSSIBLE_SUFFIXES][exponent]
if factor == 1024:
suffix = {'k': 'Ki', '': ''}.get(suffix, f'{suffix}i')
converted = num / (factor ** exponent)