Your IP : 3.137.214.16


Current Path : /opt/alt/python310/lib64/python3.10/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/__pycache__/linecache.cpython-310.pyc

o

6��f:�@sldZddlZddlZddlZddlZgd�ZiZdd�Zddd�Zddd	�Z	dd
d�Z
ddd
�Zdd�ZdS)z�Cache 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.
�N)�getline�
clearcache�
checkcache�	lazycachecCst��dS)zClear the cache entirely.N)�cache�clear�rr�0/opt/alt/python310/lib64/python3.10/linecache.pyrsrcCs8t||�}d|krt|�krndS||dSdS)z~Get a line for a Python source file from the cache.
    Update the cache if it doesn't contain an entry for this file already.��)�getlines�len)�filename�lineno�module_globals�linesrrr	rs

�rcCsR|tvrt|}t|�dkrt|dSzt||�WSty(t�gYSw)z�Get the lines for a Python source file from the cache.
    Update the cache if it doesn't contain an entry for this file already.r
�)rr
�updatecache�MemoryErrorr)rr�entryrrr	r$s�rc	Cs�|durtt���}n
|tvr|g}ndS|D]?}t|}t|�dkr$q|\}}}}|dur/qzt�|�}WntyEt�|d�Yqw||jksP||j	krVt�|d�qdS)zUDiscard cache entries that are out of date.
    (This is not checked upon each call!)Nr
)
�listr�keysr
�os�stat�OSError�pop�st_size�st_mtime)r�	filenamesr�size�mtimer�fullnamerrrr	r4s,���rc
Cs�|tvrtt|�dkrt�|d�|r|�d�r |�d�r gS|}zt�|�}Wn�ty�|}t||�rmz	t|d�}Wnt	tfyKYn"w|durTgYSt|�ddd�|�
�D�|ft|<t|dYStj�|�rwgYSt
jD](}z	tj�||�}Wnttfy�Yqzwzt�|�}Wn
ty�YqzwgYSYnwzt�|��}|��}Wd�n1s�wYWntttfy�gYSw|r�|d	�d
�s�|d	d
7<|j|j}	}
|	|
||ft|<|S)z�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.r
N�<�>rcSsg|]}|d�qS)�
r)�.0�linerrr	�
<listcomp>pszupdatecache.<locals>.<listcomp>r���r$)rr
r�
startswith�endswithrrrr�ImportError�
splitlines�path�isabs�sys�join�	TypeError�AttributeError�tokenize�open�	readlines�UnicodeDecodeError�SyntaxErrorrr)rrr!r�basename�data�dirname�fprrr rrr	rPsl
��
�
���)
���rcCs�|tvrtt|�dkrdSdS|r|�d�r|�d�rdS|r^d|vr^|d}|�d�}durG|�d	�}rGz|j}Wn	tyFYnwt|d
d�}|r^|r^t�	||�}|ft|<dSdS)a�Seed 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 cacheable
        filename, and the filename must not be already cached.
    r
TFr"r#�__name__�
__loader__N�__spec__�
get_source)
rr
r)r*�get�loaderr2�getattr�	functools�partial)rr�namerA�specr?�	get_linesrrr	r�s*

�
r)N)
�__doc__rCr/rr3�__all__rrrrrrrrrrr	�<module>s




C

?>