'Cache `n` items. If `n` is 0 or None, then 1 item is cached.'

def _fillcache(self, n):

    if (not n):
        n = 1
    try:
        while (len(self._cache) < n):
            self._cache.append(next(self._iterable))
    except StopIteration:
        while (len(self._cache) < n):
            self._cache.append(self.sentinel)
