U
    M»{j•  ã                   @  sp   d Z ddlmZ ddlmZ ddlmZmZ dddd	d
ddœZddddœZ	dddœdd„Z
G dd„ dejƒZdS )z*
Parse X Bitmap Distribution Format (BDF)
é    )Úannotations)ÚBinaryIOé   )ÚFontFileÚImageZRomanZItalicZObliquezReverse ItaliczReverse ObliqueÚOther)ÚRÚIÚOZRIZROZOTZProportionalZ
MonospacedZCell)ÚPÚMÚCr   zqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | None)ÚfÚreturnc                 C  s~  |   ¡ }|sd S |d d… dkr q$q |dd …  ¡  d¡}i }|   ¡ }|r�|d d… dkr\q�| d¡}||d d…  d¡||d |…  d¡< q>tƒ }|   ¡ }|rÆ|d d	… d
kr´qÆ||d d… 7 }q–dd„ |d  ¡ D ƒ\}}}}	dd„ |d  ¡ D ƒ\}
}|
|f||	 | || |	 fdd||ff}zt d||f|dd¡}W n& tk
�rh   t 	d||f¡}Y nX |t
|d ƒ||fS )Né	   s	   STARTCHARÚasciié   s   BITMAPó    r   éÿÿÿÿé   s   ENDCHARc                 s  s   | ]}t |ƒV  qd S ©N©Úint©Ú.0Úp© r   úN/var/www/html/bwave/python/venv/lib/python3.8/site-packages/PIL/BdfFontFile.pyÚ	<genexpr>R   s     zbdf_char.<locals>.<genexpr>ZBBXc                 s  s   | ]}t |ƒV  qd S r   r   r   r   r   r   r   V   s     ZDWIDTHr   Ú1ÚhexÚENCODING)ÚreadlineÚstripÚdecodeÚfindÚ	bytearrayÚsplitr   Ú	frombytesÚ
ValueErrorÚnewr   )r   ÚsÚidÚpropsÚiZbitmapÚwidthÚheightZx_dispZy_dispZdwxZdwyZbboxÚimr   r   r   Úbdf_char)   s8    
*
ýr2   c                      s(   e Zd ZdZdddœ‡ fdd„Z‡  ZS )ÚBdfFontFilez(Font file plugin for the X11 BDF format.r   ÚNone)Úfpr   c                   s  t ƒ  ¡  | ¡ }|d d… dkr.d}t|ƒ‚i }g }| ¡ }|rÂ|d d… dkrTqÂ| d¡}||d d…  d¡||d |…  d¡< |d |… d	kr6| d
¡dk r6| ||d d…  d¡¡ q6t|ƒ}|sÒ�q|\}}	\}
}}}d|	  k�r t| j	ƒk rÂn qÂ|
|||f| j	|	< qÂd S )Né   s   STARTFONT 2.1znot a valid BDF files   ENDPROPERTIESr   r   r   r   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )
ÚsuperÚ__init__r"   ÚSyntaxErrorr%   r$   Úappendr2   ÚlenZglyph)Úselfr5   r+   Úmsgr-   Úcommentsr.   Úcr,   ÚchZxyÚdstÚsrcr1   ©Ú	__class__r   r   r8   j   s*    

( zBdfFontFile.__init__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r8   Ú__classcell__r   r   rC   r   r3   g   s   r3   N)rH   Ú
__future__r   Útypingr   Ú r   r   Z	bdf_slantZbdf_spacingr2   r3   r   r   r   r   Ú<module>   s   ú	>