
    F\h0                         S r SSKrSSKrSSKJr  / SQr " S S5      r " S S5      rS	 r	 " S
 S\
5      r " S S\
5      r " S S5      rC " S S5      r " S S5      rg)z4Implementation of the DOM Level 3 'LS-Load' feature.    N)
NodeFilter)
DOMBuilderDOMEntityResolverDOMInputSourcec                   d    \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrSrSrSrSrSrSrSrSrSrSrSrg)Options   zFeatures object that has variables set for each DOMBuilder feature.

The DOMBuilder class uses an instance of this class to pass settings to
the ExpatBuilder class.
   TFN )__name__
__module____qualname____firstlineno____doc__
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__static_attributes__r       )/usr/lib/python3.13/xml/dom/xmlbuilder.pyr   r      sr     J!J"& $H""H$(!NH%)"G %LFr%   r   c            
       J   \ rS rSrSrSrSrSrSrSr	Sr
\\\	\
4rS rS rS	 rS
 rS rS rS rS rS rS r0 SS/_SS/_SS/_SS/_SS/_SS/_SS/_SS/_SS/_SS/_SSS/_SS/_SS/_SS/_SS/_S S /_S!S!/_S"/S#/S$// / S%QS&/S'/S(/S).ErS* rS+ rS, rS- rS. rS/rg)0r   ,   Nr
            c                 "    [        5       U l        g N)r   _optionsselfs    r&   __init__DOMBuilder.__init__9   s    	r%   c                     U R                   $ r-   entityResolverr/   s    r&   _get_entityResolverDOMBuilder._get_entityResolver<   s    """r%   c                     Xl         g r-   r4   )r0   r5   s     r&   _set_entityResolverDOMBuilder._set_entityResolver>   s    ,r%   c                     U R                   $ r-   r"   r/   s    r&   _get_errorHandlerDOMBuilder._get_errorHandlerA   s       r%   c                     Xl         g r-   r<   )r0   r"   s     r&   _set_errorHandlerDOMBuilder._set_errorHandlerC   s    (r%   c                     U R                   $ r-   r#   r/   s    r&   _get_filterDOMBuilder._get_filterF   s    {{r%   c                     Xl         g r-   rC   )r0   r#   s     r&   _set_filterDOMBuilder._set_filterH   s    r%   c                    U R                  U5      (       aQ  U=(       a    S=(       d    Sn U R                  [        U5      U4   nU H  u  p[        U R                  X5        M     g [        R                  R                  S[        U5      -   5      e! [
         a%    [        R                  R                  SU< 35      S ef = f)Nr
   r   zunsupported feature: zunknown feature: )supportsFeature	_settings_name_xformsetattrr.   KeyErrorxmldomNotSupportedErrNotFoundErrrepr)r0   namestatesettingsvalues        r&   
