
    du-                         d dl Zd dlZdZdZdZdZdZdZdZ	d	Z
 G d
 dej        j                  Z G d d          Z G d d          Z G d de          ZdZddZddZdS )    NSTART_ELEMENTEND_ELEMENTCOMMENTSTART_DOCUMENTEND_DOCUMENTPROCESSING_INSTRUCTIONIGNORABLE_WHITESPACE
CHARACTERSc                   ~    e Zd ZdZdZddZd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd ZdS )PullDOMNc                    ddl m} || _        d d g| _        | j        | _        g | _        | j        j        | _        	 | j        j        | _        n# t          $ r Y nw xY w|dig| _
        | j
        d         | _        g | _        d S )Nr   )XML_NAMESPACExml)xml.domr   documentFactory
firstEvent	lastEventelementStackappendpushpopAttributeError_ns_contexts_current_contextpending_events)selfr   r   s      !  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/xml/dom/pulldom.py__init__zPullDOM.__init__   s    )))))).,%,		(,DHH 	 	 	D	 ,E23 $ 1" 5 s   A 
AAc                 0    | j         d         }| j         d= |S Nr   )r   )r   results     r   r   zPullDOM.pop!   s    "2&b!    c                     || _         d S N)_locator)r   locators     r   setDocumentLocatorzPullDOM.setDocumentLocator&   s    r#   c                     t          | d          sg | _        | j                            |pd|f           | j                            | j                                                   |pd | j        |<   d S )N_xmlns_attrsxmlns)hasattrr*   r   r   r   copy)r   prefixuris      r   startPrefixMappingzPullDOM.startPrefixMapping)   sz    t^,, 	# "D  &"3GS!9:::  !6!;!;!=!=>>>%+^tc"""r#   c                 B    | j                                         | _        d S r%   )r   r   r   )r   r.   s     r   endPrefixMappingzPullDOM.endPrefixMapping0   s     $ 1 5 5 7 7r#   c                    d}t          | dd           }||D ]\  }}||j        ||f<   g | _        |\  }}	|rV|| j        |         }
|
r	|
dz   |	z   }n|	}| j        r| j                            ||          }nO|                     ||          }n8| j        r| j                            |	          }n|                     d |	          }|                                D ]\  }}|\  }}||k    r?|dk    r|}nd|z   }| j        	                    ||          }|
                    |           n||rK| j        |         }
|
r	|
dz   |z   }n|}| j        	                    ||          }|
                    |           n/| j                            |          }|                    |           ||_        t          |fd g| j        d<   | j        d         | _        |                     |           d S )Nzhttp://www.w3.org/2000/xmlns/r*   :r+   zxmlns:   )getattr_attrsr*   r   documentcreateElementNSbuildDocumentcreateElementitemscreateAttributeNSsetAttributeNodeNScreateAttributesetAttributeNodevaluer   r   r   )r   nametagNameattrs	xmlns_urixmlns_attrsanamerA   r/   	localnamer.   nodea_uria_localnameqnameattrs                   r   startElementNSzPullDOM.startElementNS3   sD   3	dND99" + 9 9u38i/00 "DY 	; .s3 ($slY6GG'G} 8}44S'BB))#w77 } ;}229==))$	:: ;;== 	 	KE%!&E;	!!'))'EE${2E}66ueDD''---- 
