Your IP : 3.138.134.149


Current Path : /opt/alt/python312/lib64/python3.12/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/__pycache__/linecache.cpython-312.pyc

�

�Q�ft��`�dZddlZddlZddlZddlZgd�ZiZd�Zd
d�Zd
d�Z	d
d�Z
d
d�Zd	�Zy)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�	lazycachec�,�tj�y)zClear the cache entirely.N)�cache�clear���0/opt/alt/python312/lib64/python3.12/linecache.pyrrs��	�K�K�Mrc�Z�t||�}d|cxkrt|�krny||dz
Sy)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�liness    rrrs8��
�X�~�.�E��F� �c�%�j� �
��V�a�Z� � �
rc��|tvr#t|}t|�dk7rt|dS	t||�S#t$rt	�gcYSwxYw)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�entrys   rrr$sZ���5���h����u�:��?���?�1�%�%���8�^�4�4�������	��s�9�A�Ac��|�ttj��}n
|tvr|g}ny|D]o}t|}t|�dk(r�|\}}}}|��%	t	j
|�}||jk7s||jk7s�Ztj|d��qy#ttf$rtj|d�Y��wxYw)zUDiscard cache entries that are out of date.
    (This is not checked upon each call!)Nr)�listr�keysr�os�stat�OSError�
ValueError�pop�st_size�st_mtime)r�	filenamesr�size�mtimer�fullnamers        rrr4s����������&�	�	�U�	��J�	�����h����u�:��?��',�$��e�U�H��=��	��7�7�8�$�D��4�<�<��5�D�M�M�#9��I�I�h��%�����$�	��I�I�h��%��	�s�B#�#%C�
Cc��|tvr+tt|�dk7rtj|d�|r"|jd�r|j	d�rgS|}	tj|�}	t%j&|�5}|j)�}	ddd�	r!|	dj	d�s
|	dxxdz
cc<|j.|j0}}
|
||	|ft|<|	S#t$�r&|}t||�ru	t|d�}|�gcYSt|�d|j�D�cgc]}|dz��	ncc}wc}|ft|<t|dcYS#ttf$rYnwxYwt
jj|�rgcYStjD]e}	t
jj||�}n#tt f$rY�6wxYw	tj|�}n#tt"f$rY�cwxYwgcYSY���t"$rgcYSwxYw#1swY���xYw#tt*t,f$rgcYSwxYw)	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.rN�<�>r�
r���)rrr"�
startswith�endswithrrr r�
splitlines�ImportError�path�isabs�sys�join�	TypeError�AttributeErrorr!�tokenize�open�	readlines�UnicodeDecodeError�SyntaxErrorr#r$)rrr(r�basename�data�line�dirname�fprr&r's            rrrPs>��
�5���u�X���1�$��I�I�h��%���+�+�C�0�X�5F�5F�s�5K��	��H�,��w�w�x� ��X�
�]�]�8�
$���L�L�N�E�%�
�U�2�Y�'�'��-�
�b�	�T��	��,�,��
�
�%�D��E�5�(�2�E�(�O��L��i�(����X�~�.�
*��X��q�)�+���<��I���I��-1�_�_�->�?�->�T�T�D�[�->��?��	#��h���X��q�)�)�� ��)�
��
��"�7�7�=�=��"��I��x�x�G�
��7�7�<�<���:����~�.�
��
��
��w�w�x�(�����Z�(�
��
�� ��I�	�
���	���%�
$���'��5���	��s��C+�3H7�H*�H7�+H'�E#�H'�H'�7E
�H'�#E5�2H'�4E5�5$H'�H'�/ G�H'�G"�H'�!G"�"H'�&G=�;H'�=H�H'�H�H'�
H'�&H'�*H4�/H7�7I�Ic��|tvrtt|�dk(ryy|r"|jd�r|jd�ry|r{d|vrw|j	d�}t|dd	�xs|d}t|d
d	�}|�|j	d�}t|dd	�}|r#|r!t
j||�}|ft|<yy)
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.
    rTFr*r+�__name__�__spec__�nameN�loader�
__loader__�
get_source)rrr.r/�get�getattr�	functools�partial)rr�specrErFrH�	get_liness       rrr�s����5���u�X���1�$�����+�+�C�0�X�5F�5F�s�5K���*��6��!�!�*�-���t�V�T�*�H�n�Z�.H����x��.���>�#�'�'��5�F��V�\�4�8�
��J�!�)�)�*�d�;�I�(�l�E�(�O��r)N)
�__doc__rKr4rr8�__all__rrrrrrrr
rr�<module>rQsD����
�	��
>��
	���
�
� &�8B�J!r

?>