MINI MINI MANI MO

Path : /usr/lib64/python3.6/__pycache__/
File Upload :
Current File : //usr/lib64/python3.6/__pycache__/linecache.cpython-36.opt-1.pyc

3


 \@sndZddlZddlZddlZddlZdddgZdddZiaddZddd	Z	dd
dZ
dddZd
dZdS)zCache lines from Python source 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.
Ngetline
clearcache
checkcachecCs:t||}d|ko t|knr2||dSdSdS)N)getlineslen)filenamelinenomodule_globalslinesr
!/usr/lib64/python3.6/linecache.pyrs
cCsiadS)zClear the cache entirely.N)cacher
r
r
rrscCsR|tkr(t|}t|dkr(t|dSy
t||Stk
rLtgSXdS)zGet the lines for a Python source file from the cache.
    Update the cache if it doesn't contain an entry for this file already.rN)rrupdatecacheMemoryErrorr)r	rentryr
r
rr%s
rcCs|dkrttj}n|tkr&|g}ndSx~|D]v}t|}t|dkrJq0|\}}}}|dkr`q0ytj|}Wntk
rt|=w0YnX||jks||jkr0t|=q0WdS)zUDiscard cache entries that are out of date.
    (This is not checked upon each call!)Nr)	listrkeysrosstatOSErrorst_sizest_mtime)r		filenamesrsizemtimerfullnamerr
r
rr5s&
c"Cs|tkrtt|dkrt|=|s8|jdr<|jdr<gS|}ytj|}Wntk
rV|}t||ryt|d}Wnttfk
rYn<X|dkrgSt|ddd|j	D|ft|<t|dStj
j|rgSxjtj
D]\}ytj
j
||}Wnttfk
r wYnXytj|}PWqtk
rHYqXqWgSYnXy"tj|}|j}WdQRXWntk
rgSX|r|d
jd	r|dd	7<|j|j}	}
|	|
||ft|<|S)zUpdate 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.r<>rNcSsg|]}|dqS)
r
).0liner
r
r
<listcomp>qszupdatecache.<locals>.<listcomp>rr!r%)rr
startswithendswithrrr	lazycacheImportError
splitlinespathisabssysjoin	TypeErrorAttributeErrortokenizeopen	readlinesrr)r	rrrbasenamedatadirnamefprrrr
r
rrRsV



rcCs|tkr tt|dkrdSdS|s:|jdr>|jdr>dS|rd|kr|jd}|d}t|dd	}|r|rtj||}|ft|<dSdS)
aSeed the cache for filename with module_globals.

    The module loader will be asked for the source only when getlines is
    called, not immediately.

    If there is an entry in the cache already, it is not altered.

    :return: True if a lazy load is registered in the cache,
        otherwise False. To register such a load a module loader with a
        get_source method must be found, the filename must be a cachable
        filename, and the filename must not be already cached.
    rTFrr 
__loader____name__
get_sourceN)rrr&r'getgetattr	functoolspartial)r	rnameloaderr:	get_linesr
r
rr(s


r()N)N)N)N)
__doc__r=r-rr1__all__rrrrrrr(r
r
r
r<module>s




A

OHA YOOOO