a XC?h�.�@s�ddlZddlZdZdZdZdZdZdZdZ d Z Gd d �d ej j �Z Gd d �d �ZGdd�d�ZGdd�de �ZdZddd�Zddd�ZdS)�N� START_ELEMENT� END_ELEMENT�COMMENT�START_DOCUMENT� END_DOCUMENT�PROCESSING_INSTRUCTION�IGNORABLE_WHITESPACE� CHARACTERSc@s�eZdZdZdZd$dd�Zdd�Zdd�Zdd �Zd d �Z d d �Z dd�Z dd�Z dd�Z dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�ZdS)%�PullDOMNcCsxddlm}||_ddg|_|j|_g|_|jj|_z|jj|_Wnt yTYn0|dig|_ |j d|_ g|_ dS)Nr)� XML_NAMESPACE�xml�����) Zxml.domr �documentFactory� firstEvent� lastEvent� elementStack�append�push�pop�AttributeError� _ns_contexts�_current_context�pending_events)�selfrr �r�4/opt/alt/python39/lib64/python3.9/xml/dom/pulldom.py�__init__s      zPullDOM.__init__cCs|jd}|jd=|S�Nr )r)r�resultrrrr!s z PullDOM.popcCs ||_dS�N)�_locator)rZlocatorrrr�setDocumentLocator&szPullDOM.setDocumentLocatorcCsHt|d�sg|_|j�|pd|f�|j�|j���|pr?rCrGrKrLrNr.rTrUrrrrr s& 9  r c@s$eZdZdd�Zdd�Zdd�ZdS)� ErrorHandlercCs t|�dSr)�print�rZ exceptionrrr�warning�szErrorHandler.warningcCs|�dSrrr[rrr�error�szErrorHandler.errorcCs|�dSrrr[rrr� fatalError�szErrorHandler.fatalErrorN)rVrWrXr\r]r^rrrrrY�srYc@s\eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd d�Z dd�Z dd�Z dd�Z dS)�DOMEventStreamcCs2||_||_||_t|jd�s&|j|_|��dS)N�feed)�stream�parser�bufsizer$�_slurp�getEvent�reset)rrarbrcrrrr�s  zDOMEventStream.__init__cCs.t�|_|j�tjjjd�|j�|j�dSr;) r �pulldomrbZ setFeaturer �saxZhandlerZfeature_namespacesZsetContentHandlerrSrrrrf�szDOMEventStream.resetcCs0ddl}|jdtdd�|��}|r(|St�dS)Nrz[DOMEventStream's __getitem__ method ignores 'pos' parameter. Use iterator protocol instead.�)� stacklevel)�warnings�warn�DeprecationWarningre� IndexError)r�posrk�rcrrr� __getitem__�s�zDOMEventStream.__getitem__cCs|��}|r|St�dSr)re� StopIteration�rrprrr�__next__�szDOMEventStream.__next__cCs|SrrrSrrr�__iter__�szDOMEventStream.__iter__cCsl|��}|g}|rh|\}}||ur&dS|tkr<|d�|�|tkrP|�|�n|tkr^|d=|��}qdSr)rer� appendChildrr)rr8rB�parents�tokenZcur_noderrr� expandNode�s zDOMEventStream.expandNodecCs~|jjds|jj|j_|jjdsR|j�|j�}|sD|j��dS|j�|�q|jjdd}|jjdd|jjd<|S�Nr+r) rgrrra�readrcrb�closer`)r�bufrprrrres    zDOMEventStream.getEventcCs|j�|j�|j|_|��Sr)rb�parsera�_emitrerSrrrrdszDOMEventStream._slurpcCs,|jjdd}|jjdd|jjd<|Srz)rgrrsrrrrszDOMEventStream._emitcCs|j��|`d|_d|_dSr)rgrUrbrarSrrrrU!s zDOMEventStream.clearN) rVrWrXrrfrqrtruryrerdrrUrrrrr_�s  r_c@s4eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd S) �SAX2DOMcCs2t�||||�|jd}|jd}|�|�dS�Nr �����)r r:rrv)rr4r5r6�curNode� parentNoderrrr:*s  zSAX2DOM.startElementNScCs0t�|||�|jd}|jd}|�|�dSr�)r r>rrv)rr4r6r�r�rrrr>0s  zSAX2DOM.startElementcCs4t�|||�|jdd}|jd}|�|�dS�Nrr+r )r rGrrrv)rrErFr8r�rrrrG6s zSAX2DOM.processingInstructioncCs2t�||�|jdd}|jd}|�|�dSr�)r rKrrrv�rrJr8r�rrrrK<s  zSAX2DOM.ignorableWhitespacecCs2t�||�|jdd}|jd}|�|�dSr�)r rLrrrvr�rrrrLBs  zSAX2DOM.charactersN)rVrWrXr:r>rGrKrLrrrrr�(s r�i�?cCs@|dur t}t|t�r"t|d�}n|}|s4tj��}t|||�S)N�rb)�default_bufsize� isinstance�str�openr rh� make_parserr_)Zstream_or_stringrbrcrarrrr~Ks   r~cCs6ddlm}t|�}||�}|s*tj��}t|||�S)Nr)�StringIO)�ior��lenr rhr�r_)�stringrbr�rcr}rrr� parseStringVs   r�)NN)N)Zxml.saxr Zxml.sax.handlerrrrrrrrr rhZContentHandlerr rYr_r�r�r~r�rrrr�s"8\!