§
    ôŽ’j  ã            	       ó  — d Z ddlmZ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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.d/d0d1œ¥Zed2„ ¦   «         Zed3„ ¦   «         Zd4„ ZdS )5zŸ
A module for parsing and generating `fontconfig patterns`_.

.. _fontconfig patterns:
   https://www.freedesktop.org/software/fontconfig/fontconfig-user.html
é    )ÚcacheÚ	lru_cacheÚpartialN)ÚGroupÚOptionalÚParseExceptionÚRegexÚ	StringEndÚSuppressÚ
ZeroOrMoreÚone_ofz\\\-:,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   t          t          ¦  «        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    úLC:\Projects\DSCons\.venv\Lib\site-packages\matplotlib\_fontconfig_pattern.pyÚcomma_separatedz0_make_fontconfig_parser.<locals>.comma_separated9   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   Ú
_CONSTANTSr   r   r
   )r/   ÚfamilyÚsizeÚnameÚvalueÚprops         r.   Ú_make_fontconfig_parserr>   7   s   € ð7ð 7ð 7õ Ð@�,Ð@Ð@­lÐ@Ð@Ð@ÑAÔA€FÝÐ.Ñ/Ô/€DÝ�ÑÔ€DÝÐ=�Ð=Ð=­KÐ=Ð=Ð=Ñ>Ô>€EÝ�$� #™œÑ&¨¨¸Ñ)?Ô)?Ñ?Å6Í*ÑCUÔCUÑUÑVÔV€DåÐ(�� Ñ(Ô(¨Ñ4Ô4Ñ5Ô5Ý
�3Ð.˜˜¨Ñ.Ô.¨wÑ7Ô7Ñ7Ñ
8Ô
8ñ	9å
�S˜4˜4 Ñ.Ô.Ñ.Ñ
/Ô
/ñ	0õ ‰+Œ+ñ	ðr0   c                 óT  — 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 ]h}t          |¦  «        d	k    rt          |d                  }|^}}|                     |g ¦  «                             t          t          |¦  «        ¦  «         Œi|S )
zs
    Parse a fontconfig *pattern* into a dict that can initialize a
    `.font_manager.FontProperties` object.
    ú
r   Nr2   r9   r4   r:   Ú
propertiesé   )r>   Úparse_stringr   Ú
ValueErrorÚexplainÚreset_cacheÚmapÚ_family_unescapeÚgetÚlenr8   Ú
setdefaultÚextendÚ_value_unescape)ÚpatternÚparserÚparseÚerrÚpropsr=   ÚkÚvs           r.   Úparse_fontconfig_patternrU   M   sI  € õ %Ñ&Ô&€FðJØ×#Ò# GÑ,Ô,ˆˆøÝð Jð Jð Jå˜¥Ô 6°s¸AÑ >Ô >Ñ>Ñ?Ô?ÀTÐIøøøøðJøøøð ×ÒÑÔÐØ€EØ�UÐÐØE�CÕ 0°%¸
Ô2CÑDÔDÐEˆˆh‰Ø�%ÐÐØ)˜% œ.Ð)ˆˆf‰Ø—	’	˜,¨Ñ+Ô+ð @ð @ˆÝˆt‰9Œ9˜Š>ˆ>Ý˜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)Ú.0rS   Úds     €r.   ú
<listcomp>z/generate_fontconfig_pattern.<locals>.<listcomp>i   sM   ø€ ð Oð Oð OØð Ð%�w�q˜* ˜*˜*Ñ%Ô%Ñ'Ô'Ð(ð Oð Oð Or0   )ÚstyleÚvariantr   ÚstretchÚfiler:   r,   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S )N)Ú_family_escape)rZ   Úfs     r.   ú	<genexpr>z.generate_fontconfig_pattern.<locals>.<genexpr>m   s*   è è € Ð?Ð?¨1•^ AÑ&Ô&Ð?Ð?Ð?Ð?Ð?Ð?r0   r   c           	   3   ód   K  — | ]+\  }}|®d|› dt          t          |¦  «        ¦  «        › �V — Œ,d S )Nr5   r1   )Ú_value_escapeÚstr)rZ   rS   rT   s      r.   rd   z.generate_fontconfig_pattern.<locals>.<genexpr>n   sQ   è è € ð 8ð 8Ù˜!˜Q¨¨ð 6˜!Ð5Ð5�m­C°©F¬FÑ3Ô3Ð5Ð5Ø)6¨¨¨ð8ð 8r0   )ÚjoinÚ
get_family)r[   Úkvss   ` r.   Úgenerate_fontconfig_patternrk   g   s‘   ø€ ðOð Oð Oð OØMðOñ Oô O€Cð �HŠHÐ?Ð?°·²±´Ð?Ñ?Ô?Ñ?Ô?Ø�gŠgð 8ð 8Ø"%ð8ñ 8ô 8ñ 8ô 8ñ8ð 9r0   )Ú__doc__Ú	functoolsr   r   r   ÚreÚ	pyparsingr   r   r   r	   r
   r   r   r   r6   ÚcompileÚsubrH   rb   r7   rM   rf   r8   r>   rU   rk   © r0   r.   ú<module>rs      s¦  ððð ð 0Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø 	€	€	€	ðUð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð €Ø�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 ðð ñ „ðð* ðð ñ „ðð29ð 9ð 9ð 9ð 9r0   