-í
ç¶<c       se   d  Z  d k Z d k Z d k Td d d g Z d „  Z h  a d „  Z d „  Z d	 „  Z	 d
 „  Z
 d S(   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.
N(   s   *s   getlines
   clearcaches
   checkcachec    sH   t  |  ƒ } d | j o t | ƒ j n o | | d Sn d Sd  S(   Ni   s    (   s   getliness   filenames   liness   linenos   len(   s   filenames   linenos   lines(    (    s   /usr/lib/python2.2/linecache.pys   getline s    $c      s
   h  a  d S(   s   Clear the cache entirely.N(   s   cache(    (    (    s   /usr/lib/python2.2/linecache.pys
   clearcache s      c    s.   t  i |  ƒ o t  |  d Sn t |  ƒ Sd S(   ss   Get the lines for a file from the cache.
    Update the cache if it doesn't contain an entry for this file already.i   N(   s   caches   has_keys   filenames   updatecache(   s   filename(    (    s   /usr/lib/python2.2/linecache.pys   getlines" s     c     s”   x t  i ƒ  D] } t  | \ } } } } y t i | ƒ }  Wn  t i	 j
 o t  | =q n X| |  t
 j p | |  t j o t  | =n q Wd S(   sU   Discard cache entries that are out of date.
    (This is not checked upon each call!)N(   s   caches   keyss   filenames   sizes   mtimes   liness   fullnames   oss   stats   errors   ST_SIZEs   ST_MTIME(   s   stats   mtimes   fullnames   liness   filenames   size(    (    s   /usr/lib/python2.2/linecache.pys
   checkcache, s      "c 
   s…  t  i |  ƒ o t  |  =n |  p |  d |  d d j o g  Sn |  } y t i | ƒ } Wn¨ t i j
 o™ } t i i	 |  ƒ d } xw t i D]h } y t i i | | ƒ } Wn t t f j
 o n/ Xy t i | ƒ } PWn t i j
 o n Xq“ Wg  Sn Xy) t | d ƒ } | i ƒ  } | i ƒ  Wn t j
 o } g  Sn X| t | t f \ }	 } |	 | | | f t  |  <| Sd 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.i    iÿÿÿÿs   <>i   s   rN(   s   caches   has_keys   filenames   fullnames   oss   stats   errors   msgs   paths   splits   basenames   syss   dirnames   joins	   TypeErrors   AttributeErrors   opens   fps	   readliness   liness   closes   IOErrors   ST_SIZEs   ST_MTIMEs   sizes   mtime(
   s   filenames   fps   stats   basenames   liness   mtimes   msgs   fullnames   dirnames   size(    (    s   /usr/lib/python2.2/linecache.pys   updatecache; s>     !
 			(   s   __doc__s   syss   oss   stats   __all__s   getlines   caches
   clearcaches   getliness
   checkcaches   updatecache(   s   syss   updatecaches
   clearcaches   __all__s
   checkcaches   oss   getlines   getlines(    (    s   /usr/lib/python2.2/linecache.pys   ? s   			
		
	