File: //home/arjun/projects/env/lib/python3.10/site-packages/PIL/__pycache__/ImageFile.cpython-310.pyc
o
we�[ � @ s� d dl Z d dlZd dlZd dlZddlmZ ddlmZ dZdZ dZ
dd d
ddd
�Z dd� Zdd� Z
G dd� dej�ZG dd� de�ZG dd� d�Zd&dd�Zd'dd�Zdd� ZG dd� d�ZG d d!� d!�ZG d"d#� d#e�ZG d$d%� d%e�ZdS )(� N� )�Image)�is_pathi i Fzimage buffer overrun errorzdecoding errorz
unknown errorzbad configurationzout of memory error)������������i����c C sL zt j�| �}W n ty t�| �}Y nw |sd| � �}|d7 }t|��)Nzdecoder error z when reading image file)r �core�getcodecstatus�AttributeError�ERRORS�get�OSError)�error�msg� r �F/home/arjun/projects/env/lib/python3.10/site-packages/PIL/ImageFile.py�
raise_oserror@ s �
r c C s | d S )N� r )�tr r r � _tilesortK s r c s^ e Zd ZdZd� fdd� Zdd� Z� fdd�Zd d
� Zdd� Zd
d� Z dd� Z
dd� Z� ZS )� ImageFilez*Base class for image file format handlers.Nc s� t � �� d| _d | _d | _ d| _d| _t| _t |�r)t
|d�| _|| _d| _
n || _|| _d | _
z8z| �� W n tttttjfyP } zt|�|�d }~ww | jrb| jd dksb| jd dkrhd}t|��W d S tyz | j
ry| j�� � w )Nr r r �rbTznot identified by this driver)�super�__init__�
_min_frame�custom_mimetype�tile�readonly�
decoderconfig�MAXBLOCK�decodermaxblockr �open�fp�filename�
_exclusive_fp�_open�
IndexError� TypeError�KeyError�EOFError�structr �SyntaxError�mode�size�
BaseException�close)�selfr# r$ �vr �� __class__r r r X sJ
�
��" �
�zImageFile.__init__c C s, | j r| j S | jd urtj�| j�� �S d S �N)r �formatr �MIMEr
�upper�r1 r r r �get_format_mimetype� s
�zImageFile.get_format_mimetypec s g | _ t� �|� d S r5 )r r �__setstate__)r1 �stater3 r r r; � s zImageFile.__setstate__c C s | j r| j�� d| _dS )zCheck file integrityN)r% r# r0 r9 r r r �verify� s
zImageFile.verifyc C s� | j du rd}t|��tj�| �}| j s|S d| _| jo"t| j �dk}|o*ttd� }d}z| j }d}W n
t
yA | jj}Y nw z| j
}d}W n
t
yV | jj}Y nw |r�| j d \}}} }
|dkr�t|
�dkr�|
d | jkr�|
d tjv r�zOddl}t| j��}|j|�� d|jd �| _W d � n1 s�w Y | | jd |
d | j�� kr�t�tj�| j| j|| |
�| _d}| jr�d| j_W n t
ttfy� d| _Y nw | �� d
}
| j�s�| j jtd� z| j}W n t
y� d}Y nw d
d� t �!| j dd� �D �| _ | j D ]�\}}} }
|| � t�"| j||
| j#�}zw|�$| j|� |j%�r;|�&| j� |�'d�d }
nW|} z|| j(�}W n t)t*j+f�ye } zt,�rZW Y d}~n8d}t|�|�d}~ww |�syt,�rmn%dt|�� d�}t|��|| }|�'|�\}}
|dk �r�n||d� }�q>W |�-� �q
|�-� w g | _ || _.| �/� | j0�r�| j1�r�| j�2� d| _| j�s�t,�s�|
dk �r�t3|
� tj�| �S )z"Load image data based on tile listNzcannot load this imager �pypy_version_infor F�raw� )�accessr ��key� c S s g | ]
\}}t |�d �qS )r )�list)�.0�_�tilesr r r �
<listcomp>� s
��z"ImageFile.load.<locals>.<listcomp>c S s | d | d | d fS )Nr r r@ r )r r r r �<lambda>� s z ImageFile.load.<locals>.<lambda>Tzimage file is truncatedzimage file is truncated (z bytes not processed))4r r r �load�mapr$ �len�hasattr�sys� load_readr r# �read� load_seek�seekr- � _MAPMODES�mmapr"