3 \�2�@s�ddlZddlZddlZddlmZdddgZGdd�d�ZGdd�d�Zd d �Z Gd d�de �Z Gd d�de �Z Gd d�d�Z [Gdd�d�ZGdd�d�Z[Gdd�d�ZdS)�N)� NodeFilter� DOMBuilder�DOMEntityResolver�DOMInputSourcec@sXeZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZdS)�Options�TFN)�__name__� __module__� __qualname__� namespaces�namespace_declarations� validation�external_parameter_entities�external_general_entitiesZexternal_dtd_subset�validate_if_schemaZvalidate�datatype_normalization�create_entity_ref_nodes�entities�whitespace_in_element_content�cdata_sections�comments�charset_overrides_xml_encoding�infoset�supported_mediatypes_only� errorHandler�filter�rr�*/usr/lib64/python3.6/xml/dom/xmlbuilder.pyr s& rc5@sVeZdZdZdZdZdZdZdZdZ eeee fZ dd�Z dd �Z d d �Z d d �Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd4d5gd6d7gd8d9gd:d;gdd?gd@dAgdBdCgdDdEgdFdGgdHdIdJgdKdLgdMdNgdOdPgdQdRgdSdTgdUdVgdWdXgdYdZgd[d\gd]gd^d_d`dadbdcdddedfdgg dhdigdjdkgdldmgiZd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�ZdS)nrNr���cCs t�|_dS)N)r�_options)�selfrrr�__init__:szDOMBuilder.__init__cCs|jS)N)�entityResolver)r"rrr�_get_entityResolver=szDOMBuilder._get_entityResolvercCs ||_dS)N)r$)r"r$rrr�_set_entityResolver?szDOMBuilder._set_entityResolvercCs|jS)N)r)r"rrr�_get_errorHandlerBszDOMBuilder._get_errorHandlercCs ||_dS)N)r)r"rrrr�_set_errorHandlerDszDOMBuilder._set_errorHandlercCs|jS)N)r)r"rrr� _get_filterGszDOMBuilder._get_filtercCs ||_dS)N)r)r"rrrr� _set_filterIszDOMBuilder._set_filterc Cs�|j|�rv|rdpd}y|jt|�|f}Wn&tk rRtjjd|f��Yq�Xx4|D]\}}t|j||�qZWntjj dt |���dS)Nrrzunsupported feature: %rzunknown feature: ) �supportsFeature� _settings� _name_xform�KeyError�xml�dom�NotSupportedErr�setattrr!� NotFoundErr�repr)r"�name�stateZsettings�valuerrr� setFeatureLs  zDOMBuilder.setFeaturecCst|jt|��S)N)�hasattrr!r-)r"r5rrrr+ZszDOMBuilder.supportsFeaturecCst|�|rdpdf}||jkS)Nrr)r-r,)r"r5r6�keyrrr� canSetFeature]szDOMBuilder.canSetFeaturer rr rrrrrrrrrrrrr c Cs�t|�}y t|j|�Stk r�|dkrj|j}|joh|joh|joh|joh|jpf|j pf|j pf|j pf|j St jjdt|���YnXdS)Nrzfeature %s not known)r-�getattrr!�AttributeErrorrrrrr rrrrr/r0r3r4)r"r5Zxname�optionsrrr� getFeature�s  zDOMBuilder.getFeaturecCs.|jr|jjd|�}nt�jd|�}|j|�S)N)r$� resolveEntityr�parse)r"�uri�inputrrr�parseURI�szDOMBuilder.parseURIcCsRtj|j�}|j|_|j|_|j}|dkrF|jrFddl}|jj|j�}|j ||�S)Nr) �copyr!rr� byteStream�systemId�urllib.request�requestZurlopen�_parse_bytestream)r"rCr>�fp�urllibrrrrA�s zDOMBuilder.parsecCs||jkrtd��td��dS)Nznot a legal actionzHaven't written this yet...)�_legal_actions� ValueError�NotImplementedError)r"rCZcnode�actionrrr�parseWithContext�s zDOMBuilder.parseWithContextcCs ddl}|jjj|�}|j|�S)Nr)Zxml.dom.expatbuilderr0Z expatbuilderZ makeBuilderZ parseFile)r"�streamr>r/ZbuilderrrrrJ�szDOMBuilder._parse_bytestream)r r)r r)r r)r r)r r)r r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)r r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)r r)r r)r r)r r)rr r r$rrZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErMr#r%r&r'r(r)r*r8r+r;r,r?rDrArQrJrrrrr-s�  cCs|j�jdd�S)N�-�_)�lower�replace)r5rrrr-�sr-c@s0eZdZd Zdd�Zdd�Zdd�Zdd �Zd S) r�_openerc Cs�t�}||_||_|j�j|�|_|j|�|_ddl}ddl }|j j |�}|\}}} } } } | r�| j d� r�|j | �d} ||| | | | f}|j j|�|_|S)Nr�/)r�publicIdrG� _get_opener�openrF�_guess_media_encoding�encoding� posixpathZ urllib.parserAZurlparse�endswith�dirnameZ urlunparse�baseURI) r"rYrG�sourcer^rL�parts�schemeZnetloc�pathZparamsZqueryZfragmentrrrr@�s  zDOMEntityResolver.resolveEntityc Cs,y|jStk r&|j�|_|jSXdS)N)rWr=�_create_opener)r"rrrrZ�s  zDOMEntityResolver._get_openercCsddl}|jj�S)Nr)rHrIZ build_opener)r"rLrrrrf�sz DOMEntityResolver._create_openercCsF|jj�}d|krBx.|j�D]"}|jd�r|jdd�dj�SqWdS)Nz Content-Typezcharset=�=r)rF�infoZgetplist� startswith�splitrU)r"rbrhZparamrrrr\�s   z'DOMEntityResolver._guess_media_encodingN)rW)rr r � __slots__r@rZrfr\rrrrr�s c@s�eZdZd'Zdd �Zd d �Zd d �Zdd�Zdd�Zdd�Z dd�Z dd�Z dd�Z dd�Z dd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&S)(rrF�characterStream� stringDatar]rYrGracCs.d|_d|_d|_d|_d|_d|_d|_dS)N)rFrlrmr]rYrGra)r"rrrr#szDOMInputSource.__init__cCs|jS)N)rF)r"rrr�_get_byteStreamszDOMInputSource._get_byteStreamcCs ||_dS)N)rF)r"rFrrr�_set_byteStreamszDOMInputSource._set_byteStreamcCs|jS)N)rl)r"rrr�_get_characterStreamsz#DOMInputSource._get_characterStreamcCs ||_dS)N)rl)r"rlrrr�_set_characterStreamsz#DOMInputSource._set_characterStreamcCs|jS)N)rm)r"rrr�_get_stringDataszDOMInputSource._get_stringDatacCs ||_dS)N)rm)r"�datarrr�_set_stringDataszDOMInputSource._set_stringDatacCs|jS)N)r])r"rrr� _get_encodingszDOMInputSource._get_encodingcCs ||_dS)N)r])r"r]rrr� _set_encodingszDOMInputSource._set_encodingcCs|jS)N)rY)r"rrr� _get_publicId"szDOMInputSource._get_publicIdcCs ||_dS)N)rY)r"rYrrr� _set_publicId$szDOMInputSource._set_publicIdcCs|jS)N)rG)r"rrr� _get_systemId'szDOMInputSource._get_systemIdcCs ||_dS)N)rG)r"rGrrr� _set_systemId)szDOMInputSource._set_systemIdcCs|jS)N)ra)r"rrr� _get_baseURI,szDOMInputSource._get_baseURIcCs ||_dS)N)ra)r"rBrrr� _set_baseURI.szDOMInputSource._set_baseURIN)rFrlrmr]rYrGra)rr r rkr#rnrorprqrrrtrurvrwrxryrzr{r|rrrrrs" c@s:eZdZdZdZdZdZejZ dd�Z dd�Z d d �Z d S) �DOMBuilderFilterrrrr cCs|jS)N)� whatToShow)r"rrr�_get_whatToShowCsz DOMBuilderFilter._get_whatToShowcCs|jS)N)� FILTER_ACCEPT)r"�elementrrr� acceptNodeFszDOMBuilderFilter.acceptNodecCs|jS)N)r�)r"r�rrr�startContainerIszDOMBuilderFilter.startContainerN) rr r r�Z FILTER_REJECTZ FILTER_SKIPZFILTER_INTERRUPTrZSHOW_ALLr~rr�r�rrrrr}2s r}c@s$eZdZdd�Zdd�Zdd�ZdS)�_AsyncDeprecatedPropertycCs|j}tjdj|d�t�dS)Nz+{cls}.async is deprecated; use {cls}.async_)�cls)r�warnings�warn�format�DeprecationWarning)r"r�Zclsnamerrrr�Ps z_AsyncDeprecatedProperty.warncCs|j|�|dk r|jSdS)NF)r��async_)r"�instancer�rrr�__get__Vs z _AsyncDeprecatedProperty.__get__cCs|jt|��t|d|�dS)Nr�)r��typer2)r"r�r7rrr�__set__\sz _AsyncDeprecatedProperty.__set__N)rr r r�r�r�rrrrr�Osr�c@sLeZdZdZe�e�d<dd�Zdd�Zdd�Zd d �Z d d �Z d d�Z dS)� DocumentLSF�asynccCsdS)NFr)r"rrr� _get_asyncgszDocumentLS._get_asynccCs|rtjjd��dS)Nz.asynchronous document loading is not supported)r/r0r1)r"�flagrrr� _set_asyncjszDocumentLS._set_asynccCs td��dS)Nz'haven't figured out what this means yet)rO)r"rrr�abortoszDocumentLS.abortcCs td��dS)Nzhaven't written this yet)rO)r"rBrrr�loaduszDocumentLS.loadcCs td��dS)Nzhaven't written this yet)rO)r"rbrrr�loadXMLxszDocumentLS.loadXMLcCs*|dkr|}n|j|k r"tjj��|j�S)N)Z ownerDocumentr/r0ZWrongDocumentErrZtoxml)r"Zsnoderrr�saveXML{s   zDocumentLS.saveXMLN) rr r r�r��localsr�r�r�r�r�r�rrrrr�as r�c@s,eZdZdZdZdd�Zdd�Zdd�Zd S) �DOMImplementationLSrrcCsF|dk rtjjd��||jkr$t�S||jkr:tjjd��td��dS)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r/r0r1�MODE_SYNCHRONOUSr�MODE_ASYNCHRONOUSrN)r"�modeZ schemaTyperrr�createDOMBuilder�s  z$DOMImplementationLS.createDOMBuildercCs td��dS)Nz-the writer interface hasn't been written yet!)rO)r"rrr�createDOMWriter�sz#DOMImplementationLS.createDOMWritercCst�S)N)r)r"rrr�createDOMInputSource�sz(DOMImplementationLS.createDOMInputSourceN)rr r r�r�r�r�r�rrrrr��s  r�)rEr�Zxml.domr/Zxml.dom.NodeFilterr�__all__rrr-�objectrrr}r�r�r�rrrr�s    %,1"