Your IP : 18.220.86.46


Current Path : /lib64/python2.7/
Upload File :
Current File : //lib64/python2.7/linecache.pyo

�
�mec@spdZddlZddlZdddgZdd�Ziad�Zdd�Zdd	�Z	dd
�Z
dS(s�Cache lines from files.

This is intended to read lines from modules imported -- hence if a filename
is not found, it will look down the module search path for a file by
that name.
i����Ntgetlinet
clearcachet
checkcachecCsEt||�}d|ko,t|�knr=||dSdSdS(Nit(tgetlinestlen(tfilenametlinenotmodule_globalstlines((s!/usr/lib64/python2.7/linecache.pyR
s"cCs
iadS(sClear the cache entirely.N(tcache(((s!/usr/lib64/python2.7/linecache.pyRscCs)|tkrt|dSt||�SdS(ssGet the lines for a file from the cache.
    Update the cache if it doesn't contain an entry for this file already.iN(R
tupdatecache(RR((s!/usr/lib64/python2.7/linecache.pyR!scCs�|dkrtj�}n|tkr3|g}ndSx�|D]�}t|\}}}}|dkrlq>nytj|�}Wntjk
r�t|=q>nX||jks�||jkr>t|=q>q>WdS(sUDiscard cache entries that are out of date.
    (This is not checked upon each call!)N(tNoneR
tkeystoststatterrortst_sizetst_mtime(Rt	filenamestsizetmtimeR	tfullnameR((s!/usr/lib64/python2.7/linecache.pyR+s 
cCsf|tkrt|=n|s;|jd�r?|jd�r?gS|}ytj|�}Wnttk
r�|}|r<d|kr<|jd�}|d}t|dd	�}|r<|r<y||�}Wnt	t
fk
r�q9X|d	kr�gSt|�d	g|j�D]}	|	d^q
|ft|<t|dSq<ntj
j|�rRgSxztj
D]g}
ytj
j|
|�}Wnttfk
r�q\nXytj|�}PWq\tjk
r�q\Xq\WgSnXy(t|d��}|j�}Wd	QXWnt
k
rgSX|r9|d
jd�r9|d
cd7<n|j|j}
}|
|||ft|<|S(s�Update a cache entry and return its list of lines.
    If something's wrong, print a message, discard the cache entry,
    and return an empty list.t<t>t
__loader__t__name__t
get_sources
itrUNi����(R
t
startswithtendswithRRtOSErrortgettgetattrRtImportErrortIOErrorRt
splitlinestpathtisabstsystjoint	TypeErrortAttributeErrorRtopent	readlinesRR(RRRRtbasenametnametloaderRtdatatlinetdirnametfpR	RR((s!/usr/lib64/python2.7/linecache.pyRDs\
%

-
(t__doc__R'Rt__all__RRR
RRRR(((s!/usr/lib64/python2.7/linecache.pyt<module>s