
    <`                         d dl mZ d dlmZ d dlmZ d dlZd dlZd dlZ ej	        e
          Z G d de          ZdZ G d d	e          Z G d
 de          ZdS )    )ttLib)safeEval)DefaultTableNc                       e Zd ZdS )TTXParseErrorN)__name__
__module____qualname__     8lib/python3.11/site-packages/fontTools/misc/xmlReader.pyr   r      s          r   r   i @  c                   <    e Zd Zd
dZddZd Zd Zd Zd Zd	 Z	dS )	XMLReaderNFc                 *   |dk    rt           j        }t          |d          st          |d          | _        d| _        n|| _        d| _        || _        || _        |ddlm	}  |dd	           || _
        d | _        g | _        || _        d| _        d S )
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__zXMLReader.__init__   s    3	:	V	$	$ J%%494 494$+$-
<<<<<<W9:::4:$)$ $$...r   c                    |r| xj         dz  c_         | j        rn| j                            dd           | j                                        }| j                            d|dz  pd           | j                            d           |                     | j                   | j        r|                                  |r| xj         dz  c_         d S d S )N   r      d   )	r"   r   r   seektellset
_parseFiler   close)r#   rootlessfileSizes      r   r   zXMLReader.read'   s     >>Q>>	] 9>>!Qinn8=QC,1---9>>!//$)	 ::<<< >>Q>>>> r   c                 8    | j                                          d S N)r   r.   )r#   s    r   r.   zXMLReader.close5   s    )//r   c                 r   ddl m}  |            }| j        |_        | j        |_        | j        |_        d}	 |                    t                    }|s|
                    |d           d S |t          |          z   }| j        r| j                            |dz             |
                    |d           )Nr   )ParserCreateTr'   r)   )xml.parsers.expatr4   _startElementHandlerStartElementHandler_endElementHandlerEndElementHandler_characterDataHandlerCharacterDataHandlerr   BUFSIZEParselenr   r,   )r#   r   r4   parserposchunks         r   r-   zXMLReader._parseFile8   s    ,,,,,,<>>&#8&!4& $ :&	#99W5
 

LL	E	s5zz	3
m "McSj!!!	<<qr   c                    | j         dk    r*| j        r#| j                            g            d| _         d S | j         }|dz   | _         |                    d          }|rt          | j        d          r*t          j        	                    | j        j
                  }nt          j                    }t          j                            ||          }|s|dk    rt          d|z            |                    d          }|4t          |          dk    rt          d	|z   d	z             }|| j        _        | j                            g            d S |dk    rS|Kt%          || j        | j                  }|                                 | j                            g            d S t+          j        |          }d
|z  }	| j        r| j                            |	           t0                              |	           |dk    rt*          j        }
nBd|v sd|v rt          |d                   rt6          }
nt+          j        |          }
|
t6          }
|dk    r|| j        v r| j        |         | _        n |
|          | _        | j        | j        |<   | j                            g            d S |dk    r[|Yt%          || j        | j        d          }|                                 | j                            g            |j        | _        d S |dk    r1| j                            g            ||| j        d         f| _        d S g }| j        d                             |||f           | j                            |           d S )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dirnamerD   getcwdjoinr   r>   r   r   rE   r   r   r   r   xmlToTagsetLabelloginforH   r   getTableClasscurrentTabler   )r#   rD   attrsr"   subFilerQ   rE   	subReadertagmsg
tableClassls               r   r6   zXMLReader._startElementHandlerJ   su   	^qT- B4>	6n)q=$.IIe'di   goodin--GG ikkGW\\'7++7	 /
h
.5
6
66=));
;1C+-344[)DKBA~~'4;>>INNR   
F			3	 3	&3
m  M388C===	\!JJ5Ue^^u0F0F^JJ$S))JZ	Vmmt{** C(D"
3D(DKBA~~'-$+t}$OOO9>>B~4999A~~BeT.r234999	1Rua 0111Ar   c                 `    | j         dk    r"| j        d                             |           d S d S )Nr'   rL   )r"   r    rM   )r#   datas     r   r:   zXMLReader._characterDataHandler   s9    	^aR%%%%% r   c                     | j         dz
  | _         | j        d= | j        sU| j         dk    r	d | _        d S | j         dk    r8| j        \  }}}| j                            |||| j                   d | _        d S d S d S )Nr'   rL   r(   )r"   r    r!   r   rY   fromXMLr   )r#   rD   rZ   contents       r   r8   zXMLReader._endElementHandler   s    >A%$.
		 
nDIII!9D%dE7DK@@@DIII  	r   )NNF)F)
r   r	   r
   r%   r   r.   r-   r6   r:   r8   r   r   r   r   r      s           *       $B B BH& & &	 	 	 	 	r   r   c                   ,    e Zd ZddZd	dZd
dZd ZdS )ProgressPrinterr)   c                 $    t          |           d S r2   print)r#   titlemaxvals      r   r%   zProgressPrinter.__init__   s    ,,,,,r   Nc                     d S r2   r   )r#   valrl   s      r   r,   zProgressPrinter.set       $r   r'   c                     d S r2   r   )r#   rn   s     r   	incrementzProgressPrinter.increment   ro   r   c                 $    t          |           d S r2   ri   )r#   texts     r   rU   zProgressPrinter.setLabel   s    +++++r   )r)   r2   )r'   )r   r	   r
   r%   r,   rq   rU   r   r   r   rg   rg      s_                     r   rg   )	fontToolsr   fontTools.misc.textToolsr   #fontTools.ttLib.tables.DefaultTabler   r   rO   logging	getLoggerr   rV   	Exceptionr   r<   objectr   rg   r   r   r   <module>r{      s          - - - - - - < < < < < < 



 				  g!! $ $ $ $ $I $ $ $
K K K K K K K K\    f     r   