U
    e7
                     @  s`   d dl mZ d dlZddlmZmZ dd ZG dd dejZe	ej
ee eej
d	 dS )
    )annotationsN   )ImageTiffImagePluginc                 C  s   | d d t jkS )N   )olefileMAGIC)prefix r
   T/var/www/html/StaffProfile/newvenv/lib/python3.8/site-packages/PIL/MicImagePlugin.py_accept   s    r   c                      sL   e Zd ZdZdZdZdd Zdd Zdd	 Z fd
dZ	 fddZ
  ZS )MicImageFileZMICzMicrosoft Image ComposerFc              
   C  s   zt | j| _W n0 tk
rB } zd}t||W 5 d }~X Y nX dd | j D | _| jsld}t|d | _t	| j| _
| j
dk| _| j| _| d d S )Nz!not an MIC file; invalid OLE filec                 S  s<   g | ]4}|d d r|d dd dkr|d  dkr|qS )r   Nr   z.ACIr   r
   ).0pathr
   r
   r   
<listcomp>6   s
     z&MicImageFile._open.<locals>.<listcomp>z!not an MIC file; no image entriesr   r   )r   Z	OleFileIOfpoleOSErrorSyntaxErrorlistdirimagesframelenZ	_n_framesZis_animated_MicImageFile__fpseek)selfemsgr
   r
   r   _open)   s     zMicImageFile._openc              
   C  sr   |  |sd S z| j| }W n0 tk
rL } zd}t||W 5 d }~X Y nX | j|| _tj	|  || _
d S )Nzno such frame)Z_seek_checkr   
IndexErrorEOFErrorr   Z
openstreamr   r   TiffImageFiler   r   )r   r   filenamer   r   r
   r
   r   r   I   s    
zMicImageFile.seekc                 C  s   | j S N)r   r   r
   r
   r   tellX   s    zMicImageFile.tellc                   s"   | j   | j  t   d S r$   )r   closer   superr%   	__class__r
   r   r'   [   s    

zMicImageFile.closec                   s"   | j   | j  t   d S r$   )r   r'   r   r(   __exit__)r   argsr)   r
   r   r+   `   s    

zMicImageFile.__exit__)__name__
__module____qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingr   r   r&   r'   r+   __classcell__r
   r
   r)   r   r   $   s    r   z.mic)
__future__r   r    r   r   r   r"   r   Zregister_openr0   Zregister_extensionr
   r
   r
   r   <module>   s   E