#NEWLINE# def ranges( self , start , end ) : #NEWLINE# #INDENT# iterators = [ i . ranges ( start , end ) for i in self . range_iterators ] #NEWLINE# ( starts , ends , values ) = zip ( * [ i . next ( ) for i in iterators ] ) #NEWLINE# starts = list ( starts ) #NEWLINE# ends = list ( ends ) #NEWLINE# values = list ( values ) #NEWLINE# while ( start < end ) : #NEWLINE# #INDENT# min_end = min ( ends ) #NEWLINE# ( yield ( start , min_end , values ) ) #NEWLINE# start = min_end #NEWLINE# for ( i , iterator ) in enumerate ( iterators ) : #NEWLINE# #INDENT# if ( ends [ i ] == min_end ) : #NEWLINE# #INDENT# ( starts [ i ] , ends [ i ] , values [ i ] ) = iterator . next ( )