
    h                         S SK Jr  S SKJr  S SKJr  S SKrS SKrS SKr\R                  " \
5      r " S S\5      rSr " S S	\5      r " S
 S\5      rg)    )ttLib)safeEval)DefaultTableNc                       \ rS rSrSrg)TTXParseError    N)__name__
__module____qualname____firstlineno____static_attributes__r	       J/var/www/html/env/lib/python3.13/site-packages/fontTools/misc/xmlReader.pyr   r      s    r   r   i @  c                   H    \ rS rSr SS jrSS jrS rS rS rS r	S	 r
S
rg)	XMLReader   Nc                    US:X  a  [         R                  n[        US5      (       d  [        US5      U l        SU l        OXl        SU l        X l        X0l        Ub  SSKJ	n  U" SS	5        X@l
        S U l        / U l        XPl        SU l        g )
N-readrbTFr   )deprecateArgumentquietzconfigure logging instead)sysstdinhasattropenfile_closeStreamttFontprogressfontTools.misc.loggingToolsr   r   rootcontentStackcontentOnly	stackSize)self
fileOrPathr    r!   r   r%   r   s          r   __init__XMLReader.__init__   s     Jz6**Z.DI $D #I %D Eg'BCJ	&r   c                    U(       a  U =R                   S-  sl         U R                  (       ay  U R                  R                  SS5        U R                  R	                  5       nU R                  R                  SUS-  =(       d    S5        U R                  R                  S5        U R                  U R                  5        U R                  (       a  U R                  5         U(       a  U =R                   S-  sl         g g )N   r      d   )	r&   r!   r   seektellset
_parseFiler   close)r'   rootlessfileSizes      r   r   XMLReader.read,   s    NNaN==IINN1a yy~~'HMMaS!5A6IINN1		"JJLNNaN r   c                 8    U R                   R                  5         g N)r   r3   )r'   s    r   r3   XMLReader.close:   s    		r   c                    SSK Jn  U" 5       nU R                  Ul        U R                  Ul        U R                  Ul        Sn UR                  [        5      nU(       d  UR                  US5        g U[        U5      -   nU R                  (       a  U R                  R                  US-  5        UR                  US5        M  )Nr   )ParserCreater,   r.   )xml.parsers.expatr;   _startElementHandlerStartElementHandler_endElementHandlerEndElementHandler_characterDataHandlerCharacterDataHandlerr   BUFSIZEParselenr!   r1   )r'   r   r;   parserposchunks         r   r2   XMLReader._parseFile=   s    2%)%>%>"#'#:#: &*&@&@#IIg&EUA&E
"C}}!!#*-LL" r   c                    U R                   S:X  a4  U R                  (       a#  U R                  R                  / 5        SU l         g U R                   nUS-   U l         UR	                  S5      nUb  [        U R                  S5      (       a4  [        R                  R                  U R                  R                  5      nO[        R                  " 5       n[        R                  R                  XT5      nU(       d  US:w  a  [        SU-  5      eU R                  R                  c_  U R                  R                   (       dD  UR	                  S5      nUb0  [#        U5      S:w  a  [%        S	U-   S	-   5      nX`R                  l        U R                  R                  / 5        g US:X  Gas  UbL  [)        X@R                  U R*                  5      nUR-                  5         U R                  R                  / 5        g [.        R0                  " U5      nS
U-  n	U R*                  (       a  U R*                  R3                  U	5        [4        R7                  U	5        US:X  a  [.        R8                  n
OESU;   d  SU;   a  [%        US   5      (       a  [:        n
O[.        R<                  " U5      n
U
c  [:        n
US:X  a$  XR                  ;   a  U R                  U   U l        O&U
" U5      U l        U R>                  U R                  U'   U R                  R                  / 5        g US:X  a_  Ub\  [)        X@R                  U R*                  SS9nUR-                  5         U R                  R                  / 5        UR@                  U l         g US:X  a2  U R                  R                  / 5        XU R                  S   4U l         g / nU R                  S   R                  XU45        U R                  R                  U5        g )Nr,   r-   srcnamer    zillegal root tag: %ssfntVersion   "zParsing '%s' table...
GlyphOrderERRORrawlocaT)r%   )!r&   r%   r$   appendgetr   r   ospathdirnamerL   getcwdjoinr   r    readertablesrE   r   rM   r   r!   r   r   xmlToTagsetLabelloginforP   r   getTableClasscurrentTabler#   )r'   rL   attrsr&   subFilerY   rM   	subReadertagmsg
tableClassls               r   r=   XMLReader._startElementHandlerP   s   >>Q4#3#3 $$R(DNNN	"Q))E"tyy&))''//$))..9 ))+ggll74Gx#$:T$ABB{{!!)$++2D2D#ii6*;'1,&.s[/@3/F&G.9KK+$$R(!^"%g{{DMMJ	 !!((,..&C)C/C}}&&s+HHSMl""--
E!eun%,9O9O)
"005
%!-Jf}!3 %)KK$4!$.sO!#'#4#4C $$R(!^ 3!';;SWXINN$$R(!DI!^$$R(d&7&7&;<DIAb!(($q)9:$$Q'r   c                 B   U R                   S:  a  US:w  aj  U R                  S   (       aV  [        U R                  S   S   [        5      (       a1  U R                  S   S   S:w  a  U R                  S   S==   U-  ss'   g U R                  S   R	                  U5        g g )Nr,   
rT   )r&   r$   
isinstancestrrU   )r'   datas     r   rA   XMLReader._characterDataHandler   s    >>A %%b)t004R8#>>%%b)"-5!!"%b)T1)!!"%,,T2 r   c                 4   U R                   S-
  U l         U R                  S	 U R                  (       df  U R                   S:X  a  S U l        g U R                   S:X  a=  U R                  u  pnU R                  R                  XX0R                  5        S U l        g g g )Nr,   rT   r-   )r&   r$   r%   r#   rc   fromXMLr    )r'   rL   rd   contents       r   r?   XMLReader._endElementHandler   s    !+b!~~" 	1$'+yy$W!!))$wL 	 %  r   )
r   r%   r$   rc   r   r!   r   r#   r&   r    )NNF)F)r
   r   r   r   r)   r   r3   r2   r=   rA   r?   r   r	   r   r   r   r      s*    IN0 #&C(J3 	!r   r   c                   8    \ rS rSrSS jrS	S jrS
S jrS rSrg)ProgressPrinter   c                     [        U5        g r8   print)r'   titlemaxvals      r   r)   ProgressPrinter.__init__   s	    er   Nc                     g r8   r	   )r'   valr}   s      r   r1   ProgressPrinter.set       r   c                     g r8   r	   )r'   r   s     r   	incrementProgressPrinter.increment   r   r   c                     [        U5        g r8   rz   )r'   texts     r   r_   ProgressPrinter.setLabel   s	    dr   r	   )r.   r8   )r,   )	r
   r   r   r   r)   r1   r   r_   r   r	   r   r   rw   rw      s    r   rw   )	fontToolsr   fontTools.misc.textToolsr   #fontTools.ttLib.tables.DefaultTabler   r   rW   logging	getLoggerr
   r`   	Exceptionr   rC   objectr   rw   r	   r   r   <module>r      sW     - < 
 	  !	I 	 [! [!|f r   