o
    õ·iO  ã                   @  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   Úreturnúqtuple[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qq|dd …  ¡  d¡}i }	 |   ¡ }|r)| d¡r*qD| d¡}||d d…  d¡||d |…  d¡< qtƒ }	 |   ¡ }|rS| d	¡rTq]||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   úUC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\PIL/BdfFontFile.pyÚ	<genexpr>G   ó   € zbdf_char.<locals>.<genexpr>ZBBXc                 s  r   r   r   r   r   r   r   r   K   r   ZDWIDTHr   Ú1ÚhexÚENCODING)ÚreadlineÚ
startswithÚstripÚdecodeÚfindÚ	bytearrayÚsplitr   Z	frombytesÚ
ValueErrorÚnewr   )r   ÚsÚidÚpropsÚiZbitmapÚwidthÚheightZx_dispZy_dispZdwxZdwyZbboxÚimr   r   r   Úbdf_char   sF   
û
(ûü

ýþr,   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%q\| 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 r†n 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   Úappendr,   ÚlenZglyph)Úselfr.   r%   Úmsgr'   Úcommentsr(   Úcr&   ÚchZxyÚdstÚsrcr+   ©Ú	__class__r   r   r1   _   s2   


(ø
úzBdfFontFile.__init__)r.   r   r   r/   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1   Ú__classcell__r   r   r<   r   r-   \   s    r-   N)r   r   r   r	   )
rA   Ú
__future__r   Útypingr   Ú r   r   r,   r-   r   r   r   r   Ú<module>   s   
>