o
    'j6h                     @  sL   d Z ddlmZ ddlmZ ddlmZmZ dd
dZG dd dejZ	dS )z*
Parse X Bitmap Distribution Format (BDF)
    )annotations)BinaryIO   )FontFileImagefr   returnqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | Nonec                 C  sn  	 |   }|s	d S |drnq|dd   d}i }	 |   }|r)|dr*n|d}||d d d||d | d< qt }	 |   }|rS|d	rTn	||d d 7 }qHd
d |d  D \}}}}	dd |d  D \}
}|
|f||	 | || |	 fdd||ff}ztd||f|dd}W n t	y   t
d||f}Y nw |t|d ||fS )NTs	   STARTCHAR	   asciis   BITMAP    r   s   ENDCHARc                 s      | ]}t |V  qd S Nint.0p r   ^/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/PIL/BdfFontFile.py	<genexpr>G       zbdf_char.<locals>.<genexpr>BBXc                 s  r   r   r   r   r   r   r   r   K   r   DWIDTHr   1hexENCODING)readline
startswithstripdecodefind	bytearraysplitr   	frombytes
ValueErrornewr   )r   sidpropsibitmapwidthheightx_dispy_dispdwxdwybboximr   r   r   bdf_char   sF   

(

r5   c                      s"   e Zd ZdZd fddZ  ZS )	BdfFontFilez(Font file plugin for the X11 BDF format.fpr   r   Nonec                   s  t    | }|dsd}t|i }g }	 | }|r$|dr%n7|d}||d d d||d | d< |d | d	v r[|d
dk r[|||d d d q	 t|}|sed S |\}}	\}
}}}d|	  kr{t	| j
k rn n	|
|||f| j
|	< q])Ns   STARTFONT 2.1znot a valid BDF fileTs   ENDPROPERTIESr   r   r   r   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )super__init__r   r   SyntaxErrorr"   r!   appendr5   lenglyph)selfr7   r(   msgr*   commentsr+   cr)   chxydstsrcr4   	__class__r   r   r:   _   s2   


(
zBdfFontFile.__init__)r7   r   r   r8   )__name__
__module____qualname____doc__r:   __classcell__r   r   rG   r   r6   \   s    r6   N)r   r   r   r	   )
rL   
__future__r   typingr    r   r   r5   r6   r   r   r   r   <module>   s   
>