def takewhile(pred, seq=EMPTY): """Yields sequence items until first predicate fail. Stops on first falsy value in one argument version.""" if seq is EMPTY: pred, seq = bool, pred else: pred = make_pred(pred) return _takewhile(pred, seq)
def is_prime(integer): """Returns True if ``integer`` is a prime, otherwise False.""" assert integer < primes[-1] ** 2 integer = -integer if integer < 0 else integer limit = _floor(_sqrt(integer)) + 1 for i in _takewhile(lambda elem: elem < limit, primes): if integer % i == 0: return False return integer > 1
def takewhile(pred, seq=EMPTY): if seq is EMPTY: pred, seq = bool, pred else: pred = make_pred(pred) return _takewhile(pred, seq)
def _up_to(n: int, i: _Iterable[_Any]) -> _Iterable[_Any]: return _takewhile(lambda x: x < n, i)