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):
418
418
n = next (self .iterator )
419
419
if not self .func (n ):
420
420
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