U
    >h                     @   s   d dl mZmZmZ edZee eeeef  dddZee eeeef  dddZee eeeeef  ddd	Zd
S )    )IterableTupleTypeVarT)valuesreturnc                 c   sN   t | }zt|}W n tk
r*   Y dS X d|fV  |D ]}d|fV  q:dS )z9Iterate and generate a tuple with a flag for first value.NTFiternextStopIteration)r   iter_valuesvalue r   :/tmp/pip-unpacked-wheel-zvxvnq2j/pip/_vendor/rich/_loop.py
loop_first   s    
r   c                 c   sR   t | }zt|}W n tk
r*   Y dS X |D ]}d|fV  |}q0d|fV  dS )z8Iterate and generate a tuple with a flag for last value.NFTr   )r   r   previous_valuer   r   r   r   	loop_last   s    
r   c                 c   s^   t | }zt|}W n tk
r*   Y dS X d}|D ]}|d|fV  d}|}q4|d|fV  dS )zBIterate and generate a tuple with a flag for first and last value.NTFr   )r   r   r   firstr   r   r   r   loop_first_last   s    r   N)	typingr   r   r   r   boolr   r   r   r   r   r   r   <module>   s     