U e5ds0ã@s¦dZddlZddlZddlZddlmZdddgZGdd„dƒZGd d„dƒZ d d „Z Gd d„de ƒZ Gd d„de ƒZ Gdd„dƒZ[Gdd„dƒZGdd„dƒZdS)z4Implementation of the DOM Level 3 'LS-Load' feature.éN)Ú NodeFilterÚ DOMBuilderÚDOMEntityResolverÚDOMInputSourcec@s\eZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ 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ú*/usr/lib64/python3.8/xml/dom/xmlbuilder.pyr s( rc@s&eZdZdZdZdZdZdZdZdZ eeee fZ dd„Z dd „Z d d „Z d d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdgdgdgdgdgdgd gd!gd"gd#gd"d$gd%gd&gd'gd(gd)gd*gd+gd,gd-ggdd!d"d$d(d.d'd+d-g d/gd0gd1gd2œZd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„ZdS)=rNrééécCs tƒ|_dS©N)rÚ_options©ÚselfrrrÚ__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 rTtj d|f¡d‚YqˆX|D]\}}t|j||ƒqZntj  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|ƒƒSr")Úhasattrr#r3)r%r;rrrr1ZszDOMBuilder.supportsFeaturecCst|ƒ|rdpdf}||jkS)Nrr)r3r2)r%r;r<ÚkeyrrrÚ canSetFeature]szDOMBuilder.canSetFeature©r r©r r©rr©rr©rr©rr©rr©rr©rr©rr©rr©rr©rr©rr©rr©rr©rr©rr©rr©rr)rr©rr©r r©r r)rBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrU)rr)rrrVrWrXcCsŽt|ƒ}zt|j|ƒWStk rˆ|dkrp|j}|joj|joj|joj|joj|jph|j ph|j ph|j ph|j YSt j dt|ƒ¡‚YnXdS)Nrzfeature %s not known)r3Úgetattrr#ÚAttributeErrorrrrrr rrrrr5r6r9r:)r%r;ZxnameÚoptionsrrrÚ getFeature£s0ÿþýÿþýüü zDOMBuilder.getFeaturecCs.|jr|j d|¡}ntƒ d|¡}| |¡Sr")r(Ú resolveEntityrÚparse)r%ÚuriÚinputrrrÚparseURIµszDOMBuilder.parseURIcCsRt |j¡}|j|_|j|_|j}|dkrF|jrFddl}|j |j¡}|  ||¡S©Nr) Úcopyr#rrÚ byteStreamÚsystemIdÚurllib.requestÚrequestZurlopenÚ_parse_bytestream)r%r`r[ÚfpÚurllibrrrr^¼s zDOMBuilder.parsecCs||jkrtdƒ‚tdƒ‚dS)Nznot a legal actionzHaven't written this yet...)Ú_legal_actionsÚ ValueErrorÚNotImplementedError)r%r`ZcnodeÚactionrrrÚparseWithContextÆs zDOMBuilder.parseWithContextcCs ddl}|jj |¡}| |¡Srb)Zxml.dom.expatbuilderr6Z expatbuilderZ makeBuilderZ parseFile)r%Ústreamr[r5ZbuilderrrrrhËszDOMBuilder._parse_bytestream)rr r r(rrZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErkr&r)r*r,r-r/r0r>r1rAr2r\rar^rorhrrrrr-sªÿ ÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿ÷ ÿÿÿÇ= cCs| ¡ dd¡S)Nú-Ú_)ÚlowerÚreplace)r;rrrr3Ñsr3c@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) r)Ú_openerc Cs¤|dk s t‚tƒ}||_||_| ¡ |¡|_| |¡|_ddl }ddl }|j   |¡}|\}}} } } } | r |   d¡s | | ¡d} ||| | | | f}|j  |¡|_|S)Nrú/)ÚAssertionErrorrÚpublicIdreÚ _get_openerÚopenrdÚ_guess_media_encodingÚencodingÚ posixpathZ urllib.parser^ZurlparseÚendswithÚdirnameZ urlunparseÚbaseURI) r%rxreÚsourcer}rjÚpartsZschemeZnetlocÚpathZparamsZqueryZfragmentrrrr]Øs   zDOMEntityResolver.resolveEntitycCs2z|jWStk r,| ¡|_|jYSXdSr")rurZÚ_create_openerr$rrrryîs  zDOMEntityResolver._get_openercCsddl}|j ¡Srb)rfrgZ build_opener)r%rjrrrr„õsz DOMEntityResolver._create_openercCsF|j ¡}d|krB| ¡D]&}| d¡r| dd¡d ¡SqdS)Nz Content-Typezcharset=ú=r)rdÚinfoZgetplistÚ startswithÚsplitrs)r%r�r†Zparamrrrr{ùs    z'DOMEntityResolver._guess_media_encodingN)rr r Ú __slots__r]ryr„r{rrrrrÕs c@sˆeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd S)!r©rdÚcharacterStreamÚ stringDatar|rxrer€cCs.d|_d|_d|_d|_d|_d|_d|_dSr"rŠr$rrrr&szDOMInputSource.__init__cCs|jSr"©rdr$rrrÚ_get_byteStreamszDOMInputSource._get_byteStreamcCs ||_dSr"r�)r%rdrrrÚ_set_byteStreamszDOMInputSource._set_byteStreamcCs|jSr"©r‹r$rrrÚ_get_characterStreamsz#DOMInputSource._get_characterStreamcCs ||_dSr"r�)r%r‹rrrÚ_set_characterStreamsz#DOMInputSource._set_characterStreamcCs|jSr"©rŒr$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"©r€r$rrrÚ _get_baseURI,szDOMInputSource._get_baseURIcCs ||_dSr"r ©r%r_rrrÚ _set_baseURI.szDOMInputSource._set_baseURIN)rr r r‰r&rŽr�r‘r’r”r–r˜r™r›rœržrŸr¡r£rrrrrs  c@s>eZdZdZdZdZdZdZej Z dd„Z 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_whatToShowCsz DOMBuilderFilter._get_whatToShowcCs|jSr"©Ú FILTER_ACCEPT©r%ZelementrrrÚ acceptNodeFszDOMBuilderFilter.acceptNodecCs|jSr"r§r©rrrÚstartContainerIszDOMBuilderFilter.startContainerN)rr r r r¨Z FILTER_REJECTZ FILTER_SKIPZFILTER_INTERRUPTrZSHOW_ALLr¥r¦rªr«rrrrr¤2s r¤c@sDeZdZdZdZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dS)Ú DocumentLSz=Mixin to create documents that conform to the load/save spec.FcCsdS)NFrr$rrrÚ _get_asyncTszDocumentLS._get_asynccCs|rtj d¡‚dS)Nz.asynchronous document loading is not supported)r5r6r7)r%ÚflagrrrÚ _set_asyncWsÿzDocumentLS._set_asynccCs tdƒ‚dS)Nz'haven't figured out what this means yet©rmr$rrrÚabort\sÿzDocumentLS.abortcCs tdƒ‚dS©Nzhaven't written this yetr°r¢rrrÚloadbszDocumentLS.loadcCs tdƒ‚dSr²r°)r%r�rrrÚloadXMLeszDocumentLS.loadXMLcCs*|dkr|}n|j|k r"tj ¡‚| ¡Sr")Z ownerDocumentr5r6ZWrongDocumentErrZtoxml)r%ZsnoderrrÚsaveXMLhs   zDocumentLS.saveXMLN) rr r r Zasync_r­r¯r±r³r´rµrrrrr¬Osr¬c@s,eZdZdZdZdd„Zdd„Zdd„Zd S) ÚDOMImplementationLSrrcCsF|dk rtj d¡‚||jkr$tƒS||jkr:tj d¡‚tdƒ‚dS)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r5r6r7ÚMODE_SYNCHRONOUSrÚMODE_ASYNCHRONOUSrl)r%ÚmodeZ schemaTyperrrÚcreateDOMBuildertsÿ  ÿz$DOMImplementationLS.createDOMBuildercCs tdƒ‚dS)Nz-the writer interface hasn't been written yet!r°r$rrrÚcreateDOMWritersÿz#DOMImplementationLS.createDOMWritercCstƒSr")rr$rrrÚcreateDOMInputSourceƒsz(DOMImplementationLS.createDOMInputSourceN)rr r r·r¸rºr»r¼rrrrr¶ps  r¶)r rcÚwarningsZxml.domr5Zxml.dom.NodeFilterrÚ__all__rrr3Úobjectrrr¤r¬r¶rrrrÚs   %,1!