Browse Source

util: add function "chunks"

taken from ElectrumX
67111a3c4c/electrumx/lib/util.py (L149)
regtest_lnd
SomberNight 6 years ago
parent
commit
30ffb3d4dc
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 8
      electrum/tests/test_util.py
  2. 8
      electrum/util.py

8
electrum/tests/test_util.py

@ -1,7 +1,7 @@
from decimal import Decimal
from electrum.util import (format_satoshis, format_fee_satoshis, parse_URI,
is_hash256_str)
is_hash256_str, chunks)
from . import SequentialTestCase
@ -104,3 +104,9 @@ class TestUtil(SequentialTestCase):
self.assertFalse(is_hash256_str('qweqwe'))
self.assertFalse(is_hash256_str(None))
self.assertFalse(is_hash256_str(7))
def test_chunks(self):
self.assertEqual([[1, 2], [3, 4], [5]],
list(chunks([1, 2, 3, 4, 5], 2)))
with self.assertRaises(ValueError):
list(chunks([1, 2, 3], 0))

8
electrum/util.py

@ -520,6 +520,14 @@ def is_non_negative_integer(val) -> bool:
return False
def chunks(items, size: int):
"""Break up items, an iterable, into chunks of length size."""
if size < 1:
raise ValueError(f"size must be positive, not {repr(size)}")
for i in range(0, len(items), size):
yield items[i: i + size]
def format_satoshis_plain(x, decimal_point = 8):
"""Display a satoshi amount scaled. Always uses a '.' as a decimal
point and has no thousands separator"""

Loading…
Cancel
Save