
    !i	                        d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	  ej                  d       G d	 d
             Zd Zej                  ddZy)z"
Low-level text helper utilities.
    )annotationsN   )_api)FT2FontKerning	LoadFlagsT)frozenc                  @    e Zd ZU ded<   ded<   ded<   ded<   ded	<   y
)
LayoutItemr   	ft_objectstrcharint	glyph_idxfloatx	prev_kernN)__name__
__module____qualname____annotations__     K/var/www/html/venv/lib/python3.12/site-packages/matplotlib/_text_helpers.pyr   r      s    
INHr   r   c           	     N   t        j                  d|  dt        |       j                  dd      j	                  d       d| d       d| cxk  rdk  rn nd	nd
| cxk  rdk  rn ndnd| cxk  rdk  rn ndnd| cxk  rdk  rn ndnd| cxk  rdk  rn ndnqd| cxk  rdk  rn ndnad| cxk  rdk  rn ndnQd| cxk  rdk  rn ndnAd| cxk  rd k  rn nd!n1d"| cxk  rd#k  rn nd$n!d%| cxk  rd&k  rn nd'nd(| cxk  rd)k  rn nd*nd }|rt        j                  d+| d,       y y )-NzGlyph z (asciinamereplacez) missing from font(s) .i  i  Hebrewi   i  Arabici 	  i	  
Devanagarii	  i	  Bengalii 
  i
  Gurmukhii
  i
  Gujaratii   i  Oriyai  i  Tamili   i  Telugui  i  Kannadai   i  	Malayalami  i  Sinhalaz&Matplotlib currently does not support z
 natively.)r   warn_externalchrencodedecode)	codepoint	fontnamesblocks      r   warn_on_missing_glyphr2      s3   
 	N!!'=9@@IJ K  ){!	-.
  966X966X#y:F:\ I77Y!Y8&8Z!Y8&8Z)5v5W)5v5W966X I77Y"i969[ I77Y 
 4UG:F	H r   )	kern_modec             #  j  K   d}d}|j                  |       }|}| D ]  }|j                  ||      }|j                  t        |            }||j	                  |||      dz  nd}	||	z  }|j                  |t        j                        }
t        |||||	       ||
j                  dz  z  }|} yw)a  
    Render *string* with *font*.

    For each character in *string*, yield a LayoutItem instance. When such an instance
    is yielded, the font's glyph is set to the corresponding character.

    Parameters
    ----------
    string : str
        The string to be rendered.
    font : FT2Font
        The font.
    kern_mode : Kerning
        A FreeType kerning mode.

    Yields
    ------
    LayoutItem
    r   N@   g        )flagsi   )
_get_fontmapgetget_char_indexordget_kerning
load_glyphr   
NO_HINTINGr   linearHoriAdvance)stringfontr3   r   prev_glyph_idxchar_to_font	base_fontr   r   kernglyphs              r   layoutrF   .   s     ( 	
AN$$V,LI #i0''D	2	 ) !!.)YG"L/1 	 	
T		1E1EFtY488	U$$u,,"#s   B1B3)__doc__
__future__r   dataclasses r   ft2fontr   r   r   	dataclassr   r2   DEFAULTrF   r   r   r   <module>rN      sU    #   0 0 d#  $H0 '.oo $#r   