+
    i                     R   R t ^ RIHtHt ^ RIt^ RIHtHtHtH	t	H
t
HtHtHt Rt]! ]P                  ! R],          4      P                   R4      t]! ]P                  ! R],          4      P                   R4      tR	t]! ]P                  ! R],          4      P                   R4      t]! ]P                  ! R],          4      P                   R4      t/ R
R%bRR%bRR%bRR%bRR&bRR'bRR(bRR)bRR*bRR+bRR,bRR-bRR.bRR/bRR0bRR1bRR2bRR3RR4RR5RR6RR7R R8R!R9/Ct]R" 4       t]R# 4       tR$ tR# ):z
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one_ofz\\\-:,z
\\(?=[%s]) z(?=[%s])z\\z\\=_:,thinlight
extralight
ultralightbookregularnormalmediumdemiboldsemiboldbold	extraboldblackheavyromanitalicobliqueultracondensedextracondensed	condensedsemicondensedexpandedextraexpandedultraexpandedc                     R  p \        R\         R\         R24      p\        R4      p\        R4      p\        R\         R\         R24      p\        V\	        R4      ,           V ! V4      ,           \        \        4      ,          4      p\        V ! V4      ! R4      4      \        RV ! V4      ! R	4      ,           4      ,           \        R
V! R4      ,           4      ,           \        4       ,           # )c                 F    V \        \        R 4      V ,           4      ,           # ),)r
   r	   )elems   &~/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/matplotlib/_fontconfig_pattern.pycomma_separated0_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,vl^4@AF./DDSVK==>E$#&)??6*CUUVD(45
3.w77
8	9
S4..
/	0 +	r,   c                &   \        4       p VP                  V 4      pTP                  4        / pRT9   d   . \        \        TR,          4      OTR&   RT9   d   . TR,          OTR&   TP                  R. 4       FY  p\        T4      ^8X  d   \        T^ ,          ,          pTvrgTP                  T. 4      P                  \        \        T4      4       K[  	  T#   \         d.   p\        R\        P                  ! T^ 4      ,           4      RhRp?ii ; i)zg
Parse a fontconfig *pattern* into a dict that can initialize a
`.font_manager.FontProperties` object.

Nr.   r5   r0   r6   
properties)r:   parse_stringr   
ValueErrorexplainreset_cachemap_family_unescapegetlenr4   
setdefaultextend_value_unescape)patternparserparseerrpropsr9   kvs   &       r)   parse_fontconfig_patternrP   M   s    %&FJ##G, EUEC 0%
2CDEh%)%.)f		,+t9>d1g&DB&&s?A'>?	 ,
 L  J 6 6sA >>?TIJs   C D#(DDc           	         R Uu. uF  pV\        V RV 24      ! 4       3NK  	  ppRP                  R V P                  4        4       4      RP                  R V 4       4      ,           # u upi )z;Convert a `.FontProperties` to a fontconfig pattern string.get_r'   c              3   8   "   T F  p\        V4      x  K  	  R # 5i)N)_family_escape).0fs   & r)   	<genexpr>.generate_fontconfig_pattern.<locals>.<genexpr>m   s     ?1^A&&s   r   c           	   3   f   "   T F'  w  rVf   K  RV R\        \        V4      4       2x  K)  	  R # 5i)Nr1   r-   )_value_escapestr)rU   rN   rO   s   &  r)   rW   rX   n   s4      8"%$! 6!AmCF345"%s   1"1)stylevariantweightstretchfiler6   )getattrjoin
get_family)drN   kvss   &  r)   generate_fontconfig_patternrf   g   s     NOMq wqD*%'(M  O HH???gg 8"%8 88 9	Os   A))r^   r   )r^   r   )r^   r   )r^   r   )r^   r   )r^   r   )r^   r   )r^   r   )r^   z
extra bold)r^   r   )r^   r   )slantr   )rg   r   )rg   r   )widthzultra-condensed)rh   zextra-condensed)rh   r    )rh   zsemi-condensed)rh   r"   )rh   zextra-expanded)rh   zultra-expanded)__doc__	functoolsr   r   re	pyparsingr   r   r   r   r   r	   r
   r   r2   compilesubrC   rT   r3   rH   rZ   r4   r:   rP   rf    r,   r)   <module>rp      s   ) 	U U U 2::ml&BCGGL K,$>?CCUK"**][%@AEErJ

;#<=AA5I
)) ) )	
 ( + * * , , ( . ) ) )  )!" *#$ 22,1+111
8  *  29r,   