U
    ڲgY
                     @  s   d dl mZ d dlZd dlmZ ddlmZmZ e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 eejd dS )    )annotationsN)IO   )Image	ImageFiles   \s*#define[ \t]+.*_width[ \t]+(?P<width>[0-9]+)[\r\n]+#define[ 	]+.*_height[ 	]+(?P<height>[0-9]+)[
]+(?P<hotspot>#define[ 	]+[^_]*_x_hot[ 	]+(?P<xhot>[0-9]+)[
]+#define[ 	]+[^_]*_y_hot[ 	]+(?P<yhot>[0-9]+)[
]+)?[\000-\377]*_bits\[]bytesbool)prefixreturnc                 C  s   |   d d dkS )N   s   #define)lstrip)r	    r   6/tmp/pip-unpacked-wheel-xela2va7/PIL/XbmImagePlugin.py_accept(   s    r   c                   @  s"   e Zd ZdZdZddddZdS )XbmImageFileZXBMz
X11 BitmapNone)r
   c                 C  s   | j d k	stt| j d}|s0d}t|t|d}t|d}|drxt|dt|df| jd< d| _	||f| _
d	d
| j | d fg| _d S )Ni   znot a XBM filewidthheighthotspotZxhotZyhot1xbmr   r   )fpAssertionErrorxbm_headmatchreadSyntaxErrorintgroupinfo_mode_sizesizeendZtile)selfmmsgZxsizeZysizer   r   r   _open4   s    
"
zXbmImageFile._openN)__name__
__module____qualname__formatformat_descriptionr(   r   r   r   r   r   0   s   r   zImage.Imagez	IO[bytes]zstr | bytesr   )imr   filenamer
   c                 C  s   | j dkr d| j  d}t||d| jd  dd |d| jd	  dd | jd
}|r|d|d  dd |d|d	  dd |d t| |dd| j dd fg |d d S )Nr   zcannot write mode z as XBMz#define im_width r   
asciiz#define im_height r   r   z#define im_x_hot z#define im_y_hot s   static char im_bits[] = {
r   r   s   };
)	modeOSErrorwriter#   encodeZencoderinfogetr   _save)r.   r   r/   r'   r   r   r   r   r7   I   s    

r7   z.xbmz	image/xbm)
__future__r   retypingr    r   r   compiler   r   r   r7   Zregister_openr,   Zregister_saveZregister_extensionZregister_mimer   r   r   r   <module>   s   