mypy clean
[kiosk.git] / grab_bag.py
1 #!/usr/bin/env python3
2
3 import random
4 from typing import Iterable, List, Optional, Set
5
6
7 class grab_bag(object):
8     def __init__(self) -> None:
9         self.contents: Set[str] = set()
10
11     def clear(self) -> None:
12         self.contents.clear()
13
14     def add(self, item: str) -> None:
15         if item not in self.contents:
16             self.contents.add(item)
17
18     def add_all(self, collection: Iterable[str]) -> None:
19         for x in collection:
20             self.add(x)
21
22     def subset(self, count: int) -> Optional[List[str]]:
23         if len(self.contents) < count:
24             return None
25         subset = random.sample(self.contents, count)
26         return subset
27
28     def size(self) -> int:
29         return len(self.contents)
30
31
32 # x = grab_bag()
33 # x.add_all([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
34 # print x.subset(3)