CasperSecurity

Current Path : /usr/lib/python3.10/__pycache__/
Upload File :
Current File : //usr/lib/python3.10/__pycache__/linecache.cpython-310.pyc

o

`�wi:�@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� /usr/lib/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
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY