U
    ç¥¡cÔ  ã                   @   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-qkhzhrww/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     