§
    †ÛgŠ  ã            	       ó  — d Z ddlmZmZ ddlZddlmZmZmZm	Z	m
Z
mZmZ ddlmZ dZ e ej        dez  ¦  «        j        d¦  «        Z e ej        d	ez  ¦  «        j        d
¦  «        ZdZ e ej        dez  ¦  «        j        d¦  «        Z e ej        d	ez  ¦  «        j        d
¦  «        Zi dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“d)d*“d+d,d-d.d/d0d1d2œ¥Zed3„ ¦   «         Zed4„ ¦   «         Zd5„ ZdS )6zŸ
A module for parsing and generating `fontconfig patterns`_.

.. _fontconfig patterns:
   https://www.freedesktop.org/software/fontconfig/fontconfig-user.html
é    )Ú	lru_cacheÚpartialN)ÚGroupÚOptionalÚParseExceptionÚRegexÚ	StringEndÚSuppressÚ
ZeroOrMore)Ú_apiz\\\-:,z
\\(?=[%s])Ú z(?=[%s])z\\z\\=_:,Úthin)ÚweightÚlightÚ
extralightÚ
ultralightr   Úbook)r   r   Úregular)r   r   Únormal)r   r   Úmedium)r   r   Údemibold)r   r   Úsemibold)r   r   Úbold)r   r   Ú	extrabold)r   z
extra boldÚblack)r   r   Úheavy)r   r   Úroman)Úslantr   Úitalic)r   r   Úoblique)r   r    )Úwidthzultra-condensed)r!   zextra-condensed)r!   Ú	condensed)r!   zsemi-condensed)r!   Úexpanded)r!   zextra-expanded)r!   zultra-expanded)ÚultracondensedÚextracondensedr"   Úsemicondensedr#   ÚextraexpandedÚultraexpandedc                  ó  — d„ } t          dt          ›dt          ›d�¦  «        }t          d¦  «        }t          d¦  «        }t          dt          ›dt          ›d�¦  «        }t          |t	          d¦  «        z    | |¦  «        z   |z  ¦  «        }t            | |¦  «        d¦  «        ¦  «        t          d	  | |¦  «        d
¦  «        z   ¦  «        z   t          d |d¦  «        z   ¦  «        z   t          ¦   «         z   S )Nc                 óF   — | t          t          d¦  «        | z   ¦  «        z   S )Nú,)r   r
   )Úelems    úT/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/_fontconfig_pattern.pyÚcomma_separatedz0_make_fontconfig_parser.<locals>.comma_separated;   s    € Ø•j¥¨#¡¤°Ñ!5Ñ6Ô6Ñ6Ð6ó    z([^z]|(\\[z]))*z([0-9]+\.?[0-9]*|\.[0-9]+)z[a-z]+ú=Úfamiliesú-Úsizesú:zproperties*)r   Ú_family_puncÚ_value_puncr   r
   r   r   r	   )r.   ÚfamilyÚsizeÚnameÚvalueÚprops         r-   Ú_make_fontconfig_parserr<   9   s  € ð7ð 7ð 7õ ˆU­<¨<¨<½¸¸ÐFÑGÔG€FÝÐ.Ñ/Ô/€DÝ�ÑÔ€DÝˆE­+¨+¨+µ{°{°{ÐCÑDÔD€Eå�$� #™œÑ&¨¨¸Ñ)?Ô)?Ñ?À4ÑGÑHÔH€DåÐ(�� Ñ(Ô(¨Ñ4Ô4Ñ5Ô5Ý
�3Ð.˜˜¨Ñ.Ô.¨wÑ7Ô7Ñ7Ñ
8Ô
8ñ	9å
�S˜4˜4 Ñ.Ô.Ñ.Ñ
/Ô
/ñ	0õ ‰+Œ+ñ	ðr/   c                 ó´  — t          ¦   «         }	 |                     | ¦  «        }n8# t          $ r+}t          dt          j        |d¦  «        z   ¦  «        d‚d}~ww xY w|                     ¦   «          i }d|v r g t          t          |d         ¦  «        ¢|d<   d|v rg |d         ¢|d<   |                     dg ¦  «        D ]˜}t          |¦  «        d	k    rC|d         t          vr!t          j        d
d|d         ›d�¬¦  «         ŒEt          |d                  }|^}}|                     |g ¦  «                             t          t          |¦  «        ¦  «         Œ™|S )zs
    Parse a fontconfig *pattern* into a dict that can initialize a
    `.font_manager.FontProperties` object.
    ú
