Ë
    íÍ: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y)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                 ó6   — | t        t        d«      | z   «      z   S )Nú,)r   r   )Úelems    ús/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/matplotlib/_fontconfig_pattern.pyÚcomma_separatedz0_make_fontconfig_parser.<locals>.comma_separated9   s   € Ø”j¤¨#£°Ñ!5Ó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ô �cœ,˜ v¬l¨^¸4Ð@ÓA€FÜÐ.Ó/€DÜ�Ó€DÜ�Sœ˜ V¬K¨=¸Ð=Ó>€EÜ�$œ #›Ñ&©¸Ó)?Ñ?Ä6Ì*ÓCUÑUÓV€DäÐ(‘ Ó(¨Ó4Ó5Ü
�3Ð.™¨Ó.¨wÓ7Ñ7Ó
8ñ	9ä
�S™4 Ó.Ñ.Ó
/ñ	0ô ‹+ñ	ðr0   c                 óæ  — t        «       }	 |j                  | «      }|j                  «        i }d|v rg t        t        |d   «      ¢|d<   d|v r
g |d   ¢|d<   |j                  dg «      D ]O  }t        |«      d	k(  rt        |d      }|^}}|j                  |g «      j                  t        t        |«      «       ŒQ |S # t        $ r(}t        dt        j                  |d«      z   «      d‚d}~ww xY w)
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   s  € ô %Ó&€FðJØ×#Ñ# GÓ,ˆð ×ÑÔØ€EØ�UÑØEœCÔ 0°%¸
Ñ2CÓDÐEˆˆh‰Ø�%ÑØ)˜% ™.Ð)ˆˆf‰Ø—	‘	˜,¨Ó+ò @ˆÜˆt‹9˜Š>Ü˜d 1™gÑ&ˆDØˆˆˆAØ×Ñ˜˜BÓ×&Ñ&¤s¬?¸AÓ'>Õ?ð	@ð
 €Løô ò Jä˜¤× 6Ñ 6°s¸AÓ >Ñ>Ó?ÀTÐIûðJús   ŒB? Â?	C0Ã#C+Ã+C0c           
      óÐ   — dD �cg c]  }| t        | d|› �«      «       f‘Œ }}dj                  d„ | j                  «       D «       «      dj                  d„ |D «       «      z   S c c}w )z;Convert a `.FontProperties` to a fontconfig pattern string.)ÚstyleÚvariantr   ÚstretchÚfiler:   Úget_r,   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w)N)Ú_family_escape)Ú.0Úfs     r.   ú	<genexpr>z.generate_fontconfig_pattern.<locals>.<genexpr>m   s   è ø€ Ò?¨1”^ A×&Ñ?ùs   ‚r   c           	   3   óZ   K  — | ]#  \  }}|�d|› dt        t        |«      «      › �–— Œ% y ­w)Nr5   r1   )Ú_value_escapeÚstr)r^   rS   rT   s      r.   r`   z.generate_fontconfig_pattern.<locals>.<genexpr>n   s7   è ø€ ò 8Ù˜!˜Q¨¨ð ˜!˜˜Aœm¬C°«FÓ3Ð4Ô5ñ 8ùs   ‚)+)ÚgetattrÚjoinÚ
get_family)ÚdrS   Úkvss      r.   Úgenerate_fontconfig_patternri   g   s€   € ð NöOØð Ð%Œw�q˜D  ˜*Ó%Ó'Ò(ð O€Cð Oð �H‰HÑ?°·±³Ô?Ó?Ø�g‰gñ 8Ø"%ô8ó 8ñ8ð 9ùò	Os   …A#)Ú__doc__Ú	functoolsr   r   r   ÚreÚ	pyparsingr   r   r   r	   r
   r   r   r   r6   ÚcompileÚsubrH   r]   r7   rM   rb   r8   r>   rU   ri   © r0   r.   ú<module>rq      så  ðñ÷ 0Ñ /Û 	÷U÷ Uó Uð €Ù˜:˜2Ÿ:™: m°lÑ&BÓC×GÑGÈÓLÐ Ù˜˜Ÿ™ K°,Ñ$>Ó?×CÑCÀUÓK€Ø€Ù˜*˜"Ÿ*™* ]°[Ñ%@ÓA×EÑEÀrÓJ€Ù˜
˜Ÿ
™
 ;°Ñ#<Ó=×AÑAÀ5ÓI€ðØ
Ð)ðàÐ)ðð Ð)ðð Ð)ð	ð
 Ð(ðð Ð+ðð Ð*ðð Ð*ðð Ð,ðð Ð,ðð Ð(ðð Ð.ðð Ð)ðð Ð)ðð Ð)ðð  Ð)ð!ð" Ð*ð#ð$ 3Ø2Ø,Ø1Ø+Ø1Ø1ò1€
ð8 ñó ðð* ñó ðó29r0   