???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5ds0                     @   s   d dl Z d dlZd dlZd dlmZ dddgZG dd dZG dd dZd	d
 Z	G dd de
ZG dd de
ZG dd dZ[G dd dZG dd dZdS )    N)
NodeFilter
DOMBuilderDOMEntityResolverDOMInputSourcec                   @   sX   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dS )Options   TFN)__name__
__module____qualname__
namespacesnamespace_declarations
validationexternal_parameter_entitiesexternal_general_entitiesZexternal_dtd_subsetvalidate_if_schemaZ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 r   r   */usr/lib64/python3.8/xml/dom/xmlbuilder.pyr      s&   
r   c                   @   s&  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d Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdgdgdgdgdgdgd gd!gd"gd#gd"d$gd%gd&gd'gd(gd)gd*gd+gd,gd-gg dd!d"d$d(d.d'd+d-g	d/gd0gd1gd2Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< ZdS )=r   Nr            c                 C   s   t  | _d S N)r   _optionsselfr   r   r   __init__:   s    zDOMBuilder.__init__c                 C   s   | j S r!   entityResolverr#   r   r   r   _get_entityResolver=   s    zDOMBuilder._get_entityResolverc                 C   s
   || _ d S r!   r&   )r$   r'   r   r   r   _set_entityResolver?   s    zDOMBuilder._set_entityResolverc                 C   s   | j S r!   r   r#   r   r   r   _get_errorHandlerB   s    zDOMBuilder._get_errorHandlerc                 C   s
   || _ d S r!   r*   )r$   r   r   r   r   _set_errorHandlerD   s    zDOMBuilder._set_errorHandlerc                 C   s   | j S r!   r   r#   r   r   r   _get_filterG   s    zDOMBuilder._get_filterc                 C   s
   || _ d S r!   r-   )r$   r   r   r   r   _set_filterI   s    zDOMBuilder._set_filterc                 C   s   |  |rt|rdpd}z| jt||f }W n( tk
rT   tjd|f d Y qX |D ]\}}t| j|| qZntj	dt
| d S )Nr   r   zunsupported feature: %rzunknown feature: )supportsFeature	_settings_name_xformKeyErrorxmldomNotSupportedErrsetattrr"   NotFoundErrrepr)r$   namestateZsettingsvaluer   r   r   
setFeatureL   s    
zDOMBuilder.setFeaturec                 C   s   t | jt|S r!   )hasattrr"   r2   )r$   r:   r   r   r   r0   Z   s    zDOMBuilder.supportsFeaturec                 C   s   t ||rdpdf}|| jkS )Nr   r   )r2   r1   )r$   r:   r;   keyr   r   r   canSetFeature]   s    zDOMBuilder.canSetFeature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   r   r   r   r   r   r   r   )rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   )r   r   )r   r   rU   rV   rW   c                 C   s   t |}zt| j|W S  tk
r   |dkrp| j}|joj|joj|joj|joj|jph|j	ph|j
ph|jph|j  Y S tjdt| Y nX d S )Nr   zfeature %s not known)r2   getattrr"   AttributeErrorr   r   r   r   r   r   r   r   r   r4   r5   r8   r9   )r$   r:   Zxnameoptionsr   r   r   
getFeature   s0    	zDOMBuilder.getFeaturec                 C   s.   | j r| j d |}nt d |}| |S r!   )r'   resolveEntityr   parse)r$   uriinputr   r   r   parseURI   s    zDOMBuilder.parseURIc                 C   sR   t  | j}| j|_| j|_|j}|d krF|jrFdd l}|j|j}| 	||S Nr   )
copyr"   r   r   
byteStreamsystemIdurllib.requestrequestZurlopen_parse_bytestream)r$   r_   rZ   fpurllibr   r   r   r]      s    zDOMBuilder.parsec                 C   s   || j krtdtdd S )Nznot a legal actionzHaven't written this yet...)_legal_actions
ValueErrorNotImplementedError)r$   r_   Zcnodeactionr   r   r   parseWithContext   s    
zDOMBuilder.parseWithContextc                 C   s    dd l }|jj|}||S ra   )Zxml.dom.expatbuilderr5   ZexpatbuilderZmakeBuilderZ	parseFile)r$   streamrZ   r4   Zbuilderr   r   r   rg      s    zDOMBuilder._parse_bytestream)r   r	   r
   r'   r   r   ZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErj   r%   r(   r)   r+   r,   r.   r/   r=   r0   r@   r1   r[   r`   r]   rn   rg   r   r   r   r   r   -   s    =
c                 C   s   |   ddS )N-_)lowerreplace)r:   r   r   r   r2      s    r2   c                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )r   )_openerc                 C   s   t  }||_||_|  ||_| ||_dd l}dd l	}|j
|}|\}}}	}
}}|	r|	ds||	d }	|||	|
||f}|j
||_|S )Nr   /)r   publicIdrd   _get_openeropenrc   _guess_media_encodingencoding	posixpathZurllib.parser]   ZurlparseendswithdirnameZ
urlunparsebaseURI)r$   rv   rd   sourcer{   ri   partsZschemeZnetlocpathZparamsZqueryZfragmentr   r   r   r\      s    zDOMEntityResolver.resolveEntityc                 C   s2   z| j W S  tk
r,   |  | _ | j  Y S X d S r!   )rt   rY   _create_openerr#   r   r   r   rw      s
    
