
    h	              	       $   S r SSKJrJr  SSKrSSKJrJrJrJ	r	J
r
JrJrJr  Sr\" \R                  " S\-  5      R                   S5      r\" \R                  " S\-  5      R                   S	5      rS
r\" \R                  " S\-  5      R                   S5      r\" \R                  " S\-  5      R                   S	5      r0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_S&S'_S(S)_S*S+S,S-S.S/S0S1.Er\S2 5       r\S3 5       rS4 rg)5z
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oneOfz\\\-:,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                     S n [        S[         S[         S35      n[        S5      n[        S5      n[        S[         S[         S35      n[        U[	        S5      -   U " U5      -   [        [        5      -  5      n[        U " U5      " S5      5      [        S	U " U5      " S
5      -   5      -   [        SU" S5      -   5      -   [        5       -   $ )Nc                 6    U [        [        S5      U -   5      -   $ )N,)r   r
   )elems    P/var/www/html/env/lib/python3.13/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$#&)??5CTTUD(45
3.w77
8	9
S4..
/	0 +	r0   c                    [        5       n UR                  U 5      nUR                  5         0 nSU;   a  / [        [        US   5      QUS'   SU;   a
  / US   QUS'   UR                  S/ 5       HP  n[        U5      S	:X  a  [        US      nUtpgUR                  U/ 5      R                  [        [        U5      5        MR     U$ ! [         a)  n[        S[        R                  " US5      -   5      SeSnAff = f)
zg
Parse a fontconfig *pattern* into a dict that can initialize a
`.font_manager.FontProperties` object.

r   Nr2   r9   r4   r:   
properties   )r>   parseStringr   
ValueErrorexplain
resetCachemap_family_unescapegetlenr8   
setdefaultextend_value_unescape)patternparserparseerrpropsr=   kvs           r-   parse_fontconfig_patternrU   M   s    %&FJ""7+ EUEC 0%
2CDEh%)%.)f		,+t9>d1g&DB&&s?A'>?	 ,
 L  J 6 6sA >>?TIJs   C 
C8$C33C8c           	          S Vs/ s H  nU[        U SU 35      " 5       4PM     nnSR                  S U R                  5        5       5      SR                  S U 5       5      -   $ s  snf )z;Convert a `.FontProperties` to a fontconfig pattern string.)stylevariantr   stretchfiler:   get_r+   c              3   8   #    U  H  n[        U5      v   M     g 7f)N)_family_escape).0fs     r-   	<genexpr>.generate_fontconfig_pattern.<locals>.<genexpr>m   s     ?1^A&&s   r   c           	   3   d   #    U  H&  u  pUc  M
  SU S[        [        U5      5       3v   M(     g 7f)Nr5   r1   )_value_escapestr)r^   rS   rT   s      r-   r`   ra   n   s4      8"%$! 6!AmCF345"%s   	0!0)getattrjoin
get_family)drS   kvss      r-   generate_fontconfig_patternrj   g   s     NOMq wqD*%'(M  O HH???gg 8"%8 88 9	Os    A&)__doc__	functoolsr   r   re	pyparsingr   r   r   r   r	   r
   r   r   r6   compilesubrH   r]   r7   rM   rc   r8   r>   rU   rj    r0   r-   <module>rr      s   ) 	T T T 2::ml&BCGGL K,$>?CCUK"**][%@AEErJ

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