implement 'util.format_value()'

pull/1740/head
Mike Fährmann 3 years ago
parent 552032d4fb
commit 2792ed6e4b
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -1,5 +1,7 @@
# Changelog
## Unreleased
## 1.18.2 - 2021-07-23
### Additions
- [bbc] add `gallery` and `programme` extractors ([#1706](https://github.com/mikf/gallery-dl/issues/1706))

@ -97,6 +97,17 @@ def generate_token(size=16):
return binascii.hexlify(data).decode()
def format_value(value, unit="B", suffixes="kMGTPEZY"):
value = format(value)
value_len = len(value)
index = value_len - 4
if index >= 0:
offset = (value_len - 1) % 3 + 1
return (value[:offset] + "." + value[offset:offset+2] +
suffixes[index // 3] + unit)
return value + unit
def combine_dict(a, b):
"""Recursively combine the contents of 'b' into 'a'"""
for key, value in b.items():

@ -6,4 +6,4 @@
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
__version__ = "1.18.2"
__version__ = "1.18.3-dev"

@ -532,6 +532,22 @@ class TestOther(unittest.TestCase):
self.assertEqual(len(token), 80 * 2)
self.assertRegex(token, r"^[0-9a-f]+$")
def test_format_value(self):
self.assertEqual(util.format_value(0) , "0B")
self.assertEqual(util.format_value(1) , "1B")
self.assertEqual(util.format_value(12) , "12B")
self.assertEqual(util.format_value(123) , "123B")
self.assertEqual(util.format_value(1234) , "1.23kB")
self.assertEqual(util.format_value(12345) , "12.34kB")
self.assertEqual(util.format_value(123456) , "123.45kB")
self.assertEqual(util.format_value(1234567) , "1.23MB")
self.assertEqual(util.format_value(12345678) , "12.34MB")
self.assertEqual(util.format_value(123456789) , "123.45MB")
self.assertEqual(util.format_value(1234567890), "1.23GB")
self.assertEqual(util.format_value(123 , "B/s"), "123B/s")
self.assertEqual(util.format_value(123456, "B/s"), "123.45kB/s")
def test_combine_dict(self):
self.assertEqual(
util.combine_dict({}, {}),

Loading…
Cancel
Save