U
    Ú²gÙ  ã                   @  s¢   d dl mZ d dlmZ ddlmZmZ dadddœd	d
„Zdddœdd„Z	G dd„ dej
ƒZdddddœdd„Ze ejee	¡ e eje¡ e ejd¡ dS )é    )Úannotations)ÚIOé   )ÚImageÚ	ImageFileNúImageFile.StubHandler | NoneÚNone)ÚhandlerÚreturnc                 C  s   | a dS )z_
    Install application-specific BUFR image handler.

    :param handler: Handler object.
    N©Ú_handler)r	   © r   ú;/tmp/pip-unpacked-wheel-xela2va7/PIL/BufrStubImagePlugin.pyÚregister_handler   s    r   ÚbytesÚbool)Úprefixr
   c                 C  s    | d d… dkp| d d… dkS )Né   s   BUFRs   ZCZCr   )r   r   r   r   Ú_accept"   s    r   c                   @  s0   e Zd ZdZdZddœdd„Zddœdd„Zd	S )
ÚBufrStubImageFileZBUFRr   )r
   c                 C  sX   | j  ¡ }t| j  d¡ƒs&d}t|ƒ‚| j  |¡ d| _d| _|  ¡ }|rT| 	| ¡ d S )Nr   zNot a BUFR fileÚF)r   r   )
ÚfpÚtellr   ÚreadÚSyntaxErrorÚseekÚ_modeÚ_sizeÚ_loadÚopen)ÚselfÚoffsetÚmsgÚloaderr   r   r   Ú_open*   s    
zBufrStubImageFile._openr   c                 C  s   t S )Nr   )r    r   r   r   r   ;   s    zBufrStubImageFile._loadN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionr$   r   r   r   r   r   r   &   s   r   zImage.Imagez	IO[bytes]zstr | bytes)Úimr   Úfilenamer
   c                 C  s0   t d kstt dƒsd}t|ƒ‚t  | ||¡ d S )NÚsavezBUFR save handler not installed)r   ÚhasattrÚOSErrorr,   )r*   r   r+   r"   r   r   r   Ú_save?   s    r/   z.bufr)Ú
__future__r   Útypingr   Ú r   r   r   r   r   ZStubImageFiler   r/   Zregister_openr(   Zregister_saveZregister_extensionr   r   r   r   Ú<module>   s   
