a DOgc0@sdZddlZddlZddlmZgdZGdddZGdddZd d Z Gd d d e Z Gd dde Z GdddZ [GdddZGdddZdS)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/python39/lib64/python3.9/xml/dom/xmlbuilder.pyr s( rc@seZdZdZdZdZdZdZdZdZ eeee fZ ddZ dd Z d d Z d d ZddZddZddZddZddZddZdgdgdgdgdgdgd gd!gd"gd#gd"d$gd%gd&gd'gd(gd)gd*gd+gd,gd-gggd.d/gd0gd1gd2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<ZdS)=rNrcCs t|_dSN)r_optionsselfrrr__init__9szDOMBuilder.__init__cCs|jSr"entityResolverr$rrr_get_entityResolver<szDOMBuilder._get_entityResolvercCs ||_dSr"r')r%r(rrr_set_entityResolver>szDOMBuilder._set_entityResolvercCs|jSr"rr$rrr_get_errorHandlerAszDOMBuilder._get_errorHandlercCs ||_dSr"r+)r%rrrr_set_errorHandlerCszDOMBuilder._set_errorHandlercCs|jSr"rr$rrr _get_filterFszDOMBuilder._get_filtercCs ||_dSr"r.)r%rrrr _set_filterHszDOMBuilder._set_filtercCs||rr|rdpd}z|jt||f}Wn&tyRtjd|fdYq0|D]\}}t|j||qXntj dt |dS)Nrrzunsupported feature: %rzunknown feature: ) supportsFeature _settings _name_xformKeyErrorxmldomNotSupportedErrsetattrr# NotFoundErrrepr)r%namestateZsettingsvaluerrr setFeatureKs    zDOMBuilder.setFeaturecCst|jt|Sr")hasattrr#r3)r%r;rrrr1YszDOMBuilder.supportsFeaturecCst||rdpdf}||jvS)Nrr)r3r2)r%r;r<keyrrr canSetFeature\szDOMBuilder.canSetFeaturer rr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr) rBrIrJrLrP)rrrOrSrUrrr rr r)rBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrU)rr)rrrVrWrXcCst|}zt|j|WSty|dkrn|j}|joh|joh|joh|joh|jpf|j pf|j pf|j pf|j YSt jdt|Yn0dS)Nrzfeature %s not known)r3getattrr#AttributeErrorrrrrr rrrrr5r6r9r:)r%r;Zxnameoptionsrrr getFeatures0  zDOMBuilder.getFeaturecCs.|jr|jd|}ntd|}||Sr")r( resolveEntityrparse)r%uriinputrrrparseURIszDOMBuilder.parseURIcCsRt|j}|j|_|j|_|j}|durF|jrFddl}|j|j}| ||SNr) copyr#rr byteStreamsystemIdurllib.requestrequestZurlopen_parse_bytestream)r%r`r[fpurllibrrrr^s zDOMBuilder.parsecCs||jvrtdtddS)Nznot a legal actionzHaven't written this yet...)_legal_actions ValueErrorNotImplementedError)r%r`ZcnodeactionrrrparseWithContexts zDOMBuilder.parseWithContextcCs ddl}|jj|}||Srb)Zxml.dom.expatbuilderr6Z expatbuilderZ makeBuilderZ parseFile)r%streamr[r5ZbuilderrrrrhszDOMBuilder._parse_bytestream)rr r r(rrZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErkr&r)r*r,r-r/r0r>r1rAr2r\rar^rorhrrrrr,s  = rcCs|ddS)N-_)lowerreplace)r;rrrr3sr3c@s0eZdZdZddZddZddZdd Zd S) r)_openerc Cs|dus Jt}||_||_|||_|||_ddl}ddl }|j |}|\}}} } } } | r| ds| | d} ||| | | | f}|j ||_|S)Nr/)rpublicIdre _get_openeropenrd_guess_media_encodingencoding posixpathZ urllib.parser^ZurlparseendswithdirnameZ urlunparsebaseURI) r%rwresourcer|rjpartsZschemeZnetlocpathparamsZqueryZfragmentrrrr]s   zDOMEntityResolver.resolveEntitycCs0z|jWSty*||_|jYS0dSr")rurZ_create_openerr$rrrrxs   zDOMEntityResolver._get_openercCsddl}|jSrb)rfrgZ build_opener)r%rjrrrrsz DOMEntityResolver._create_openercCsF|j}d|vrB|D]&}|dr|dddSqdS)Nz Content-Typezcharset==r)rdinfoZgetplist startswithsplitrs)r%rrZparamrrrrzs    z'DOMEntityResolver._guess_media_encodingN)rr r __slots__r]rxrrzrrrrrs rc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!rrdcharacterStream stringDatar{rwrercCs.d|_d|_d|_d|_d|_d|_d|_dSr"rr$rrrr&szDOMInputSource.__init__cCs|jSr"rdr$rrr_get_byteStream szDOMInputSource._get_byteStreamcCs ||_dSr"r)r%rdrrr_set_byteStreamszDOMInputSource._set_byteStreamcCs|jSr"rr$rrr_get_characterStreamsz#DOMInputSource._get_characterStreamcCs ||_dSr"r)r%rrrr_set_characterStreamsz#DOMInputSource._set_characterStreamcCs|jSr"rr$rrr_get_stringDataszDOMInputSource._get_stringDatacCs ||_dSr"r)r%datarrr_set_stringDataszDOMInputSource._set_stringDatacCs|jSr"r{r$rrr _get_encodingszDOMInputSource._get_encodingcCs ||_dSr"r)r%r{rrr _set_encodingszDOMInputSource._set_encodingcCs|jSr"rwr$rrr _get_publicId!szDOMInputSource._get_publicIdcCs ||_dSr"r)r%rwrrr _set_publicId#szDOMInputSource._set_publicIdcCs|jSr"rer$rrr _get_systemId&szDOMInputSource._get_systemIdcCs ||_dSr"r)r%rerrr _set_systemId(szDOMInputSource._set_systemIdcCs|jSr"rr$rrr _get_baseURI+szDOMInputSource._get_baseURIcCs ||_dSr"rr%r_rrr _set_baseURI-szDOMInputSource._set_baseURIN)rr r rr&rrrrrrrrrrrrrrrrrrrs  rc@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|jSr") whatToShowr$rrr_get_whatToShowBsz DOMBuilderFilter._get_whatToShowcCs|jSr" FILTER_ACCEPTr%Zelementrrr acceptNodeEszDOMBuilderFilter.acceptNodecCs|jSr"rrrrrstartContainerHszDOMBuilderFilter.startContainerN)rr r r rZ FILTER_REJECTZ FILTER_SKIPZFILTER_INTERRUPTrZSHOW_ALLrrrrrrrrr1s rc@sDeZdZdZdZddZddZddZd d Zd d Z d dZ dS) DocumentLSz=Mixin to create documents that conform to the load/save spec.FcCsdS)NFrr$rrr _get_asyncSszDocumentLS._get_asynccCs|rtjddS)Nz.asynchronous document loading is not supported)r5r6r7)r%flagrrr _set_asyncVszDocumentLS._set_asynccCs tddS)Nz'haven't figured out what this means yetrmr$rrrabort[szDocumentLS.abortcCs tddSNzhaven't written this yetrrrrrloadaszDocumentLS.loadcCs tddSrr)r%rrrrloadXMLdszDocumentLS.loadXMLcCs*|dur|}n|j|ur"tj|Sr")Z ownerDocumentr5r6ZWrongDocumentErrZtoxml)r%ZsnoderrrsaveXMLgs   zDocumentLS.saveXMLN) rr r r Zasync_rrrrrrrrrrrNsrc@s,eZdZdZdZddZddZddZd S) DOMImplementationLSrrcCsF|durtjd||jkr$tS||jkr:tjdtddS)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r5r6r7MODE_SYNCHRONOUSrMODE_ASYNCHRONOUSrl)r%modeZ schemaTyperrrcreateDOMBuilderss  z$DOMImplementationLS.createDOMBuildercCs tddS)Nz-the writer interface hasn't been written yet!rr$rrrcreateDOMWriter~sz#DOMImplementationLS.createDOMWritercCstSr")rr$rrrcreateDOMInputSourcesz(DOMImplementationLS.createDOMInputSourceN)rr r rrrrrrrrrros  r)r rcZxml.domr5Zxml.dom.NodeFilterr__all__rrr3objectrrrrrrrrrs  %,1!