Your IP : 3.144.79.121
3
� f�2�@s�dZddlZddlZddlZddlmZdddgZGdd�d�ZGd d�d�Z d
d�Z
Gdd�de�ZGd
d�de�Z
Gdd�d�Z[Gdd�d�ZGdd�d�Z[Gdd�d�ZdS)z4Implementation of the DOM Level 3 'LS-Load' feature.�N)�
NodeFilter�
DOMBuilder�DOMEntityResolver�DOMInputSourcec@s\eZdZdZdZdZdZdZdZdZ dZ
dZdZdZ
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/python36/lib64/python3.6/xml/dom/xmlbuilder.pyr
s(rc5@sVeZdZdZdZdZdZdZdZdZ eeee fZ
dd�Zdd �Zd
d�Z
dd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd4d5gd6d7gd8d9gd:d;gd<d=gd>d?gd@dAgdBdCgdDdEgdFdGgdHdIdJgdKdLgdMdNgdOdPgdQdRgdSdTgdUdVgdWdXgdYdZgd[d\gd]gd^d_d`dadbdcdddedfdgg dhdigdjdkgdldmgiZd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�ZdS)nrNr���cCst�|_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#r6rrrr,ZszDOMBuilder.supportsFeaturecCst|�|rdpdf}||jkS)Nrr)r.r-)r#r6r7�keyrrr�
canSetFeature]szDOMBuilder.canSetFeaturer
rrrrrrrrrrrrrrrcCs�t|�}yt|j|�Stk
r�|dkrj|j}|joh|joh|joh|joh|jpf|j pf|j
pf|jpf|jSt
jjdt|���YnXdS)Nrzfeature %s not known)r.�getattrr"�AttributeErrorrrrrr
rrrrr0r1r4r5)r#r6Zxname�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#rDr?�fp�urllibrrrrB�szDOMBuilder.parsecCs||jkrtd��td��dS)Nznot a legal actionzHaven't written this yet...)�_legal_actions�
ValueError�NotImplementedError)r#rDZcnode�actionrrr�parseWithContext�s
zDOMBuilder.parseWithContextcCs ddl}|jjj|�}|j|�S)Nr)Zxml.dom.expatbuilderr1ZexpatbuilderZmakeBuilderZ parseFile)r#�streamr?r0ZbuilderrrrrK�szDOMBuilder._parse_bytestream)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)rr)rr)r
r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr r
r%rrZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErNr$r&r'r(r)r*r+r9r,r<r-r@rErBrRrKrrrrr-s�
cCs|j�jdd�S)N�-�_)�lower�replace)r6rrrr.�sr.c@s0eZdZdZdd�Zdd�Zdd�Zdd �Zd
S)r�_openerc
Cs�t�}||_||_|j�j|�|_|j|�|_ddl}ddl }|j
j|�}|\}}} }
}}| r�| jd�r�|j
| �d} ||| |
||f}|j
j|�|_|S)Nr�/)r�publicIdrH�_get_opener�openrG�_guess_media_encoding�encoding� posixpathZurllib.parserBZurlparse�endswith�dirnameZ
urlunparse�baseURI)
r#rZrH�sourcer_rM�parts�schemeZnetloc�pathZparamsZqueryZfragmentrrrrA�szDOMEntityResolver.resolveEntitycCs,y|jStk
r&|j�|_|jSXdS)N)rXr>�_create_opener)r#rrrr[�s
zDOMEntityResolver._get_openercCsddl}|jj�S)Nr)rIrJZbuild_opener)r#rMrrrrg�sz DOMEntityResolver._create_openercCsF|jj�}d|krBx.|j�D]"}|jd�r|jdd�dj�SqWdS)NzContent-Typezcharset=�=r)rG�infoZgetplist�
startswith�splitrV)r#rcriZparamrrrr]�s
z'DOMEntityResolver._guess_media_encodingN)rX)rr r
� __slots__rAr[rgr]rrrrr�s
c@s�eZdZd'Zdd �Zd
d�Zdd
�Zdd�Zdd�Zdd�Z dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&S)(rrG�characterStream�
stringDatar^rZrHrbcCs.d|_d|_d|_d|_d|_d|_d|_dS)N)rGrmrnr^rZrHrb)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)rZ)r#rrr�
_get_publicId"szDOMInputSource._get_publicIdcCs
||_dS)N)rZ)r#rZrrr�
_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)rb)r#rrr�_get_baseURI,szDOMInputSource._get_baseURIcCs
||_dS)N)rb)r#rCrrr�_set_baseURI.szDOMInputSource._set_baseURIN)rGrmrnr^rZrHrb)rr r
rlr$rorprqrrrsrurvrwrxryrzr{r|r}rrrrrs" c@s>eZdZdZdZdZdZdZej Z
dd�Zdd �Zd
d�Z
dS)
�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
rr�Z
FILTER_REJECTZFILTER_SKIPZFILTER_INTERRUPTrZSHOW_ALLrr�r�r�rrrrr~2sr~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��typer3)r#r�r8rrr�__set__\sz _AsyncDeprecatedProperty.__set__N)rr r
r�r�r�rrrrr�Osr�c@sPeZdZdZdZe�e�d<dd�Zdd�Zdd �Z d
d�Z
dd
�Zdd�ZdS)�
DocumentLSz=Mixin to create documents that conform to the load/save spec.F�asynccCsdS)NFr)r#rrr�
_get_asyncgszDocumentLS._get_asynccCs|rtjjd��dS)Nz.asynchronous document loading is not supported)r0r1r2)r#�flagrrr�
_set_asyncjszDocumentLS._set_asynccCstd��dS)Nz'haven't figured out what this means yet)rP)r#rrr�abortoszDocumentLS.abortcCstd��dS)Nzhaven't written this yet)rP)r#rCrrr�loaduszDocumentLS.loadcCstd��dS)Nzhaven't written this yet)rP)r#rcrrr�loadXMLxszDocumentLS.loadXMLcCs*|dkr|}n|j|k r"tjj��|j�S)N)Z
ownerDocumentr0r1ZWrongDocumentErrZtoxml)r#Zsnoderrr�saveXML{s
zDocumentLS.saveXMLN)
rr r
rr�r��localsr�r�r�r�r�r�rrrrr�asr�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)r0r1r2�MODE_SYNCHRONOUSr�MODE_ASYNCHRONOUSrO)r#�modeZ
schemaTyperrr�createDOMBuilder�s
z$DOMImplementationLS.createDOMBuildercCstd��dS)Nz-the writer interface hasn't been written yet!)rP)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�)rrFr�Zxml.domr0Zxml.dom.NodeFilterr�__all__rrr.�objectrrr~r�r�r�rrrr�<module>s"
%,1"
?>