setFeatureDOMBuilder.setFeatureK   s    %%Ka$1E8>>;t+<e*DE
 $,KDDMM47 $, ''%%&9DJ&FGG  Cgg--1579>BCCs   B /Cc                 @    [        U R                  [        U5      5      $ r-   )hasattrr.   rL   )r0   rT   s     r&   rJ   DOMBuilder.supportsFeatureY   s    t}}k$&788r%   c                 \    [        U5      U=(       a    S=(       d    S4nX0R                  ;   $ )Nr
   r   )rL   rK   )r0   rT   rU   keys       r&   canSetFeatureDOMBuilder.canSetFeature\   s'    4 %+A"23nn$$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
   )	ra   rb   rc   rd   rf   )r   r
   re   rg   ri   r!   r   r   r   r   r
   )rg   rh   ri   )r    r   )r    r
   rj   rk   rl   c                 2   [        U5      n [        U R                  U5      $ ! [         a    US:X  a  U R                  nUR                  =(       a    UR
                  =(       a    UR                  =(       ap    UR                  =(       a]    UR                  =(       dE    UR                  =(       d2    UR                  =(       d    UR                  =(       d    UR                  (       + s $ [        R                  R                  S[!        U5      -  5      ef = f)Nr    zfeature %s not known)rL   getattrr.   AttributeErrorr   r   r   r   r   r   r   r   r   rO   rP   rR   rS   )r0   rT   xnameoptionss       r&   
getFeature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   # CD*,Dc                     U R                   (       a  U R                   R                  S U5      nO[        5       R                  S U5      nU R                  U5      $ r-   )r5   resolveEntityr   parse)r0   uriinputs      r&   parseURIDOMBuilder.parseURI   sG    ''55dC@E%'55dC@Ezz%  r%   c                 :   [         R                   " U R                  5      nU R                  Ul        U R                  Ul        UR                  nUc:  UR
                  (       a)  SS KnUR                  R                  UR
                  5      nU R                  X25      $ Nr   )
copyr.   r#   r"   
byteStreamsystemIdurllib.requestrequesturlopen_parse_bytestream)r0   rx   rq   fpurllibs        r&   rv   DOMBuilder.parse   so    ))DMM*#00:%..!''7B%%b22r%   c                 L    X0R                   ;  a  [        S5      e[        S5      e)Nznot a legal actionzHaven't written this yet...)_legal_actions
ValueErrorNotImplementedError)r0   rx   cnodeactions       r&   parseWithContextDOMBuilder.parseWithContext   s&    ,,,122!"?@@r%   c                 v    SS K nUR                  R                  R                  U5      nUR	                  U5      $ r|   )xml.dom.expatbuilderrP   expatbuildermakeBuilder	parseFile)r0   streamrq   rO   builders        r&   r   DOMBuilder._parse_bytestream   s0    #''&&227;  ((r%   )r.   r5   r"   r#   )r   r   r   r   r5   r"   r#   ACTION_REPLACEACTION_APPEND_AS_CHILDRENACTION_INSERT_AFTERACTION_INSERT_BEFOREr   r1   r6   r9   r=   r@   rD   rG   rX   rJ   r_   rK   rr   ry   rv   r   r   r$   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    U R                  5       R                  SS5      $ )N-_)lowerreplace)rT   s    r&   rL   rL      s    ::<S))r%   c                   0    \ rS rSrSrS rS rS rS rSr	g)r      )_openerc                    Uc   e[        5       nXl        X#l        U R                  5       R	                  U5      Ul        U R                  U5      Ul        SS KnSS K	nUR                  R                  U5      nUu  pxppU	(       aO  U	R                  S5      (       d9  UR                  U	5      S-   n	XxXX4nUR                  R                  U5      Ul        U$ )Nr   /)r   publicIdr   _get_openeropenr~   _guess_media_encodingencoding	posixpathurllib.parserv   urlparseendswithdirname
urlunparsebaseURI)r0   r   r   sourcer   r   partsschemenetlocpathparamsqueryfragments                r&   ru   DOMEntityResolver.resolveEntity   s    ###!"" ,,.33H= 44V< 	'%%h/8=5ec**$$T*S0DD%AE#\\44U;FNr%   c                 ~     U R                   $ ! [         a$    U R                  5       U l         U R                   s $ f = fr-   )r   ro   _create_openerr/   s    r&   r   DOMEntityResolver._get_opener   s:    	 << 	 ..0DL<<	 s    +<<c                 >    SS K nUR                  R                  5       $ r|   )r   r   build_opener)r0   r   s     r&   r    DOMEntityResolver._create_opener   s    ~~**,,r%   c                     UR                   R                  5       nUR                  S5      nUb  UR                  5       $ g )Ncharset)r~   info	get_paramr   )r0   r   r   r   s       r&   r   'DOMEntityResolver._guess_media_encoding   s;      %%' ..+==?"r%   N)
r   r   r   r   	__slots__ru   r   r   r   r$   r   r%   r&   r   r      s    I, -r%   r   c                   r    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)r   i  r~   characterStream
stringDatar   r   r   r   c                 f    S U l         S U l        S U l        S U l        S U l        S U l        S U l        g r-   r   r/   s    r&   r1   DOMInputSource.__init__  s4    #r%   c                     U R                   $ r-   r~   r/   s    r&   _get_byteStreamDOMInputSource._get_byteStream      r%   c                     Xl         g r-   r   )r0   r~   s     r&   _set_byteStreamDOMInputSource._set_byteStream  s    $r%   c                     U R                   $ r-   r   r/   s    r&   _get_characterStream#DOMInputSource._get_characterStream  s    ###r%   c                     Xl         g r-   r   )r0   r   s     r&   _set_characterStream#DOMInputSource._set_characterStream  s    .r%   c                     U R                   $ r-   r   r/   s    r&   _get_stringDataDOMInputSource._get_stringData  r   r%   c                     Xl         g r-   r   )r0   datas     r&   _set_stringDataDOMInputSource._set_stringData  s    r%   c                     U R                   $ r-   r   r/   s    r&   _get_encodingDOMInputSource._get_encoding      }}r%   c                     Xl         g r-   r   )r0   r   s     r&   _set_encodingDOMInputSource._set_encoding        r%   c                     U R                   $ r-   r   r/   s    r&   _get_publicIdDOMInputSource._get_publicId#  r   r%   c                     Xl         g r-   r   )r0   r   s     r&   _set_publicIdDOMInputSource._set_publicId%  r   r%   c                     U R                   $ r-   r   r/   s    r&   _get_systemIdDOMInputSource._get_systemId(  r   r%   c                     Xl         g r-   r   )r0   r   s     r&   _set_systemIdDOMInputSource._set_systemId*  r   r%   c                     U R                   $ r-   r   r/   s    r&   _get_baseURIDOMInputSource._get_baseURI-  s    ||r%   c                     Xl         g r-   r   r0   rw   s     r&   _set_baseURIDOMInputSource._set_baseURI/  s    r%   )r   r~   r   r   r   r   r   N)r   r   r   r   r   r1   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                   R    \ rS rSrSrSrSrSrSr\	R                  rS rS rS	 rS
rg)DOMBuilderFilteri3  zKElement filter which can be used to tailor construction of
a DOM instance.
r
   r)   r*   r+   c                     U R                   $ r-   )
