From 709370b2198e09f1dbe195fe8813602a3125b7f6 Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Wed, 8 Sep 2021 23:29:05 -0700 Subject: Add doctests to some of this stuff. --- list_utils.py | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) (limited to 'list_utils.py') diff --git a/list_utils.py b/list_utils.py index 7d3355c..993ca8a 100644 --- a/list_utils.py +++ b/list_utils.py @@ -5,16 +5,28 @@ from typing import Any, Iterator, List def shard(lst: List[Any], size: int) -> Iterator[Any]: - """Yield successive size-sized shards from lst.""" + """ + Yield successive size-sized shards from lst. + + >>> for sublist in shard([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], 3): + ... [_ for _ in sublist] + [1, 2, 3] + [4, 5, 6] + [7, 8, 9] + [10, 11, 12] + + """ for x in range(0, len(lst), size): yield islice(lst, x, x + size) def flatten(lst: List[Any]) -> List[Any]: - """Flatten out a list: + """ + Flatten out a list: + + >>> flatten([ 1, [2, 3, 4, [5], 6], 7, [8, [9]]]) + [1, 2, 3, 4, 5, 6, 7, 8, 9] - >>> flatten([ 1, [2, 3, 4, [5], 6], 7, [8, [9]]]) - [1, 2, 3, 4, 5, 6, 7, 8, 9] """ if len(lst) == 0: return lst @@ -24,6 +36,17 @@ def flatten(lst: List[Any]) -> List[Any]: def prepend(item: Any, lst: List[Any]) -> List[Any]: - """Prepend an item to a list.""" - lst = list.insert(0, item) + """ + Prepend an item to a list. + + >>> prepend('foo', ['bar', 'baz']) + ['foo', 'bar', 'baz'] + + """ + lst.insert(0, item) return lst + + +if __name__ == '__main__': + import doctest + doctest.testmod() -- cgit v1.3