File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
graalpython/lib-graalpython Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -418,3 +418,30 @@ def __next__(self):
418418 n = next (self .iterator )
419419 if not self .func (n ):
420420 return n
421+
422+ class takewhile (object ):
423+ """Make an iterator that returns elements from the iterable as
424+ long as the predicate is true.
425+
426+ Equivalent to :
427+
428+ def takewhile(predicate, iterable):
429+ for x in iterable:
430+ if predicate(x):
431+ yield x
432+ else:
433+ break
434+ """
435+ def __init__ (self , predicate , iterable ):
436+ self ._predicate = predicate
437+ self ._iter = iter (iterable )
438+
439+ def __iter__ (self ):
440+ return self
441+
442+ def __next__ (self ):
443+ value = next (self ._iter )
444+ if not self ._predicate (value ):
445+ self ._iter = iter ([])
446+ raise StopIteration ()
447+ return value
You can’t perform that action at this time.
0 commit comments