
    6bh/                         	 d dl Z d dlZd dlZd dlZd dlZddlmZ ddlmZ d Z	i fdZ
i fdZi fdZd	 Z G d
 dej                        Z G d dej                         ZddZy)    N   )handler)	xmlreaderc                 \    	 |j                         D ]  \  }}| j                  ||      }  | S N)itemsreplace)sdkeyvalues       :/opt/python-3.12.12/usr/lib/python3.12/xml/sax/saxutils.py__dict_replacer      s.    <ggi
UIIc5!  H    c                     	 | j                  dd      } | j                  dd      } | j                  dd      } |rt        | |      } | S )N&&amp;>&gt;<&lt;r	   r   dataentitiess     r   escaper      sM     <<W%D<<V$D<<V$DdH-Kr   c                     	 | j                  dd      } | j                  dd      } |rt        | |      } | j                  dd      S )Nr   r   r   r   r   r   r   r   s     r   unescaper   "   sI     <<$D<<$DdH-<<%%r   c                     	 i |dddd}t        | |      } d| v r"d| v rd| j                  dd      z  } | S d	| z  } | S d| z  } | S )
Nz&#10;z&#13;z&#9;)
	"'z"%s"z&quot;z'%s')r   r	   r   s     r   	quoteattrr%   0   su    	 G(F'vFH$!D
d{$;DLLh77D
 K D=D K }Kr   c                      dd l }|j                  S t         t        j                        r S t         t
        j                  t
        j                  f      r S t         t        j                        r G  fdd      } |       }d |_	        nPt        j                         }d |_         j                  |_        	  j                  |_         j                  |_        t        j                   ||ddd	      S # t        $ r Y %w xY w)
