B � fs0�@s�dZddlZddlZddlZddlmZdddgZGdd�d�ZGd d�d�Z d d �Z Gd d�de �Z Gd d�de �Z Gdd�d�Z[Gdd�d�ZGdd�d�ZdS)z4Implementation of the DOM Level 3 'LS-Load' feature.�N)� NodeFilter� DOMBuilder�DOMEntityResolver�DOMInputSourcec@s\eZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZdZdS)�Optionsz�Features 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__�__doc__� 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�7/opt/alt/python37/lib64/python3.7/xml/dom/xmlbuilder.pyr s(rc@s&eZdZdZdZdZdZdZdZdZ eeee fZ dd�Z dd �Z d d �Z d d �Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdgdgdgdgdgdgd gd!gd"gd#gd"d$gd%gd&gd'gd(gd)gd*gd+gd,gd-ggdd!d"d$d(d.d'd+d-g d/gd0gd1gd2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�ZdS)=rNr���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_filtercCs�|�|�rx|rdpd}y|jt|�|f}Wn(tk rTtj�d|f�d�Yq�Xx4|D]\}}t|j||�q\Wntj� 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#r6rrrr,ZszDOMBuilder.supportsFeaturecCst|�|rdpdf}||jkS)Nrr)r.r-)r#r6r7�keyrrr� canSetFeature]szDOMBuilder.canSetFeature)r r)r r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)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)r r)r rcCs�t|�}y t|j|�Stk r�|dkrj|j}|joh|joh|joh|joh|jpf|j pf|j pf|j pf|j St j�dt|���YnXdS)Nrzfeature %s not known)r.�getattrr"�AttributeErrorrrrrr rrrrr0r1r4r5)r#r6Zxname�optionsrrr� getFeature�s  zDOMBuilder.getFeaturecCs.|jr|j�d|�}nt��d|�}|�|�S)N)r%� resolveEntityr�parse)r#�uri�inputrrr�parseURI�szDOMBuilder.parseURIcCsRt�|j�}|j|_|j|_|j}|dkrF|jrFddl}|j�|j�}|� ||�S)Nr) �copyr"rr� byteStream�systemId�urllib.request�requestZurlopen�_parse_bytestream)r#rDr?�fp�urllibrrrrB�s zDOMBuilder.parsecCs||jkrtd��td��dS)Nznot a legal actionzHaven't written this yet...)�_legal_actions� ValueError�NotImplementedError)r#rDZcnode�actionrrr�parseWithContext�s zDOMBuilder.parseWithContextcCs ddl}|jj�|�}|�|�S)Nr)Zxml.dom.expatbuilderr1Z expatbuilderZ makeBuilderZ parseFile)r#�streamr?r0ZbuilderrrrrK�szDOMBuilder._parse_bytestream)rr r r%rrZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErNr$r&r'r(r)r*r+r9r,r<r-r@rErBrRrKrrrrr-st   cCs|���dd�S)N�-�_)�lower�replace)r6rrrr.�sr.c@s0eZdZdZdd�Zdd�Zdd�Zdd �Zd S) r)�_openerc Cs�|dk s t�t�}||_||_|���|�|_|�|�|_ddl }ddl }|j � |�}|\}}} } } } | r�| � d�s�|�| �d} ||| | | | f}|j �|�|_|S)Nr�/)�AssertionErrorr�publicIdrH� _get_opener�openrG�_guess_media_encoding�encoding� posixpathZ urllib.parserBZurlparse�endswith�dirnameZ urlunparse�baseURI) r#r[rH�sourcer`rM�partsZschemeZnetloc�pathZparamsZqueryZfragmentrrrrA�s   zDOMEntityResolver.resolveEntitycCs,y|jStk r&|��|_|jSXdS)N)rXr>�_create_opener)r#rrrr\�s  zDOMEntityResolver._get_openercCsddl}|j��S)Nr)rIrJZ build_opener)r#rMrrrrg�sz DOMEntityResolver._create_openercCsF|j��}d|krBx.|��D]"}|�d�r|�dd�d��SqWdS)Nz Content-Typezcharset=�=r)rG�infoZgetplist� startswith�splitrV)r#rdriZparamrrrr^�s   z'DOMEntityResolver._guess_media_encodingN)rr r � __slots__rAr\rgr^rrrrr�s c@s�eZdZdZdd�Zdd�Zdd�Zdd �Zd d �Zd d �Z dd�Z dd�Z dd�Z dd�Z dd�Zdd�Zdd�Zdd�Zdd�Zd S)!r)rG�characterStream� stringDatar_r[rHrccCs.d|_d|_d|_d|_d|_d|_d|_dS)N)rGrmrnr_r[rHrc)r#rrrr$szDOMInputSource.__init__cCs|jS)N)rG)r#rrr�_get_byteStreamszDOMInputSource._get_byteStreamcCs ||_dS)N)rG)r#rGrrr�_set_byteStreamszDOMInputSource._set_byteStreamcCs|jS)N)rm)r#rrr�_get_characterStreamsz#DOMInputSource._get_characterStreamcCs ||_dS)N)rm)r#rmrrr�_set_characterStreamsz#DOMInputSource._set_characterStreamcCs|jS)N)rn)r#rrr�_get_stringDataszDOMInputSource._get_stringDatacCs ||_dS)N)rn)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)r[)r#rrr� _get_publicId"szDOMInputSource._get_publicIdcCs ||_dS)N)r[)r#r[rrr� _set_publicId$szDOMInputSource._set_publicIdcCs|jS)N)rH)r#rrr� _get_systemId'szDOMInputSource._get_systemIdcCs ||_dS)N)rH)r#rHrrr� _set_systemId)szDOMInputSource._set_systemIdcCs|jS)N)rc)r#rrr� _get_baseURI,szDOMInputSource._get_baseURIcCs ||_dS)N)rc)r#rCrrr� _set_baseURI.szDOMInputSource._set_baseURIN)rr r rlr$rorprqrrrsrurvrwrxryrzr{r|r}rrrrrs  c@s>eZdZdZdZdZdZdZej Z dd�Z dd �Z d d �Z d S) �DOMBuilderFilterzSElement filter which can be used to tailor construction of a DOM instance. rrr r!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 r�Z FILTER_REJECTZ FILTER_SKIPZFILTER_INTERRUPTrZSHOW_ALLrr�r�r�rrrrr~2sr~c@sDeZdZdZdZdd�Zdd�Zdd�Zd d �Zd d �Z d d�Z dS)� DocumentLSz=Mixin to create documents that conform to the load/save spec.FcCsdS)NFr)r#rrr� _get_asyncTszDocumentLS._get_asynccCs|rtj�d��dS)Nz.asynchronous document loading is not supported)r0r1r2)r#�flagrrr� _set_asyncWszDocumentLS._set_asynccCs td��dS)Nz'haven't figured out what this means yet)rP)r#rrr�abort\szDocumentLS.abortcCs td��dS)Nzhaven't written this yet)rP)r#rCrrr�loadbszDocumentLS.loadcCs td��dS)Nzhaven't written this yet)rP)r#rdrrr�loadXMLeszDocumentLS.loadXMLcCs*|dkr|}n|j|k r"tj���|��S)N)Z ownerDocumentr0r1ZWrongDocumentErrZtoxml)r#Zsnoderrr�saveXMLhs   zDocumentLS.saveXMLN) rr r r Zasync_r�r�r�r�r�r�rrrrr�Osr�c@s,eZdZdZdZdd�Zdd�Zdd�Zd S) �DOMImplementationLSrrcCsF|dk rtj�d��||jkr$t�S||jkr:tj�d��td��dS)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r0r1r2�MODE_SYNCHRONOUSr�MODE_ASYNCHRONOUSrO)r#�modeZ schemaTyperrr�createDOMBuilderts  z$DOMImplementationLS.createDOMBuildercCs td��dS)Nz-the writer interface hasn't been written yet!)rP)r#rrr�createDOMWritersz#DOMImplementationLS.createDOMWritercCst�S)N)r)r#rrr�createDOMInputSource�sz(DOMImplementationLS.createDOMInputSourceN)rr r r�r�r�r�r�rrrrr�ps  r�)r rF�warningsZxml.domr0Zxml.dom.NodeFilterr�__all__rrr.�objectrrr~r�r�rrrr�s   %,1!