o ?Ogc0@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 errorHandlerfilterrr9/opt/alt/python310/lib64/python3.10/xml/dom/xmlbuilder.pyr s* rc @s`eZdZdZdZdZdZdZdZdZ eeee fZ ddZ dd Z d d Z d d ZddZddZddZddZddZddZiddgddgddgddgddgddgd d gd!d!gd"d"gd#d#gd$d"d$gd%d%gd&d&gd'd'gd(d(gd)d)gd*d*gd+gd,gd-gggd.d/gd0gd1gd2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<ZdS)=rNrcCs t|_dSN)r_optionsselfrrr__init__9s zDOMBuilder.__init__cC|jSr"entityResolverr$rrr_get_entityResolver<zDOMBuilder._get_entityResolvercC ||_dSr"r()r%r)rrr_set_entityResolver> zDOMBuilder._set_entityResolvercCr'r"rr$rrr_get_errorHandlerAr+zDOMBuilder._get_errorHandlercCr,r"r/)r%rrrr_set_errorHandlerCr.zDOMBuilder._set_errorHandlercCr'r"rr$rrr _get_filterFr+zDOMBuilder._get_filtercCr,r"r2)r%rrrr _set_filterHr.zDOMBuilder._set_filtercCs||r8|r dp d}z |jt||f}Wnty'tjd|fdw|D] \}}t|j||q*dStj dt |)Nrrzunsupported feature: %rzunknown feature: ) supportsFeature _settings _name_xformKeyErrorxmldomNotSupportedErrsetattrr# NotFoundErrrepr)r%namestateZsettingsvaluerrr setFeatureKs    zDOMBuilder.setFeaturecCst|jt|Sr")hasattrr#r7)r%r?rrrr5YzDOMBuilder.supportsFeaturecCst||rdpdf}||jvS)Nrr)r7r6)r%r?r@keyrrr canSetFeature\s zDOMBuilder.canSetFeaturer r)r r)rr)rr)rr)rr)rrrrrr)rrrr)rr)rrrrrr)rr)rrrrrrrr) rGrHrIrJrL)rrrKrMrOrrr rr r)rMrNrO)rr)rrrPrQrRcCst|}zt|j|WStyA|dkr7|j}|jo4|jo4|jo4|jo4|jp3|j p3|j p3|j p3|j YSt jdt|w)Nrzfeature %s not known)r7getattrr#AttributeErrorrrrrr rrrrr9r:r=r>)r%r?Zxnameoptionsrrr getFeatures2  zDOMBuilder.getFeaturecCs.|jr |jd|}ntd|}||Sr")r) resolveEntityrparse)r%uriinputrrrparseURIs zDOMBuilder.parseURIcCsRt|j}|j|_|j|_|j}|dur#|jr#ddl}|j|j}| ||SNr) copyr#rr byteStreamsystemIdurllib.requestrequestZurlopen_parse_bytestream)r%rZrUfpurllibrrrrXs  zDOMBuilder.parsecCs||jvr tdtd)Nznot a legal actionzHaven't written this yet...)_legal_actions ValueErrorNotImplementedError)r%rZZcnodeactionrrrparseWithContexts zDOMBuilder.parseWithContextcCs ddl}|jj|}||Sr\)Zxml.dom.expatbuilderr:Z expatbuilderZ makeBuilderZ parseFile)r%streamrUr9Zbuilderrrrrbs zDOMBuilder._parse_bytestream)rr r r)rrZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErer&r*r-r0r1r3r4rBr5rFr6rVr[rXrirbrrrrr,s     "% = rcCs|ddS)N-_)lowerreplace)r?rrrr7rDr7c@s0eZdZdZddZddZddZdd Zd S) r)_openerc Cs|dusJt}||_||_|||_|||_ddl}ddl }|j |}|\}}} } } } | rP| dsP| | d} ||| | | | f}|j ||_|S)Nr/)rpublicIdr_ _get_openeropenr^_guess_media_encodingencoding posixpathZ urllib.parserXZurlparseendswithdirnameZ urlunparsebaseURI) r%rqr_sourcervrdpartsZschemeZnetlocpathparamsZqueryZfragmentrrrrWs   zDOMEntityResolver.resolveEntitycCs,z|jWSty||_|jYSwr")rorT_create_openerr$rrrrrs    zDOMEntityResolver._get_openercCsddl}|jSr\)r`raZ build_opener)r%rdrrrr~s z DOMEntityResolver._create_openercCsJ|j}d|vr!|D]}|dr |dddSq dSdS)Nz Content-Typezcharset==r)r^infoZgetplist startswithsplitrm)r%rzrZparamrrrrts   z'DOMEntityResolver._guess_media_encodingN)rr r __slots__rWrrr~rtrrrrrs  rc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!rr^characterStream stringDatarurqr_rycCs.d|_d|_d|_d|_d|_d|_d|_dSr"rr$rrrr&s zDOMInputSource.__init__cCr'r"r^r$rrr_get_byteStream r+zDOMInputSource._get_byteStreamcCr,r"r)r%r^rrr_set_byteStreamr.zDOMInputSource._set_byteStreamcCr'r"rr$rrr_get_characterStreamr+z#DOMInputSource._get_characterStreamcCr,r"r)r%rrrr_set_characterStreamr.z#DOMInputSource._set_characterStreamcCr'r"rr$rrr_get_stringDatar+zDOMInputSource._get_stringDatacCr,r"r)r%datarrr_set_stringDatar.zDOMInputSource._set_stringDatacCr'r"rur$rrr _get_encodingr+zDOMInputSource._get_encodingcCr,r"r)r%rurrr _set_encodingr.zDOMInputSource._set_encodingcCr'r"rqr$rrr _get_publicId!r+zDOMInputSource._get_publicIdcCr,r"r)r%rqrrr _set_publicId#r.zDOMInputSource._set_publicIdcCr'r"r_r$rrr _get_systemId&r+zDOMInputSource._get_systemIdcCr,r"r)r%r_rrr _set_systemId(r.zDOMInputSource._set_systemIdcCr'r"ryr$rrr _get_baseURI+r+zDOMInputSource._get_baseURIcCr,r"rr%rYrrr _set_baseURI-r.zDOMInputSource._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!cCr'r") whatToShowr$rrr_get_whatToShowBr+z DOMBuilderFilter._get_whatToShowcCr'r" FILTER_ACCEPTr%Zelementrrr acceptNodeEr+zDOMBuilderFilter.acceptNodecCr'r"rrrrrstartContainerHr+zDOMBuilderFilter.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)r9r:r;)r%flagrrr _set_asyncVs zDocumentLS._set_asynccCtd)Nz'haven't figured out what this means yetrgr$rrrabort[szDocumentLS.abortcCrNzhaven't written this yetrrrrrloadazDocumentLS.loadcCrrr)r%rzrrrloadXMLdrzDocumentLS.loadXMLcCs0|dur |}|S|j|urtj|Sr")Z ownerDocumentr9r:ZWrongDocumentErrZtoxml)r%ZsnoderrrsaveXMLgs  zDocumentLS.saveXMLN) rr r r Zasync_rrrrrrrrrrrNs rc@s,eZdZdZdZddZddZddZd S) DOMImplementationLSrrcCsB|dur tjd||jkrtS||jkrtjdtd)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r9r:r;MODE_SYNCHRONOUSrMODE_ASYNCHRONOUSrf)r%modeZ schemaTyperrrcreateDOMBuilderss  z$DOMImplementationLS.createDOMBuildercCr)Nz-the writer interface hasn't been written yet!rr$rrrcreateDOMWriter~sz#DOMImplementationLS.createDOMWritercCstSr")rr$rrrcreateDOMInputSourcer+z(DOMImplementationLS.createDOMInputSourceN)rr r rrrrrrrrrros  r)r r]Zxml.domr9Zxml.dom.NodeFilterr__all__rrr7objectrrrrrrrrrs  %,1!