U :es0@sddlZddlZddlZddlmZdddgZGdddZGdddZd d Z Gd dde Z Gd dde Z Gd ddZ [GdddZGdddZdS)N) NodeFilter DOMBuilderDOMEntityResolverDOMInputSourcec@sXeZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZdS)OptionsTFN)__name__ __module__ __qualname__ namespacesnamespace_declarations validationexternal_parameter_entitiesexternal_general_entitiesZexternal_dtd_subsetvalidate_if_schemavalidatedatatype_normalizationcreate_entity_ref_nodesentitieswhitespace_in_element_contentcdata_sectionscommentscharset_overrides_xml_encodinginfosetsupported_mediatypes_only errorHandlerfilterrr7/usr/local/python38/lib/python3.8/xml/dom/xmlbuilder.pyr s& rc@s&eZdZdZdZdZdZdZdZdZ 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-ggdd!d"d$d(d.d'd+d-g d/gd0gd1gd2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<ZdS)=rNrcCs t|_dSN)r_optionsselfrrr__init__:szDOMBuilder.__init__cCs|jSr"entityResolverr$rrr_get_entityResolver=szDOMBuilder._get_entityResolvercCs ||_dSr"r')r%r(rrr_set_entityResolver?szDOMBuilder._set_entityResolvercCs|jSr"rr$rrr_get_errorHandlerBszDOMBuilder._get_errorHandlercCs ||_dSr"r+)r%rrrr_set_errorHandlerDszDOMBuilder._set_errorHandlercCs|jSr"rr$rrr _get_filterGszDOMBuilder._get_filtercCs ||_dSr"r.)r%rrrr _set_filterIszDOMBuilder._set_filtercCs||rt|rdpd}z|jt||f}Wn(tk rTtjd|fdYqX|D]\}}t|j||qZntj dt |dS)Nrrzunsupported feature: %rzunknown feature: ) supportsFeature _settings _name_xformKeyErrorxmldomNotSupportedErrsetattrr# NotFoundErrrepr)r%namestateZsettingsvaluerrr setFeatureLs   zDOMBuilder.setFeaturecCst|jt|Sr")hasattrr#r3)r%r;rrrr1ZszDOMBuilder.supportsFeaturecCst||rdpdf}||jkS)Nrr)r3r2)r%r;r<keyrrr canSetFeature]szDOMBuilder.canSetFeaturer rr rr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrr rr r)rBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrU)rr)rrrVrWrXcCst|}zt|j|WStk r|dkrp|j}|joj|joj|joj|joj|jph|j ph|j ph|j ph|j YSt jdt|YnXdS)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}|dkrF|jrFddl}|j|j}| ||SNr) copyr#rr byteStreamsystemIdurllib.requestrequesturlopen_parse_bytestream)r%r`r[fpurllibrrrr^s zDOMBuilder.parsecCs||jkrtdtddS)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[r5ZbuilderrrrriszDOMBuilder._parse_bytestream)rr r r(rrZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErlr&r)r*r,r-r/r0r>r1rAr2r\rar^rprirrrrr-s  = cCs|ddS)N-_)lowerreplace)r;rrrr3sr3c@s0eZdZdZddZddZddZdd Zd S) r)_openerc Cst}||_||_|||_|||_ddl}ddl }|j |}|\}}} } } } | r| ds| | d} ||| | | | f}|j ||_|S)Nr/)rpublicIdre _get_openeropenrd_guess_media_encodingencoding posixpathZ urllib.parser^urlparseendswithdirnameZ urlunparsebaseURI) r%rxresourcer}rkpartsZschemeZnetlocpathparamsZqueryZfragmentrrrr]s  zDOMEntityResolver.resolveEntitycCs2z|jWStk r,||_|jYSXdSr")rvrZ_create_openerr$rrrrys  zDOMEntityResolver._get_openercCsddl}|jSrb)rfrgZ build_opener)r%rkrrrrsz DOMEntityResolver._create_openercCsF|j}d|krB|D]&}|dr|dddSqdS)Nz Content-Typezcharset==r)rdinfoZgetplist startswithsplitrt)r%rrZparamrrrr{s    z'DOMEntityResolver._guess_media_encodingN)rr r __slots__r]ryrr{rrrrrs c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!rrdcharacterStream stringDatar|rxrercCs.d|_d|_d|_d|_d|_d|_d|_dSr"rr$rrrr&szDOMInputSource.__init__cCs|jSr"rdr$rrr_get_byteStreamszDOMInputSource._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"rxr$rrr _get_publicId"szDOMInputSource._get_publicIdcCs ||_dSr"r)r%rxrrr _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  c@s:eZdZdZdZdZdZejZ ddZ ddZ d d Z d S) DOMBuilderFilterrrr r!cCs|jSr") whatToShowr$rrr_get_whatToShowCsz DOMBuilderFilter._get_whatToShowcCs|jSr" FILTER_ACCEPTr%elementrrr acceptNodeFszDOMBuilderFilter.acceptNodecCs|jSr"rrrrrstartContainerIszDOMBuilderFilter.startContainerN) rr r rZ FILTER_REJECTZ FILTER_SKIPZFILTER_INTERRUPTrZSHOW_ALLrrrrrrrrr2s rc@s@eZdZdZddZddZddZdd Zd d Zd d Z dS) DocumentLSFcCsdS)NFrr$rrr _get_asyncTszDocumentLS._get_asynccCs|rtjddS)Nz.asynchronous document loading is not supported)r5r6r7)r%flagrrr _set_asyncWszDocumentLS._set_asynccCs tddS)Nz'haven't figured out what this means yetrnr$rrrabort\szDocumentLS.abortcCs tddSNzhaven't written this yetrrrrrloadbszDocumentLS.loadcCs tddSrr)r%rrrrloadXMLeszDocumentLS.loadXMLcCs*|dkr|}n|j|k r"tj|Sr")Z ownerDocumentr5r6ZWrongDocumentErrZtoxml)r%ZsnoderrrsaveXMLhs   zDocumentLS.saveXMLN) rr r Zasync_rrrrrrrrrrrOsrc@s,eZdZdZdZddZddZddZd S) DOMImplementationLSrrcCsF|dk rtjd||jkr$tS||jkr:tjdtddS)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r5r6r7MODE_SYNCHRONOUSrMODE_ASYNCHRONOUSrm)r%modeZ schemaTyperrrcreateDOMBuilderts  z$DOMImplementationLS.createDOMBuildercCs tddS)Nz-the writer interface hasn't been written yet!rr$rrrcreateDOMWritersz#DOMImplementationLS.createDOMWritercCstSr")rr$rrrcreateDOMInputSourcesz(DOMImplementationLS.createDOMInputSourceN)rr r rrrrrrrrrrps  r)rcwarningsZxml.domr5Zxml.dom.NodeFilterr__all__rrr3objectrrrrrrrrrs   %,1!