
    z%i/                         	 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       D/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/xml/sax/saxutils.py__dict_replacer      s3    <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>]       r   c                       y)NTr5   r5   r   r   r6   z _gettextwriter.<locals>.<lambda>b   r7   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-   r:   r>   r3   buffers   `    r   _gettextwriterrP   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__rP   rJ   _writeflush_flush_ns_contexts_current_context_undeclared_ns_maps	_encoding_short_empty_elements_pending_start_element)r+   r-   r:   short_empty_elementss       r   rV   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   :)r[   )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_   rW   )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"?>
)rW   r]   r+   s    r   startDocumentzXMLGenerator.startDocument   s    ;' 	(r   c                 $    | j                          y r   )rY   rj   s    r   endDocumentzXMLGenerator.endDocument   s    r   c                     | j                   j                  | j                  j                                || j                  |<   | j                  j                  ||f       y r   )rZ   appendr[   copyr\   r+   rc   uris      r   startPrefixMappingzXMLGenerator.startPrefixMapping   sM      !6!6!;!;!=>%+c"  ''6r   c                 F    | j                   d   | _        | j                   d= y )NrT   )rZ   r[   r+   rc   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   )rh   rW   r   r%   r^   r_   )r+   r,   attrsr   s       r   startElementzXMLGenerator.startElement   sj    **,C$J"[[] 	=MT5KKD)E*:;<	=%%*.D'KKr   c                 v    | j                   r| j                  d       d| _         y | j                  d|z         y Nz/>Fz</%s>rf   r+   r,   s     r   rg   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"rx   ry   Tr   )rh   rW   rd   r\   r   r%   r^   r_   )r+   r,   qnamerz   rc   rr   r   s          r   startElementNSzXMLGenerator.startElementNS   s    **,C$++d++,33 	1KFC<=MC/0		1
 $& "[[] 	JMT5KKDKK$5y7GHI	J%%*.D'KKr   c                     | j                   r| j                  d       d| _         y | j                  d| j                  |      z         y r}   )r_   rW   rd   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   )rh   r@   strr]   rW   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   )rh   r@   r   r]   rW   r   s     r   ignorableWhitespacez XMLGenerator.ignorableWhitespace   s<    ..0gs+gt~~6KK 	 r   c                 T    | j                          | j                  d|d|d       y )Nz<?rx   z?>)rh   rW   r+   targetr   s      r   processingInstructionz"XMLGenerator.processingInstruction   s    **,6401r   )Nz
iso-8859-1F)F)r/   r0   r1   rV   rd   rh   rk   rm   rs   rv   r{   rg   r   r   r   r   r   r5   r   r   rR   rR   p   sH    
,"0(7
"($5)!2r   rR   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   	XMLReaderrV   _parentr+   parents     r   rV   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   rk   rj   s    r   rk   zXMLFilterBase.startDocument   s    ((*r   c                 8    | j                   j                          y r   )r   rm   rj   s    r   rm   zXMLFilterBase.endDocument  s    &&(r   c                 <    | j                   j                  ||       y r   )r   rs   rq   s      r   rs   z XMLFilterBase.startPrefixMapping  s    --fc:r   c                 :    | j                   j                  |       y r   )r   rv   ru   s     r   rv   zXMLFilterBase.endPrefixMapping  s    ++F3r   c                 <    | j                   j                  ||       y r   )r   r{   )r+   r,   rz   s      r   r{   zXMLFilterBase.startElement      ''e4r   c                 :    | j                   j                  |       y r   )r   rg   r~   s     r   rg   zXMLFilterBase.endElement  s    %%d+r   c                 >    | j                   j                  |||       y r   )r   r   )r+   r,   r   rz   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   rj   s    r   	getParentzXMLFilterBase.getParentJ  s    ||r   c                     || _         y r   r   r   s     r   	setParentzXMLFilterBase.setParentM  s	    r   r   )r/   r0   r1   rV   r   r   r   r   rk   rm   rs   rv   r{   rg   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.requestrA   rC   r   r   r   r   r   r   r%   rP   rU   rR   r   r   r   r5   r   r   <module>r      sv   
 ( ' 	        &   .'0Rp27)) p2fkI'' k^r   