zDOMEntityResolver._get_openerc                 C   s   dd l }|j S ra   )re   rf   Zbuild_opener)r$   ri   r   r   r   r      s    z DOMEntityResolver._create_openerc                 C   sF   |j  }d|krB| D ]&}|dr|ddd    S qd S )NzContent-Typezcharset==r   )rc   infoZgetplist
startswithsplitrr   )r$   r   r   Zparamr   r   r   ry      s
    

z'DOMEntityResolver._guess_media_encodingN)r   r	   r
   	__slots__r\   rw   r   ry   r   r   r   r   r      s
   c                   @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd S )!r   rc   characterStream
stringDatarz   rv   rd   r~   c                 C   s.   d | _ d | _d | _d | _d | _d | _d | _d S r!   r   r#   r   r   r   r%     s    zDOMInputSource.__init__c                 C   s   | j S r!   rc   r#   r   r   r   _get_byteStream  s    zDOMInputSource._get_byteStreamc                 C   s
   || _ d S r!   r   )r$   rc   r   r   r   _set_byteStream  s    zDOMInputSource._set_byteStreamc                 C   s   | j S r!   r   r#   r   r   r   _get_characterStream  s    z#DOMInputSource._get_characterStreamc                 C   s
   || _ d S r!   r   )r$   r   r   r   r   _set_characterStream  s    z#DOMInputSource._set_characterStreamc                 C   s   | j S r!   r   r#   r   r   r   _get_stringData  s    zDOMInputSource._get_stringDatac                 C   s
   || _ d S r!   r   )r$   datar   r   r   _set_stringData  s    zDOMInputSource._set_stringDatac                 C   s   | j S r!   rz   r#   r   r   r   _get_encoding  s    zDOMInputSource._get_encodingc                 C   s
   || _ d S r!   r   )r$   rz   r   r   r   _set_encoding  s    zDOMInputSource._set_encodingc                 C   s   | j S r!   rv   r#   r   r   r   _get_publicId"  s    zDOMInputSource._get_publicIdc                 C   s
   || _ d S r!   r   )r$   rv   r   r   r   _set_publicId$  s    zDOMInputSource._set_publicIdc                 C   s   | j S r!   rd   r#   r   r   r   _get_systemId'  s    zDOMInputSource._get_systemIdc                 C   s
   || _ d S r!   r   )r$   rd   r   r   r   _set_systemId)  s    zDOMInputSource._set_systemIdc                 C   s   | j S r!   r~   r#   r   r   r   _get_baseURI,  s    zDOMInputSource._get_baseURIc                 C   s
   || _ d S r!   r   r$   r^   r   r   r   _set_baseURI.  s    zDOMInputSource._set_baseURIN)r   r	   r
   r   r%   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s    	c                   @   s:   e Zd ZdZdZdZdZejZ	dd Z
dd Zd	d
 ZdS )DOMBuilderFilterr   r   r   r    c                 C   s   | j S r!   )
whatToShowr#   r   r   r   _get_whatToShowC  s    z DOMBuilderFilter._get_whatToShowc                 C   s   | j S r!   FILTER_ACCEPTr$   Zelementr   r   r   
acceptNodeF  s    zDOMBuilderFilter.acceptNodec                 C   s   | j S r!   r   r   r   r   r   startContainerI  s    zDOMBuilderFilter.startContainerN)r   r	   r
   r   ZFILTER_REJECTZFILTER_SKIPZFILTER_INTERRUPTr   ZSHOW_ALLr   r   r   r   r   r   r   r   r   2  s   
r   c                   @   s@   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dS )
DocumentLSFc                 C   s   dS )NFr   r#   r   r   r   
_get_asyncT  s    zDocumentLS._get_asyncc                 C   s   |rt jdd S )Nz.asynchronous document loading is not supported)r4   r5   r6   )r$   flagr   r   r   
_set_asyncW  s    zDocumentLS._set_asyncc                 C   s   t dd S )Nz'haven't figured out what this means yetrl   r#   r   r   r   abort\  s    zDocumentLS.abortc                 C   s   t dd S Nzhaven't written this yetr   r   r   r   r   loadb  s    zDocumentLS.loadc                 C   s   t dd S r   r   )r$   r   r   r   r   loadXMLe  s    zDocumentLS.loadXMLc                 C   s*   |d kr| }n|j | k	r"tj | S r!   )ZownerDocumentr4   r5   ZWrongDocumentErrZtoxml)r$   Zsnoder   r   r   saveXMLh  s
    

zDocumentLS.saveXMLN)
r   r	   r
   Zasync_r   r   r   r   r   r   r   r   r   r   r   O  s   r   c                   @   s,   e Zd ZdZdZdd Zdd Zdd Zd	S )
DOMImplementationLSr   r   c                 C   sF   |d k	rt jd|| jkr$t S || jkr:t jdtdd S )NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r4   r5   r6   MODE_SYNCHRONOUSr   MODE_ASYNCHRONOUSrk   )r$   modeZ
schemaTyper   r   r   createDOMBuildert  s    

z$DOMImplementationLS.createDOMBuilderc                 C   s   t dd S )Nz-the writer interface hasn't been written yet!r   r#   r   r   r   createDOMWriter  s    z#DOMImplementationLS.createDOMWriterc                 C   s   t  S r!   )r   r#   r   r   r   createDOMInputSource  s    z(DOMImplementationLS.createDOMInputSourceN)r   r	   r
   r   r   r   r   r   r   r   r   r   r   p  s
   r   )rb   warningsZxml.domr4   Zxml.dom.NodeFilterr   __all__r   r   r2   objectr   r   r   r   r   r   r   r   r   <module>   s   
  %,1!