ok
Direktori : /opt/alt/python38/lib64/python3.8/site-packages/maxminddb/__pycache__/ |
Current File : //opt/alt/python38/lib64/python3.8/site-packages/maxminddb/__pycache__/file.cpython-38.pyc |
U ��^� � @ sR d Z ddlZzddlmZ W n ek r< ddlmZ Y nX G dd� de�ZdS )z<For internal use only. It provides a slice-like file reader.� N)�Lockc @ sT e Zd ZdZdd� Zdd� Zdd� Zdd � Zd d� Ze e d�rHd d� Zndd� ZdS )� FileBufferzA slice-able file readerc C s6 t |d�| _t�| j�� �j| _ttd�s2t� | _ d S )N�rb�pread) �open�_handle�os�fstat�fileno�st_size�_size�hasattrr �_lock)�selfZdatabase� r �/file.py�__init__ s zFileBuffer.__init__c C sF t |t�r | �|j|j |j�S t |t�r:| �d|�d S td��d S )N� r zInvalid argument type.)� isinstance�slice�_read�stop�start�int� TypeError)r �keyr r r �__getitem__ s zFileBuffer.__getitem__c C s0 | � | j| d |��|�}|dkr(|S || S )zReverse find needle from startr ���)r r �rfind)r Zneedler �posr r r r s zFileBuffer.rfindc C s | j S )zSize of file)r �r r r r �size# s zFileBuffer.sizec C s | j �� dS )z Close fileN)r �closer r r r r"