U
    Evf7
  ã                   @  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
   ú6/tmp/pip-unpacked-wheel-ciywl2yd/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