o
    h                     @   sP   d Z ddlmZmZ ddddddd	Zd
dddZdd ZG dd dejZdS )z*
Parse X Bitmap Distribution Format (BDF)
   )FontFileImageZRomanZItalicZObliquezReverse ItaliczReverse ObliqueOther)RIOZRIZROZOTZProportionalZ
MonospacedZCell)PMCc                 C   s  	 |   }|s	d S |d d dkrnq|dd   d}i }	 |   }|r/|d d dkr0n|d}||d d	 d||d | d< q!g }	 |   }|r[|d d
 dkr\n
||d d	  qMd|}d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 )NT	   s	   STARTCHARascii   s   BITMAP    r      s   ENDCHAR    c                 S      g | ]}t |qS  int.0pr   r   W/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/PIL/BdfFontFile.py
<listcomp>C       zbdf_char.<locals>.<listcomp>ZBBXc                 S   r   r   r   r   r   r   r   r   D   r   ZDWIDTH    1hexENCODING)readlinestripdecodefindappendjoinsplitr   	frombytes
ValueErrornewr   )fsidpropsiZbitmapxyldZdxZdyZbboximr   r   r   bdf_char'   sB   
(
*r4   c                       s    e Zd ZdZ fddZ  ZS )BdfFontFilez(Font file plugin for the X11 BDF format.c                    s  t    | }|d d dkrtdi }g }	 | }|r(|d d dkr)n7|d}||d d d	||d | d	< |d | d
v r_|ddk r_|||d d d	 q	 t|}|sid S |\}}\}	}
}}d|  krt| j	k rn n	|	|
||f| j	|< qa)N   s   STARTFONT 2.1znot a valid BDF fileTs   ENDPROPERTIESr   r   r   r   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )
super__init__r    SyntaxErrorr#   r"   r$   r4   lenZglyph)selffpr+   r-   commentsr.   cr,   chZxydstsrcr3   	__class__r   r   r8   T   s0   

(
zBdfFontFile.__init__)__name__
__module____qualname____doc__r8   __classcell__r   r   rB   r   r5   Q   s    r5   N)rG    r   r   Z	bdf_slantZbdf_spacingr4   r5   r   r   r   r   <module>   s   	*