whatToShowr/   s    r&   _get_whatToShow DOMBuilderFilter._get_whatToShowD  r   r%   c                     U R                   $ r-   FILTER_ACCEPTr0   elements     r&   
acceptNodeDOMBuilderFilter.acceptNodeG      !!!r%   c                     U R                   $ r-   r	  r  s     r&   startContainerDOMBuilderFilter.startContainerJ  r  r%   r   N)r   r   r   r   r   r
  FILTER_REJECTFILTER_SKIPFILTER_INTERRUPTr   SHOW_ALLr  r  r  r  r$   r   r%   r&   r  r  3  s8     MMK$$J""r%   r  c                   @    \ rS rSrSrSrS rS rS rS r	S r
S	 rS
rg)
DocumentLSiP  z=Mixin to create documents that conform to the load/save spec.Fc                     g)NFr   r/   s    r&   
_get_asyncDocumentLS._get_asyncU  s    r%   c                 P    U(       a  [         R                  R                  S5      eg )Nz.asynchronous document loading is not supported)rO   rP   rQ   )r0   flags     r&   
_set_asyncDocumentLS._set_asyncX  s&    ''))@B B r%   c                     [        S5      e)Nz'haven't figured out what this means yetr   r/   s    r&   abortDocumentLS.abort]  s     "57 	7r%   c                     [        S5      eNzhaven't written this yetr!  r   s     r&   loadDocumentLS.loadc      !"<==r%   c                     [        S5      er%  r!  )r0   r   s     r&   loadXMLDocumentLS.loadXMLf  r(  r%   c                     Uc  U nUR	                  5       $ UR                   U La  [        R                  R                  5       eUR	                  5       $ r-   )ownerDocumentrO   rP   WrongDocumentErrtoxml)r0   snodes     r&   saveXMLDocumentLS.saveXMLi  sI    =E {{}   ,''**,,{{}r%   r   N)r   r   r   r   r   async_r  r  r"  r&  r*  r1  r$   r   r%   r&   r  r  P  s)    GFB
7>>r%   r  c                   .    \ rS rSrSrSrS rS rS rSr	g)	DOMImplementationLSiq  r
   r)   c                     Ub  [         R                  R                  S5      eXR                  :X  a
  [	        5       $ XR
                  :X  a  [         R                  R                  S5      e[        S5      e)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)rO   rP   rQ   MODE_SYNCHRONOUSr   MODE_ASYNCHRONOUSr   )r0   mode
schemaTypes      r&   createDOMBuilder$DOMImplementationLS.createDOMBuilderu  sh    !'')).0 0(((<)))''))9; ;122r%   c                     [        S5      e)Nz-the writer interface hasn't been written yet!r!  r/   s    r&   createDOMWriter#DOMImplementationLS.createDOMWriter  s    !;= 	=r%   c                     [        5       $ r-   )r   r/   s    r&   createDOMInputSource(DOMImplementationLS.createDOMInputSource  s    r%   r   N)
r   r   r   r   r7  r8  r;  r>  rA  r$   r   r%   r&   r5  r5  q  s    	3= r%   r5  )r   r}   xml.domrO   xml.dom.NodeFilterr   __all__r   r   rL   objectr   r   r  r  r5  r   r%   r&   <module>rG     st    :   ) @ @a) a)H*+ +\.V .b" "4  B   r%   