,.u5 ("SL;6EE'E}66ueDD''----}44[AA%%d+++DJJ+T2D9q*		$r#   c                 t    t           |                                 fd g| j        d<   | j        d         | _        d S Nr5   r   r   r   )r   rB   rC   s      r   endElementNSzPullDOM.endElementNSl   2    )488::6=q*r#   c                    | j         r| j                             |          }n|                     d |          }|                                D ];\  }}| j                             |          }||_        |                    |           <t          |fd g| j        d<   | j        d         | _        | 	                    |           d S rP   )
r8   r;   r:   r<   r?   rA   r@   r   r   r   )r   rB   rD   rI   rG   rA   rM   s          r   startElementzPullDOM.startElementp   s    = 	2=..t44DD%%dD11D ;;== 	( 	(KE%=0077DDJ!!$''''+T2D9q*		$r#   c                 t    t           |                                 fd g| j        d<   | j        d         | _        d S rP   rQ   )r   rB   s     r   
endElementzPullDOM.endElement   rS   r#   c                     | j         rA| j                             |          }t          |fd g| j        d<   | j        d         | _        d S t          |fd g}| j                            |           d S rP   )r8   createCommentr   r   r   r   )r   srI   events       r   commentzPullDOM.comment   ss    = 	.=..q11D")4$ 7DN1!^A.DNNNq\4(E&&u-----r#   c                     | j         rB| j                             ||          }t          |fd g| j        d<   | j        d         | _        d S t          ||fd g}| j                            |           d S rP   )r8   createProcessingInstructionr   r   r   r   )r   targetdatarI   r[   s        r   processingInstructionzPullDOM.processingInstruction   sy    = 	.=<<VTJJD"8$!? FDN1!^A.DNNN,fd;TBE&&u-----r#   c                     | j                             |          }t          |fd g| j        d<   | j        d         | _        d S rP   )r8   createTextNoder	   r   r   charsrI   s      r   ignorableWhitespacezPullDOM.ignorableWhitespace   s?    }++E222D94@q*r#   c                     | j                             |          }t          |fd g| j        d<   | j        d         | _        d S rP   )r8   rc   r
   r   rd   s      r   
characterszPullDOM.characters   s?    }++E22($/6q*r#   c                 V    | j         !dd l}|j        j        j        j        | _         d S d S )Nr   )r   xml.dom.minidomdomminidomDocumentimplementation)r   r   s     r   startDocumentzPullDOM.startDocument   s7    '""""#&7?#;#JD    ('r#   c                 p   | j                             ||d           }|| _        t          |fd g| j        d<   | j        d         | _        |                     |           | j        D ]}|d         d         t          k    r4|d         \  }}}| j                            ||          }t          |f|d<   nf|d         d         t          k    r3| j        
                    |d         d                   }t          |f|d<   nt          d|d         d                   || j        d<   || _        d | _        |j        S )Nr5   r   zUnknown pending event )r   createDocumentr8   r   r   r   r   r   r^   r   rY   AssertionError
firstChild)	r   r/   tagnamerI   e_r_   r`   ns	            r   r:   zPullDOM.buildDocument   s1    #223FF,d3T:q*		$$ 	 	AtAw000 !!&M==fdKK.2!1aG##M//!Q88|!$%=ad1gFFF !DN1DNN"r#   c                 ^    t           | j        fd g| j        d<   |                                  d S rP   )r   r8   r   r   r   s    r   endDocumentzPullDOM.endDocument   s+    *DM:DAq




r#   c                     d| _         dS )z.clear(): Explicitly release parsing structuresN)r8   ry   s    r   clearzPullDOM.clear   s    r#   r%   )__name__
__module____qualname__r&   r8   r   r   r(   r0   r2   rN   rR   rU   rW   r\   ra   rf   rh   ro   r:   rz   r|    r#   r   r   r      s&       HH! ! ! !   
     4 4 48 8 87 7 7r+ + +  + + +. . .. . .+ + +
+ + +
K K K
  0      r#   r   c                        e Zd Zd Zd Zd ZdS )ErrorHandlerc                 $    t          |           d S r%   )printr   	exceptions     r   warningzErrorHandler.warning   s    ir#   c                     |r%   r   r   s     r   errorzErrorHandler.error       r#   c                     |r%   r   r   s     r   
fatalErrorzErrorHandler.fatalError   r   r#   N)r}   r~   r   r   r   r   r   r#   r   r   r      sA                r#   r   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )DOMEventStreamc                     || _         || _        || _        t          | j        d          s| j        | _        |                                  d S )Nfeed)streamparserbufsizer,   _slurpgetEventreset)r   r   r   r   s       r   r   zDOMEventStream.__init__   sE    t{F++ 	( KDM

r#   c                     t                      | _        | j                            t          j        j        j        d           | j                            | j                   d S rP   )	r   pulldomr   
setFeaturer   saxhandlerfeature_namespacessetContentHandlerry   s    r   r   zDOMEventStream.reset   sJ    yyswA1EEE%%dl33333r#   c                 @    |                                  }|r|S t          r%   )r   StopIterationr   rcs     r   __next__zDOMEventStream.__next__   s"    ]]__ 	Ir#   c                     | S r%   r   ry   s    r   __iter__zDOMEventStream.__iter__   s    r#   c                 (   |                                  }|g}|rx|\  }}||u rd S |t          k    r|d                             |           |t          k    r|                    |           n|t          k    r|d= |                                  }|vd S d S r!   )r   r   appendChildr   r   )r   rI   r[   parentstokencur_nodes         r   
expandNodezDOMEventStream.expandNode   s    & 
	$#OE84##''111%%x((((+%%BKMMOOE  
	$ 
	$ 
	$ 
	$ 
	$r#   c                    | j         j        d         s| j         j        | j         _        | j         j        d         sh| j                            | j                  }|s| j                                         d S | j                            |           | j         j        d         h| j         j        d         d         }| j         j        d         d         | j         j        d<   |S )Nr5   r   )	r   r   r   r   readr   r   closer   )r   bufr   s      r   r   zDOMEventStream.getEvent   s     |&q) 	=%)\%<DL",)!, 	"+""4<00C !!###tKS!!! ,)!, 	" \$Q'*%)\%<Q%?%B"	r#   c                     | j                             | j                   | j        | _        |                                 S )z Fallback replacement for getEvent() using the
            standard SAX2 interface, which means we slurp the
            SAX events into memory (no performance gain, but
            we are compatible to all SAX parsers).
        )r   parser   _emitr   ry   s    r   r   zDOMEventStream._slurp  s3     	$+&&&
zz||r#   c                     | j         j        d         d         }| j         j        d         d         | j         j        d<   |S )zn Fallback replacement for getEvent() that emits
            the events that _slurp() read previously.
        r5   r   )r   r   r   s     r   r   zDOMEventStream._emit  s;     \$Q'*%)\%<Q%?%B"	r#   c                 X    | j                                          | ` d| _        d| _        dS )z+clear(): Explicitly release parsing objectsN)r   r|   r   r   ry   s    r   r|   zDOMEventStream.clear  s-    Lr#   N)r}   r~   r   r   r   r   r   r   r   r   r   r|   r   r#   r   r   r      s          4 4 4    $ $ $          r#   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )SAX2DOMc                     t                               | |||           | j        d         }| j        d         }|                    |           d S Nr   )r   rN   r   r   )r   rB   rC   rD   curNode
parentNodes         r   rN   zSAX2DOM.startElementNS  sP    tT7E:::#B'&r*
w'''''r#   c                     t                               | ||           | j        d         }| j        d         }|                    |           d S r   )r   rU   r   r   )r   rB   rD   r   r   s        r   rU   zSAX2DOM.startElement#  sN    T4///#B'&r*
w'''''r#   c                     t                               | ||           | j        d         d         }| j        d         }|                    |           d S Nr   r5   r   )r   ra   r   r   r   )r   r_   r`   rI   r   s        r   ra   zSAX2DOM.processingInstruction)  sR    %%dFD999~a #&r*
t$$$$$r#   c                     t                               | |           | j        d         d         }| j        d         }|                    |           d S r   )r   rf   r   r   r   r   re   rI   r   s       r   rf   zSAX2DOM.ignorableWhitespace/  sP    ##D%000~a #&r*
t$$$$$r#   c                     t                               | |           | j        d         d         }| j        d         }|                    |           d S r   )r   rh   r   r   r   r   s       r   rh   zSAX2DOM.characters5  sP    4'''~a #&r*
t$$$$$r#   N)r}   r~   r   rN   rU   ra   rf   rh   r   r#   r   r   r     s_        ( ( (( ( (% % %% % %% % % % %r#   r   i?  c                     |t           }t          | t                    rt          | d          }n| }|st          j                                        }t          |||          S )Nrb)default_bufsize
isinstancestropenr   r   make_parserr   )stream_or_stringr   r   r   s       r   r   r   >  sc    !"C(( "&--! '$$&&&&'222r#   c                     ddl m} t          |           } ||           }|st          j                                        }t          |||          S )Nr   )StringIO)ior   lenr   r   r   r   )stringr   r   r   r   s        r   parseStringr   I  s[    &kkG
(6

C '$$&&#vw///r#   )NNr%   )xml.saxr   xml.sax.handlerr   r   r   r   r   r   r	   r
   r   ContentHandlerr   r   r   r   r   r   r   r   r#   r   <module>r      s9       
!1 - 
u u u u ucg$ u u un       M M M M M M M M^% % % % %g % % %B !	3 	3 	3 	30 0 0 0 0 0r#   