Your IP : 3.133.133.251


Current Path : /opt/imunify360/venv/lib64/python3.11/site-packages/maxminddb/__pycache__/
Upload File :
Current File : //opt/imunify360/venv/lib64/python3.11/site-packages/maxminddb/__pycache__/file.cpython-311.pyc

�

P�Dgi��j�dZddlZddlmZ	ddlmZn#e$r	ddlmZYnwxYwGd�d��ZdS)z<For internal use only. It provides a slice-like file reader.�N)�Union)�Lockc��eZdZdZdeddfd�Zdeeeffd�Z	de
d	edefd
�Zdefd�Zdd�Z
eed
��rdedede
fd�ZdSdedede
fd�ZdS)�
FileBufferzA slice-able file reader�database�returnNc���t|d��|_tj|j�����j|_ttd��st��|_	dSdS)N�rb�pread)
�open�_handle�os�fstat�fileno�st_size�_size�hasattrr�_lock)�selfrs  �n/builddir/build/BUILD/imunify360-venv-2.4.0/opt/imunify360/venv/lib/python3.11/site-packages/maxminddb/file.py�__init__zFileBuffer.__init__s`���H�d�+�+����X�d�l�1�1�3�3�4�4�<��
��r�7�#�#�	 ����D�J�J�J�	 �	 ��keyc��t|t��r(|�|j|jz
|j��St|t
��r|�d|��dSt
d���)N�rzInvalid argument type.)�
isinstance�slice�_read�stop�start�int�	TypeError)rrs  r�__getitem__zFileBuffer.__getitem__sm���c�5�!�!�	?��:�:�c�h���2�C�I�>�>�>��c�3���	)��:�:�a��%�%�a�(�(��0�1�1�1r�needler c��|�|j|z
dz
|���|��}|dkr|S||zS)zReverse find needle from startr���)rr�rfind)rr$r �poss    rr'zFileBuffer.rfindsG���j�j���e�+�a�/��7�7�=�=�f�E�E���"�9�9��J��s�{�rc��|jS)zSize of file)r�rs r�sizezFileBuffer.size%s
���z�rc�8�|j���dS)z
Close fileN)r
�closer*s rr-zFileBuffer.close)s����������rr�
buffersize�offsetc�\�tj|j���||��S)zread that uses pread)rrr
r�rr.r/s   rrzFileBuffer._read/s&���8�D�L�/�/�1�1�:�v�F�F�Frc��|j5|j�|��|j�|��cddd��S#1swxYwYdS)a�read with a lock

            This lock is necessary as after a fork, the different processes
            will share the same file table entry, even if we dup the fd, and
            as such the same offsets. There does not appear to be a way to
            duplicate the file table entry and we cannot re-open based on the
            original path as that file may have replaced with another or
            unlinked.
            N)rr
�seek�readr1s   rrzFileBuffer._read6s�����
5�
5���!�!�&�)�)�)��|�(�(��4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5�
5�
5s�4A	�	A
�A
)rN)�__name__�
__module__�__qualname__�__doc__�strrrrr!r#�bytesr'r+r-rrr�rrrr
s3������"�"� �� �� � � � �2�u�U�C�Z�0�2�2�2�2��E��#��#������c����������w�r�7���5�	G�C�	G��	G��	G�	G�	G�	G�	G�	G�	5�C�	5��	5��	5�	5�	5�	5�	5�	5rr)	r8r�typingr�multiprocessingr�ImportError�	threadingrr;rr�<module>r@s���B�B�	�	�	�	��������$�$�$�$�$�$�$������������������55�55�55�55�55�55�55�55�55�55s��#�#

?>