3  f2@sdZddlZddlZddlZddlmZdddgZGdddZGd ddZ d d Z Gd dde Z Gd dde Z GdddZ[GdddZGdddZ[GdddZdS)z4Implementation of the DOM Level 3 'LS-Load' feature.N) NodeFilter DOMBuilderDOMEntityResolverDOMInputSourcec@s\eZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZdZdS)OptionszFeatures 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__ namespacesnamespace_declarations validationexternal_parameter_entitiesexternal_general_entitiesZexternal_dtd_subsetvalidate_if_schemaZvalidatedatatype_normalizationcreate_entity_ref_nodesentitieswhitespace_in_element_contentcdata_sectionscommentscharset_overrides_xml_encodinginfosetsupported_mediatypes_only errorHandlerfilterrr7/opt/alt/python36/lib64/python3.6/xml/dom/xmlbuilder.pyr s(rc5@sVeZdZdZdZdZdZdZdZdZ eeee fZ ddZ dd Z d d Z d d ZddZddZddZddZddZddZd4d5gd6d7gd8d9gd:d;gdd?gd@dAgdBdCgdDdEgdFdGgdHdIdJgdKdLgdMdNgdOdPgdQdRgdSdTgdUdVgdWdXgdYdZgd[d\gd]gd^d_d`dadbdcdddedfdgg dhdigdjdkgdldmgiZd*d+Zd,d-Zd.d/Zd0d1Zd2d3ZdS)nrNrcCs 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|fYqXx4|D]\}}t|j||qZWntjj dt |dS)Nrrzunsupported feature: %rzunknown feature: ) supportsFeature _settings _name_xformKeyErrorxmldomNotSupportedErrsetattrr" NotFoundErrrepr)r#namestateZsettingsvaluerrr setFeatureLs  zDOMBuilder.setFeaturecCst|jt|S)N)hasattrr"r.)r#r6rrrr,ZszDOMBuilder.supportsFeaturecCst||rdpdf}||jkS)Nrr)r.r-)r#r6r7keyrrr canSetFeature]szDOMBuilder.canSetFeaturer rrrrrrrrrrrrrrr c Cst|}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 rrrrr0r1r4r5)r#r6Zxnameoptionsrrr getFeatures  zDOMBuilder.getFeaturecCs.|jr|jjd|}ntjd|}|j|S)N)r% resolveEntityrparse)r#uriinputrrrparseURIszDOMBuilder.parseURIcCsRtj|j}|j|_|j|_|j}|dkrF|jrFddl}|jj|j}|j ||S)Nr) copyr"rr byteStreamsystemIdurllib.requestrequestZurlopen_parse_bytestream)r#rDr?fpurllibrrrrBs zDOMBuilder.parsecCs||jkrtdtddS)Nznot a legal actionzHaven't written this yet...)_legal_actions ValueErrorNotImplementedError)r#rDZcnodeactionrrrparseWithContexts zDOMBuilder.parseWithContextcCs ddl}|jjj|}|j|S)Nr)Zxml.dom.expatbuilderr1Z expatbuilderZ makeBuilderZ parseFile)r#streamr?r0ZbuilderrrrrKszDOMBuilder._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)r r)r r)r r)r r)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|jjddS)N-_)lowerreplace)r6rrrr.sr.c@s0eZdZd ZddZddZddZdd Zd S) r_openerc Cs|dk s tt}||_||_|jj||_|j||_ddl }ddl }|j j |}|\}}} } } } | r| j d r|j| d} ||| | | | f}|j j||_|S)Nr/)AssertionErrorrpublicIdrH _get_openeropenrG_guess_media_encodingencoding posixpathZ urllib.parserBZurlparseendswithdirnameZ urlunparsebaseURI) r#r[rHsourcer`rMpartsschemeZnetlocpathZparamsZqueryZfragmentrrrrAs   zDOMEntityResolver.resolveEntityc Cs,y|jStk r&|j|_|jSXdS)N)rXr>_create_opener)r#rrrr\s  zDOMEntityResolver._get_openercCsddl}|jjS)Nr)rIrJZ build_opener)r#rMrrrrhsz DOMEntityResolver._create_openercCsF|jj}d|krBx.|jD]"}|jdr|jdddjSqWdS)Nz Content-Typezcharset==r)rGinfoZgetplist startswithsplitrV)r#rdrjZparamrrrr^s   z'DOMEntityResolver._guess_media_encodingN)rX)rr r __slots__rAr\rhr^rrrrrs c@seZdZd'Zdd Zd d Zd d ZddZddZddZ ddZ ddZ ddZ ddZ ddZddZd d!Zd"d#Zd$d%Zd&S)(rrGcharacterStream stringDatar_r[rHrccCs.d|_d|_d|_d|_d|_d|_d|_dS)N)rGrnror_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)rn)r#rrr_get_characterStreamsz#DOMInputSource._get_characterStreamcCs ||_dS)N)rn)r#rnrrr_set_characterStreamsz#DOMInputSource._set_characterStreamcCs|jS)N)ro)r#rrr_get_stringDataszDOMInputSource._get_stringDatacCs ||_dS)N)ro)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)rGrnror_r[rHrc)rr r rmr$rprqrrrsrtrvrwrxryrzr{r|r}r~rrrrrs" c@s>eZdZdZdZdZdZdZej Z ddZ 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#rrrrstartContainerIszDOMBuilderFilter.startContainerN)rr r r rZ FILTER_REJECTZ FILTER_SKIPZFILTER_INTERRUPTrZSHOW_ALLrrrrrrrrr2src@s$eZdZddZddZddZdS)_AsyncDeprecatedPropertycCs|j}tjdj|dtdS)Nz+{cls}.async is deprecated; use {cls}.async_)cls)rwarningswarnformatDeprecationWarning)r#rZclsnamerrrrPs z_AsyncDeprecatedProperty.warncCs|j||dk r|jSdS)NF)rasync_)r#instancerrrr__get__Vs z _AsyncDeprecatedProperty.__get__cCs|jt|t|d|dS)Nr)rtyper3)r#rr8rrr__set__\sz _AsyncDeprecatedProperty.__set__N)rr r rrrrrrrrOsrc@sPeZdZdZdZeed<ddZddZdd Z d d Z d d Z ddZ dS) DocumentLSz=Mixin to create documents that conform to the load/save spec.FasynccCsdS)NFr)r#rrr _get_asyncgszDocumentLS._get_asynccCs|rtjjddS)Nz.asynchronous document loading is not supported)r0r1r2)r#flagrrr _set_asyncjszDocumentLS._set_asynccCs tddS)Nz'haven't figured out what this means yet)rP)r#rrrabortoszDocumentLS.abortcCs tddS)Nzhaven't written this yet)rP)r#rCrrrloaduszDocumentLS.loadcCs tddS)Nzhaven't written this yet)rP)r#rdrrrloadXMLxszDocumentLS.loadXMLcCs*|dkr|}n|j|k r"tjj|jS)N)Z ownerDocumentr0r1ZWrongDocumentErrZtoxml)r#ZsnoderrrsaveXML{s   zDocumentLS.saveXMLN) rr r r rrlocalsrrrrrrrrrrras rc@s,eZdZdZdZddZddZddZd S) DOMImplementationLSrrcCsF|dk rtjjd||jkr$tS||jkr:tjjdtddS)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r0r1r2MODE_SYNCHRONOUSrMODE_ASYNCHRONOUSrO)r#modeZ schemaTyperrrcreateDOMBuilders  z$DOMImplementationLS.createDOMBuildercCs tddS)Nz-the writer interface hasn't been written yet!)rP)r#rrrcreateDOMWritersz#DOMImplementationLS.createDOMWritercCstS)N)r)r#rrrcreateDOMInputSourcesz(DOMImplementationLS.createDOMInputSourceN)rr r rrrrrrrrrrs  r)r rFrZxml.domr0Zxml.dom.NodeFilterr__all__rrr.objectrrrrrrrrrrs"   %,1"