#!/usr/bin/env python3 import logging import random from typing import Iterable, List, Optional, Set logger = logging.getLogger(__name__) class grab_bag(object): def __init__(self) -> None: self.contents: Set[str] = set() def clear(self) -> None: self.contents.clear() def add(self, item: str) -> None: if item not in self.contents: self.contents.add(item) def add_all(self, collection: Iterable[str]) -> None: for x in collection: self.add(x) def subset(self, count: int) -> Optional[List[str]]: if len(self.contents) < count: return None return random.sample(self.contents, count) def size(self) -> int: return len(self.contents) # x = grab_bag() # x.add_all(["oneA", "two", "three", "oneB", "four", "five", "oneC", "oneD"]) # print(x.subset(3))