3 \��@sjddlZddlZddlZddlZdddgZddd�Ziadd�Zddd�Zdd d�Z dd d �Z d d �Z dS)�N�getline� clearcache� checkcachecCs:t||�}d|ko t|�knr2||dSdSdS)N��)�getlines�len)�filename�lineno�module_globals�lines�r �!/usr/lib64/python3.6/linecache.pyrs  cCsiadS)N)�cacher r r rrsc CsR|tkr(t|}t|�dkr(t|dSy t||�Stk rLt�gSXdS)Nr�)rr� updatecache� MemoryErrorr)r r �entryr r rr%s   rc Cs�|dkrttj��}n|tkr&|g}ndSx~|D]v}t|}t|�dkrJq0|\}}}}|dkr`q0ytj|�}Wntk r�t|=w0YnX||jks�||jkr0t|=q0WdS)Nr) �listr�keysr�os�stat�OSError�st_size�st_mtime)r � filenamesr�size�mtimer �fullnamerr r rr5s&   c "Cs�|tkrtt|�dkrt|=| s8|jd�r<|jd�rrcSsg|] }|d�qS)� r )�.0�liner r r� qszupdatecache..rr!�����r%)rr� startswith�endswithrrr� lazycache� ImportError� splitlines�path�isabs�sys�join� TypeError�AttributeError�tokenize�open� readlinesrr) r r rr�basename�data�dirname�fpr rrr r rrRsV        rcCs�|tkr tt|�dkrdSdS| s:|jd�r>|jd�r>dS|r�d|kr�|jd�}|d}t|dd�}|r�|r�tj||�}|ft|<dSdS) NrTFrr � __loader__�__name__� get_source)rrr&r'�get�getattr� functools�partial)r r �name�loaderr:� get_linesr r rr(�s      r()N)N)N)N) r=r-rr1�__all__rrrrrrr(r r r r�s     A