
    z%ic0                         	 d dl Z d dlZd dlmZ g dZ G d d      Z G d d      Zd Z G d	 d
e	      Z
 G d de	      Z G d d      Z[ G d d      Z G d d      Zy)    N)
NodeFilter)
DOMBuilderDOMEntityResolverDOMInputSourcec                   Z    e 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)Options   TFN)__name__
__module____qualname__
namespacesnamespace_declarations
validationexternal_parameter_entitiesexternal_general_entitiesexternal_dtd_subsetvalidate_if_schemavalidatedatatype_normalizationcreate_entity_ref_nodesentitieswhitespace_in_element_contentcdata_sectionscommentscharset_overrides_xml_encodinginfosetsupported_mediatypes_onlyerrorHandlerfilter     F/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/xml/dom/xmlbuilder.pyr   r      sr     J!J"& $H""H$(!NH%)"G %LFr!   r   c            
       B   e Zd ZdZdZdZdZdZdZdZ	eeee	fZ
d Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zi ddgddgddgddgddgddgddgddgddgddgdddgddgddgddgddgddgd d gd!gd"gd#gg g d$d%gd&gd'gd(Zd) Zd* Zd+ Zd, Zd- Zy).r   Nr	            c                 "    t               | _        y N)r   _optionsselfs    r"   __init__zDOMBuilder.__init__9   s    	r!   c                     | j                   S r(   entityResolverr*   s    r"   _get_entityResolverzDOMBuilder._get_entityResolver<   s    """r!   c                     || _         y r(   r.   )r+   r/   s     r"   _set_entityResolverzDOMBuilder._set_entityResolver>   s
    ,r!   c                     | j                   S r(   r   r*   s    r"   _get_errorHandlerzDOMBuilder._get_errorHandlerA   s       r!   c                     || _         y r(   r4   )r+   r   s     r"   _set_errorHandlerzDOMBuilder._set_errorHandlerC   s
    (r!   c                     | j                   S r(   r   r*   s    r"   _get_filterzDOMBuilder._get_filterF   s    {{r!   c                     || _         y r(   r9   )r+   r   s     r"   _set_filterzDOMBuilder._set_filterH   s	    r!   c                 h   | j                  |      rG|xr dxs d}	 | j                  t        |      |f   }|D ]  \  }}t        | j                  ||        y t        j                  j                  dt        |      z         # t
        $ r$ t        j                  j                  d|      d w xY w)Nr	   r   zunsupported feature: zunknown feature: )supportsFeature	_settings_name_xformsetattrr)   KeyErrorxmldomNotSupportedErrNotFoundErrrepr)r+   namestatesettingsvalues        r"   
setFeaturezDOMBuilder.setFeatureK   s    %Ka$1E8>>;t+<e*DE
 $, 8KD%DMM478 ''%%&9DJ&FGG  Cgg--1579>BCCs   B -B1c                 @    t        | j                  t        |            S r(   )hasattrr)   r@   )r+   rH   s     r"   r>   zDOMBuilder.supportsFeatureY   s    t}}k$&788r!   c                 H    t        |      |xr dxs df}|| j                  v S )Nr	   r   )r@   r?   )r+   rH   rI   keys       r"   canSetFeaturezDOMBuilder.canSetFeature\   s)    4 %+A"23dnn$$r!   r   r   )r   r	   )r   r   )r   r   )r   r	   )r   r   )r   r	   r   r   r   r   )r   r	   r   r   )r   r	   )r   r   r   r	   r   r   )r   r	   )r   r   r   r	   r   r   r   r	   )	rR   rS   rT   rU   rW   )r   r	   rV   rX   rZ   r   r   r   r   r   r	   )rX   rY   rZ   )r   r   )r   r	   r[   r\   r]   c                    t        |      }	 t        | j                  |      S # t        $ r |dk(  r| j                  }|j                  xro |j
                  xra |j                  xrS |j                  xrE |j                  xs6 |j                  xs( |j                  xs |j                  xs |j                   cY S t        j                  j                  dt!        |      z        w xY w)Nr   zfeature %s not known)r@   getattrr)   AttributeErrorr   r   r   r   r   r   r   r   r   rC   rD   rF   rG   )r+   rH   xnameoptionss       r"   
getFeaturezDOMBuilder.getFeature   s    D!	K4==%00 	Ky --66 <#AA<#,,< $BB< ")!?!? ";$+$>$>";$+$C$C"; %,$4$4"; %,$:$:	<	= ''%%&<tDz&IJJ	Ks   # BC(<,C(c                     | j                   r| j                   j                  d |      }nt               j                  d |      }| j                  |      S r(   )r/   resolveEntityr   parse)r+   uriinputs      r"   parseURIzDOMBuilder.parseURI   sG    ''55dC@E%'55dC@Ezz%  r!   c                 .   t        j                   | j                        }| j                  |_        | j                  |_        |j                  }|5|j
                  r)dd l}|j                  j                  |j
                        }| j                  ||      S Nr   )
copyr)   r   r   
byteStreamsystemIdurllib.requestrequesturlopen_parse_bytestream)r+   rh   rb   fpurllibs        r"   rf   zDOMBuilder.parse   ss    ))DMM*#00:'**!''7B%%b'22r!   c                 J    || j                   vrt        d      t        d      )Nznot a legal actionzHaven't written this yet...)_legal_actions
ValueErrorNotImplementedError)r+   rh   cnodeactions       r"   parseWithContextzDOMBuilder.parseWithContext   s(    ,,,122!"?@@r!   c                 v    dd l }|j                  j                  j                  |      }|j	                  |      S rk   )xml.dom.expatbuilderrD   expatbuildermakeBuilder	parseFile)r+   streamrb   rC   builders        r"   rr   zDOMBuilder._parse_bytestream   s0    #''&&227;  ((r!   )r
   r   r   r/   r   r   ACTION_REPLACEACTION_APPEND_AS_CHILDRENACTION_INSERT_AFTERACTION_INSERT_BEFORErv   r,   r0   r2   r5   r7   r:   r<   rL   r>   rQ   r?   rc   ri   rf   r{   rr   r    r!   r"   r   r   ,   s   NLFN !$&?)+?AN"#-!)H9%;%)(+; 	&)(+;
 	; 	),+.; 	),+.; 	+.-0; 	+.-0; 	"%$';" 	'*),#;& 	'*),';* 	*+;0 	1;4 	-0/25;8 	-0/29;< 	! #=;@ 	! #A;D 	E;J  203 203	3 -+.  s;IzK$!3A
)r!   r   c                 B    | j                         j                  dd      S )N-_)lowerreplace)rH   s    r"   r@   r@      s    ::<S))r!   c                   (    e Zd ZdZd Zd Zd Zd Zy)r   )_openerc                    t               }||_        ||_        | j                         j	                  |      |_        | j                  |      |_        dd l}dd l	}|j                  j                  |      }|\  }}}	}
}}|	rM|	j                  d      s<|j                  |	      dz   }	|||	|
||f}|j                  j                  |      |_        |S )Nr   /)r   publicIdrn   _get_openeropenrm   _guess_media_encodingencoding	posixpathurllib.parserf   urlparseendswithdirname
urlunparsebaseURI)r+   r   rn   sourcer   rt   partsschemenetlocpathparamsqueryfragments                r"   re   zDOMEntityResolver.resolveEntity   s    !"" ,,.33H= 44V< 	'%%h/8=5feXc*$$T*S0DFD&%AE#\\44U;FNr!   c                 |    	 | j                   S # t        $ r$ | j                         | _         | j                   cY S w xY wr(   )r   r`   _create_openerr*   s    r"   r   zDOMEntityResolver._get_opener   s:    	 << 	 ..0DL<<	 s    *;;c                 >    dd l }|j                  j                         S rk   )ro   rp   build_opener)r+   rt   s     r"   r   z DOMEntityResolver._create_opener   s    ~~**,,r!   c                     |j                   j                         }d|v rL|j                         D ]8  }|j                  d      s|j	                  dd      d   j                         c S  y y )NzContent-Typezcharset==r	   )rm   infogetplist
startswithsplitr   )r+   r   r   params       r"   r   z'DOMEntityResolver._guess_media_encoding   se      %%'T! :##J/ ;;sA.q17799: "r!   N)r
   r   r   	__slots__re   r   r   r   r    r!   r"   r   r      s    I, -:r!   r   c                   j    e 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)r   rm   characterStream
stringDatar   r   rn   r   c                 f    d | _         d | _        d | _        d | _        d | _        d | _        d | _        y r(   r   r*   s    r"   r,   zDOMInputSource.__init__  s4    #r!   c                     | j                   S r(   rm   r*   s    r"   _get_byteStreamzDOMInputSource._get_byteStream      r!   c                     || _         y r(   r   )r+   rm   s     r"   _set_byteStreamzDOMInputSource._set_byteStream  s	    $r!   c                     | j                   S r(   r   r*   s    r"   _get_characterStreamz#DOMInputSource._get_characterStream  s    ###r!   c                     || _         y r(   r   )r+   r   s     r"   _set_characterStreamz#DOMInputSource._set_characterStream  s
    .r!   c                     | j                   S r(   r   r*   s    r"   _get_stringDatazDOMInputSource._get_stringData  r   r!   c                     || _         y r(   r   )r+   datas     r"   _set_stringDatazDOMInputSource._set_stringData  s	    r!   c                     | j                   S r(   r   r*   s    r"   _get_encodingzDOMInputSource._get_encoding      }}r!   c                     || _         y r(   r   )r+   r   s     r"   _set_encodingzDOMInputSource._set_encoding  	     r!   c                     | j                   S r(   r   r*   s    r"   _get_publicIdzDOMInputSource._get_publicId!  r   r!   c                     || _         y r(   r   )r+   r   s     r"   _set_publicIdzDOMInputSource._set_publicId#  r   r!   c                     | j                   S r(   rn   r*   s    r"   _get_systemIdzDOMInputSource._get_systemId&  r   r!   c                     || _         y r(   r   )r+   rn   s     r"   _set_systemIdzDOMInputSource._set_systemId(  r   r!   c                     | j                   S r(   r   r*   s    r"   _get_baseURIzDOMInputSource._get_baseURI+  s    ||r!   c                     || _         y r(   r   r+   rg   s     r"   _set_baseURIzDOMInputSource._set_baseURI-  s	    r!   N)r
   r   r   r   r,   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r      sU    @I%$/!!!r!   r   c                   H    e Zd Z	 dZdZdZdZej                  Z	d Z
d Zd Zy)	DOMBuilderFilterr	   r$   r%   r&   c                     | j                   S r(   )
whatToShowr*   s    r"   _get_whatToShowz DOMBuilderFilter._get_whatToShowB  r   r!   c                     | j                   S r(   FILTER_ACCEPTr+   elements     r"   
acceptNodezDOMBuilderFilter.acceptNodeE      !!!r!   c                     | j                   S r(   r   r   s     r"   startContainerzDOMBuilderFilter.startContainerH  r   r!   N)r
   r   r   r   FILTER_REJECTFILTER_SKIPFILTER_INTERRUPTr   SHOW_ALLr   r   r   r   r    r!   r"   r   r   1  s8     MMK$$J""r!   r   c                   6    e Zd Z	 dZd Zd Zd Zd Zd Zd Z	y)	
DocumentLSFc                      y)NFr    r*   s    r"   
_get_asynczDocumentLS._get_asyncS  s    r!   c                 F    |rt         j                  j                  d      y )Nz.asynchronous document loading is not supported)rC   rD   rE   )r+   flags     r"   
_set_asynczDocumentLS._set_asyncV  s&    ''))@B B r!   c                     t        d      )Nz'haven't figured out what this means yetrx   r*   s    r"   abortzDocumentLS.abort[  s     "57 	7r!   c                     t        d      Nzhaven't written this yetr   r   s     r"   loadzDocumentLS.loada      !"<==r!   c                     t        d      r   r   )r+   r   s     r"   loadXMLzDocumentLS.loadXMLd  r   r!   c                     || }|j	                         S |j                   | urt        j                  j                         |j	                         S r(   )ownerDocumentrC   rD   WrongDocumentErrtoxml)r+   snodes     r"   saveXMLzDocumentLS.saveXMLg  sI    =E {{}   ,''**,,{{}r!   N)
r
   r   r   async_r   r   r   r   r   r  r    r!   r"   r   r   N  s)    GFB
7>>r!   r   c                   &    e Zd ZdZdZd Zd Zd Zy)DOMImplementationLSr	   r$   c                     |t         j                  j                  d      || j                  k(  r
t	               S || j
                  k(  rt         j                  j                  d      t        d      )NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)rC   rD   rE   MODE_SYNCHRONOUSr   MODE_ASYNCHRONOUSrw   )r+   mode
schemaTypes      r"   createDOMBuilderz$DOMImplementationLS.createDOMBuilders  sl    !'')).0 04(((<4)))''))9; ;122r!   c                     t        d      )Nz-the writer interface hasn't been written yet!r   r*   s    r"   createDOMWriterz#DOMImplementationLS.createDOMWriter~  s    !;= 	=r!   c                     t               S r(   )r   r*   s    r"   createDOMInputSourcez(DOMImplementationLS.createDOMInputSource  s    r!   N)r
   r   r   r	  r
  r  r  r  r    r!   r"   r  r  o  s    	3= r!   r  )rl   xml.domrC   xml.dom.NodeFilterr   __all__r   r   r@   objectr   r   r   r   r  r    r!   r"   <module>r     st    :   ) @ @a) a)H*): ):X.V .b" "4  B   r!   