r   Nr1   r7   r3   r8   Ú
propertiesé   z3.7zSupport for unknown constants (z@) is deprecated since %(since)s and will be removed %(removal)s.)Úmessage)r<   ÚparseStringr   Ú
ValueErrorÚexplainÚ
resetCacheÚmapÚ_family_unescapeÚgetÚlenÚ
_CONSTANTSr   Úwarn_deprecatedÚ
setdefaultÚextendÚ_value_unescape)ÚpatternÚparserÚparseÚerrÚpropsr;   ÚkÚvs           r-   Úparse_fontconfig_patternrV   P   s•  € õ %Ñ&Ô&€FðJØ×"Ò" 7Ñ+Ô+ˆˆøÝð Jð Jð Jå˜¥Ô 6°s¸AÑ >Ô >Ñ>Ñ?Ô?ÀTÐIøøøøðJøøøð ×ÒÑÔÐØ€EØ�UÐÐØE�CÕ 0°%¸
Ô2CÑDÔDÐEˆˆh‰Ø�%ÐÐØ)˜% œ.Ð)ˆˆf‰Ø—	’	˜,¨Ñ+Ô+ð 
@ð 
@ˆÝˆt‰9Œ9˜Š>ˆ>Ø�AŒw�jÐ(Ð(ÝÔ$Øð $4Ø˜Qœð$4ð $4ð $4ð5ñ 5ô 5ð 5ð Ý˜d 1œgÔ&ˆDØˆˆˆAØ×Ò˜˜BÑÔ×&Ò&¥s­?¸AÑ'>Ô'>Ñ?Ô?Ð?Ð?Ø€Ls   �& ¦
A°&AÁAc                 óÂ   ‡ — ˆ fd„dD ¦   «         }d                      d„ ‰                      ¦   «         D ¦   «         ¦  «        d                      d„ |D ¦   «         ¦  «        z   S )z;Convert a `.FontProperties` to a fontconfig pattern string.c           	      óJ   •— g | ]}| t          ‰d |› �¦  «        ¦   «         f‘Œ S )Úget_)Úgetattr)Ú.0rT   Úds     €r-   ú
<listcomp>z/generate_fontconfig_pattern.<locals>.<listcomp>r   sM   ø€ ð Oð Oð OØð Ð%�w�q˜* ˜*˜*Ñ%Ô%Ñ'Ô'Ð(ð Oð Oð Or/   )ÚstyleÚvariantr   ÚstretchÚfiler8   r+   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S )N)Ú_family_escape)r[   Úfs     r-   ú	<genexpr>z.generate_fontconfig_pattern.<locals>.<genexpr>v   s*   è è € Ð?Ð?¨1•^ AÑ&Ô&Ð?Ð?Ð?Ð?Ð?Ð?r/   r   c           	   3   ód   K  — | ]+\  }}|®d|› dt          t          |¦  «        ¦  «        › �V — Œ,d S )Nr4   r0   )Ú_value_escapeÚstr)r[   rT   rU   s      r-   re   z.generate_fontconfig_pattern.<locals>.<genexpr>w   sQ   è è € ð 8ð 8Ù˜!˜Q¨¨ð 6˜!Ð5Ð5�m­C°©F¬FÑ3Ô3Ð5Ð5Ø)6¨¨¨ð8ð 8r/   )ÚjoinÚ
get_family)r\   Úkvss   ` r-   Úgenerate_fontconfig_patternrl   p   s‘   ø€ ðOð Oð Oð OØMðOñ Oô O€Cð �HŠHÐ?Ð?°·²±´Ð?Ñ?Ô?Ñ?Ô?Ø�gŠgð 8ð 8Ø"%ð8ñ 8ô 8ñ 8ô 8ñ8ð 9r/   )Ú__doc__Ú	functoolsr   r   ÚreÚ	pyparsingr   r   r   r   r	   r
   r   Ú
matplotlibr   r5   ÚcompileÚsubrG   rc   r6   rN   rg   rJ   r<   rV   rl   © r/   r-   ú<module>ru      s¨  ððð ð )Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø 	€	€	€	ðMð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Ð Ð Ð Ð Ð ð €Ø�7˜:˜2œ: m°lÑ&BÑCÔCÔGÈÑLÔLÐ Ø�˜˜œ K°,Ñ$>Ñ?Ô?ÔCÀUÑKÔK€Ø€Ø�'˜*˜"œ* ]°[Ñ%@ÑAÔAÔEÀrÑJÔJ€Ø�˜
˜œ
 ;°Ñ#<Ñ=Ô=ÔAÀ5ÑIÔI€ðØ
Ð)ðàÐ)ðð Ð)ðð Ð)ð	ð
 Ð(ðð Ð+ðð Ð*ðð Ð*ðð Ð,ðð Ð,ðð Ð(ðð Ð.ðð Ð)ðð Ð)ðð Ð)ðð  Ð)ð!ð" Ð*ð#ð$ 3Ø2Ø,Ø1Ø+Ø1Ø1ð1ð ð €
ð8 ðð ñ „ðð, ðð ñ „ðð>9ð 9ð 9ð 9ð 9r/   