Nr   c                   2    e Zd ZW  j                  Z fdZy) _gettextwriter.<locals>._wrapperc                     t        |      S r   )getattr)selfnameouts     r   __getattr__z,_gettextwriter.<locals>._wrapper.__getattr__Z   s    sD))r   N)__name__
__module____qualname__	__class__r.   )r-   s   r   _wrapperr(   X   s    I*r   r3   c                       y r    r5   r   r   <lambda>z _gettextwriter.<locals>.<lambda>]   s    tr   c                       y)NTr5   r5   r   r   r6   z _gettextwriter.<locals>.<lambda>b   s    $r   xmlcharrefreplacer    T)encodingerrorsnewlinewrite_through)sysstdout
isinstanceio
TextIOBasecodecsStreamWriterStreamReaderWriter	RawIOBasecloseBufferedIOBasewritablewriteseekabletellAttributeErrorTextIOWrapper)r-   r9   r=   r3   buffers   `    r   _gettextwriterrO   G   s    
{zz#r}}%
#++V-F-FGH
 #r||$	* 	* # ""$&yy	 "llFO((FK FX#6$(*.0 0  		s    "C< <	DDc                   d    e Zd Zd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y)XMLGeneratorNc                    t         j                  j                  |        t        ||      }|j                  | _        |j                  | _        i g| _        | j                  d   | _	        g | _
        || _        || _        d| _        y )NF)r   ContentHandler__init__rO   rI   _writeflush_flush_ns_contexts_current_context_undeclared_ns_maps	_encoding_short_empty_elements_pending_start_element)r+   r-   r9   short_empty_elementss       r   rU   zXMLGenerator.__init__r   st    ''-S(+iiiiD $ 1 1" 5#% !%9"&+#r   c                 v    	 |d   r/d|d   k(  rd|d   z   S | j                   |d      }|r|dz   |d   z   S |d   S )Nr   z$http://www.w3.org/XML/1998/namespacezxml:r   :)rZ   )r+   r,   prefixs      r   _qnamezXMLGenerator._qname~   s\    E7
 6a@Q''**473F|d1g--Awr   c                 N    | j                   r| j                  d       d| _         y y )Nr   Fr^   rV   )r+   
endElements     r   _finish_pending_start_elementz*XMLGenerator._finish_pending_start_element   s$    &&KK*/D' 'r   c                 @    | j                  d| j                  z         y )Nz$<?xml version="1.0" encoding="%s"?>
)rV   r\   r+   s    r   startDocumentzXMLGenerator.startDocument   s    ;' 	(r   c                 $    | j                          y r   )rX   ri   s    r   endDocumentzXMLGenerator.endDocument   s    r   c                     | j                   j                  | j                  j                                || j                  |<   | j                  j                  ||f       y r   )rY   appendrZ   copyr[   r+   rb   uris      r   startPrefixMappingzXMLGenerator.startPrefixMapping   sM      !6!6!;!;!=>%+c"  ''6r   c                 F    | j                   d   | _        | j                   d= y )NrS   )rY   rZ   r+   rb   s     r   endPrefixMappingzXMLGenerator.endPrefixMapping   s#     $ 1 1" 5b!r   c           	         | j                          | j                  d|z          |j                         D ]%  \  }}| j                  d|dt        |             ' | j                  rd| _        y | j                  d       y )Nr    =Tr   )rg   rV   r   r%   r]   r^   )r+   r,   attrsr   s       r   startElementzXMLGenerator.startElement   se    **,C$J"[[]MT5KKD)E*:;< +%%*.D'KKr   c                 v    | j                   r| j                  d       d| _         y | j                  d|z         y Nz/>Fz</%s>re   r+   r,   s     r   rf   zXMLGenerator.endElement   s/    &&KK*/D'KK$'r   c           	         | j                          | j                  d| j                  |      z          | j                  D ]4  \  }}|r| j                  d|d|d       !| j                  d|z         6 g | _        |j	                         D ]4  \  }}| j                  d| j                  |      dt        |             6 | j                  rd| _        y | j                  d	       y )
Nr   z xmlns:z="r#   z xmlns="%s"rw   rx   Tr   )rg   rV   rc   r[   r   r%   r]   r^   )r+   r,   qnamery   rb   rq   r   s          r   startElementNSzXMLGenerator.startElementNS   s    **,C$++d++,33KFC<=MC/0	 4
 $& "[[]MT5KKDKK$5y7GHI +%%*.D'KKr   c                     | j                   r| j                  d       d| _         y | j                  d| j                  |      z         y r|   )r^   rV   rc   r+   r,   r   s      r   endElementNSzXMLGenerator.endElementNS   s9    &&KK*/D'KK$++d"334r   c                     |rQ| j                          t        |t              st        || j                        }| j	                  t        |             y y r   )rg   r?   strr\   rV   r   r+   contents     r   
characterszXMLGenerator.characters   s@    ..0gs+gt~~6KKw(	 r   c                     |rH| j                          t        |t              st        || j                        }| j	                  |       y y r   )rg   r?   r   r\   rV   r   s     r   ignorableWhitespacez XMLGenerator.ignorableWhitespace   s<    ..0gs+gt~~6KK 	 r   c                 T    | j                          | j                  d|d|d       y )Nz<?rw   z?>)rg   rV   r+   targetr   s      r   processingInstructionz"XMLGenerator.processingInstruction   s    **,6401r   )Nz
iso-8859-1F)F)r/   r0   r1   rU   rc   rg   rj   rl   rr   ru   rz   rf   r   r   r   r   r   r5   r   r   rQ   rQ   p   sH    
,"0(7
"($5)!2r   rQ   c                       e 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 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)XMLFilterBaseNc                 P    t         j                  j                  |        || _        y r   )r   	XMLReaderrU   _parentr+   parents     r   rU   zXMLFilterBase.__init__   s    $$T*r   c                 :    | j                   j                  |       y r   )_err_handlererrorr+   	exceptions     r   r   zXMLFilterBase.error   s    	*r   c                 :    | j                   j                  |       y r   )r   
fatalErrorr   s     r   r   zXMLFilterBase.fatalError   s    $$Y/r   c                 :    | j                   j                  |       y r   )r   warningr   s     r   r   zXMLFilterBase.warning   s    !!),r   c                 :    | j                   j                  |       y r   )_cont_handlersetDocumentLocator)r+   locators     r   r   z XMLFilterBase.setDocumentLocator   s    --g6r   c                 8    | j                   j                          y r   )r   rj   ri   s    r   rj   zXMLFilterBase.startDocument   s    ((*r   c                 8    | j                   j                          y r   )r   rl   ri   s    r   rl   zXMLFilterBase.endDocument  s    &&(r   c                 <    | j                   j                  ||       y r   )r   rr   rp   s      r   rr   z XMLFilterBase.startPrefixMapping  s    --fc:r   c                 :    | j                   j                  |       y r   )r   ru   rt   s     r   ru   zXMLFilterBase.endPrefixMapping  s    ++F3r   c                 <    | j                   j                  ||       y r   )r   rz   )r+   r,   ry   s      r   rz   zXMLFilterBase.startElement      ''e4r   c                 :    | j                   j                  |       y r   )r   rf   r}   s     r   rf   zXMLFilterBase.endElement  s    %%d+r   c                 >    | j                   j                  |||       y r   )r   r   )r+   r,   r   ry   s       r   r   zXMLFilterBase.startElementNS  s    ))$u=r   c                 <    | j                   j                  ||       y r   )r   r   r   s      r   r   zXMLFilterBase.endElementNS  r   r   c                 :    | j                   j                  |       y r   )r   r   r   s     r   r   zXMLFilterBase.characters  s    %%g.r   c                 :    | j                   j                  |       y r   )r   r   )r+   charss     r   r   z!XMLFilterBase.ignorableWhitespace  s    ..u5r   c                 <    | j                   j                  ||       y r   )r   r   r   s      r   r   z#XMLFilterBase.processingInstruction  s    00>r   c                 :    | j                   j                  |       y r   )r   skippedEntityr}   s     r   r   zXMLFilterBase.skippedEntity   s    ((.r   c                 >    | j                   j                  |||       y r   )_dtd_handlernotationDecl)r+   r,   publicIdsystemIds       r   r   zXMLFilterBase.notationDecl%  s    &&tXx@r   c                 @    | j                   j                  ||||       y r   )r   unparsedEntityDecl)r+   r,   r   r   ndatas        r   r   z XMLFilterBase.unparsedEntityDecl(  s    ,,T8XuMr   c                 :    | j                   j                  ||      S r   )_ent_handlerresolveEntity)r+   r   r   s      r   r   zXMLFilterBase.resolveEntity-  s      ..xBBr   c                    | j                   j                  |        | j                   j                  |        | j                   j                  |        | j                   j	                  |        | j                   j                  |       y r   )r   setContentHandlersetErrorHandlersetEntityResolversetDTDHandlerparse)r+   sources     r   r   zXMLFilterBase.parse2  s\    &&t,$$T*&&t,""4(6"r   c                 :    | j                   j                  |       y r   )r   	setLocale)r+   locales     r   r   zXMLFilterBase.setLocale9  s    v&r   c                 8    | j                   j                  |      S r   )r   
getFeaturer}   s     r   r   zXMLFilterBase.getFeature<  s    ||&&t,,r   c                 <    | j                   j                  ||       y r   )r   
setFeature)r+   r,   states      r   r   zXMLFilterBase.setFeature?  s    e,r   c                 8    | j                   j                  |      S r   )r   getPropertyr}   s     r   r   zXMLFilterBase.getPropertyB  s    ||''--r   c                 <    | j                   j                  ||       y r   )r   setProperty)r+   r,   r   s      r   r   zXMLFilterBase.setPropertyE  s      u-r   c                     | j                   S r   r   ri   s    r   	getParentzXMLFilterBase.getParentJ  s    ||r   c                     || _         y r   r   r   s     r   	setParentzXMLFilterBase.setParentM  s	    r   r   )r/   r0   r1   rU   r   r   r   r   rj   rl   rr   ru   rz   rf   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r   r   r   r      s    +0-
7+);45,>5/6?/
AN
C
#'--..
r   r   c                 l   	 t        | t        j                        rt        j                  |       } t        | t              rt        j                  |       } nt        | d      r| }t        j                         } t        |j                  d      t              r| j                  |       n| j                  |       t        |d      r5t        |j                  t              r| j                  |j                         | j                         '| j                         | j                         }t        j                   j#                  t        j                   j%                  |            }t        j                   j'                  ||      }t        j                   j)                  |      r| j                  |       t+        |d      }n\| j                  t,        j.                  j1                  ||             t,        j2                  j5                  | j                               }| j                  |       | S )Nreadr   r,   rb)r?   osPathLikefspathr   r   InputSourcehasattrr   setCharacterStreamsetByteStreamr,   setSystemIdgetCharacterStreamgetByteStreamgetSystemIdpathdirnamenormpathjoinisfileopenurllibr   urljoinrequesturlopen)r   basefsysidbaseheadsysidfilenames         r   prepare_input_sourcer   R  s   F &"++&6"&#&&v.		 &&(affQi%%%a(  #1f*QVVS"9qvv&  "*v/C/C/E/M""$77??277#3#3D#9:Xu577>>-(}-]D)Av||33D%@A&&v'9'9';<AQMr   ) )r   urllib.parser   urllib.requestr@   rB   r   r   r   r   r   r   r%   rO   rT   rQ   r   r   r   r5   r   r   <module>r      sv   
 ( ' 	        &   .'0Rp27)) p2fkI'' k^r   