o [dc0@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_entitiesexternal_dtd_subsetvalidate_if_schemavalidatedatatype_normalizationcreate_entity_ref_nodesentitieswhitespace_in_element_contentcdata_sectionscommentscharset_overrides_xml_encodinginfosetsupported_mediatypes_only errorHandlerfilterrr)/usr/lib/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$r1)r'rrrr _set_errorHandlerCr0zDOMBuilder._set_errorHandlercCr)r$rr&rrr _get_filterFr-zDOMBuilder._get_filtercCr.r$r4)r'rrrr _set_filterHr0zDOMBuilder._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'namestatesettingsvaluerrr setFeatureKs    zDOMBuilder.setFeaturecCst|jt|Sr$)hasattrr%r9)r'rArrr r7YzDOMBuilder.supportsFeaturecCst||rdpdf}||jvS)Nrr)r9r8)r'rArBkeyrrr canSetFeature\s zDOMBuilder.canSetFeaturer r)r r)rr)rr)rr)rr)rrrrrr)rrrr)rr)rrrrrr)rr)rrrrrrrr) rJrKrLrMrO)rrrNrPrRrrr rr r)rPrQrR)rr)rrrSrTrUcCst|}zt|j|WStyA|dkr7|j}|jo4|jo4|jo4|jo4|jp3|j p3|j p3|j p3|j YSt jdt|w)Nrzfeature %s not known)r9getattrr%AttributeErrorrrrrr rrrrr;r<r?r@)r'rAxnameoptionsrrr getFeatures2  zDOMBuilder.getFeaturecCs.|jr |jd|}ntd|}||Sr$)r+ resolveEntityrparse)r'uriinputrrr parseURIs zDOMBuilder.parseURIcCsRt|j}|j|_|j|_|j}|dur#|jr#ddl}|j|j}| ||SNr) copyr%rr byteStreamsystemIdurllib.requestrequesturlopen_parse_bytestream)r'r^rYfpurllibrrr r\s  zDOMBuilder.parsecCs||jvr tdtd)Nznot a legal actionzHaven't written this yet...)_legal_actions ValueErrorNotImplementedError)r'r^cnodeactionrrr parseWithContexts zDOMBuilder.parseWithContextcCs ddl}|jj|}||Sr`)xml.dom.expatbuilderr< expatbuilder makeBuilder parseFile)r'streamrYr;builderrrr rgs zDOMBuilder._parse_bytestream)rr r r+rrACTION_REPLACEACTION_APPEND_AS_CHILDRENACTION_INSERT_AFTERACTION_INSERT_BEFORErjr(r,r/r2r3r5r6rEr7rIr8rZr_r\rorgrrrr r,s     "% = rcCs|ddS)N-_)lowerreplace)rArrr r9rGr9c@s0eZdZdZddZddZddZdd Zd S) r)_openerc Cs|dusJt}||_||_|||_|||_ddl}ddl }|j |}|\}}} } } } | rP| dsP| | d} ||| | | | f}|j ||_|S)Nr/)rpublicIdrc _get_openeropenrb_guess_media_encodingencoding posixpath urllib.parser\urlparseendswithdirname urlunparsebaseURI) r'rrcsourcerripartsschemenetlocpathparamsqueryfragmentrrr r[s   zDOMEntityResolver.resolveEntitycCs,z|jWSty||_|jYSwr$)r~rW_create_openerr&rrr rs    zDOMEntityResolver._get_openercCsddl}|jSr`)rdre build_opener)r'rirrr rs z DOMEntityResolver._create_openercCsJ|j}d|vr!|D]}|dr |dddSq dSdS)Nz Content-Typezcharset==r)rbinfogetplist startswithsplitr|)r'rrparamrrr rs   z'DOMEntityResolver._guess_media_encodingN)rr r __slots__r[rrrrrrr rs  rc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!rrbcharacterStream stringDatarrrcrcCs.d|_d|_d|_d|_d|_d|_d|_dSr$rr&rrr r(s zDOMInputSource.__init__cCr)r$rbr&rrr _get_byteStream r-zDOMInputSource._get_byteStreamcCr.r$r)r'rbrrr _set_byteStreamr0zDOMInputSource._set_byteStreamcCr)r$rr&rrr _get_characterStreamr-z#DOMInputSource._get_characterStreamcCr.r$r)r'rrrr _set_characterStreamr0z#DOMInputSource._set_characterStreamcCr)r$rr&rrr _get_stringDatar-zDOMInputSource._get_stringDatacCr.r$r)r'datarrr _set_stringDatar0zDOMInputSource._set_stringDatacCr)r$rr&rrr _get_encodingr-zDOMInputSource._get_encodingcCr.r$r)r'rrrr _set_encodingr0zDOMInputSource._set_encodingcCr)r$rr&rrr _get_publicId!r-zDOMInputSource._get_publicIdcCr.r$r)r'rrrr _set_publicId#r0zDOMInputSource._set_publicIdcCr)r$rcr&rrr _get_systemId&r-zDOMInputSource._get_systemIdcCr.r$r)r'rcrrr _set_systemId(r0zDOMInputSource._set_systemIdcCr)r$rr&rrr _get_baseURI+r-zDOMInputSource._get_baseURIcCr.r$rr'r]rrr _set_baseURI-r0zDOMInputSource._set_baseURIN)rr r rr(rrrrrrrrrrrrrrrrrr rs"  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. rr!r"r#cCr)r$) whatToShowr&rrr _get_whatToShowBr-z DOMBuilderFilter._get_whatToShowcCr)r$ FILTER_ACCEPTr'elementrrr acceptNodeEr-zDOMBuilderFilter.acceptNodecCr)r$rrrrr startContainerHr-zDOMBuilderFilter.startContainerN)rr r r r FILTER_REJECT FILTER_SKIPFILTER_INTERRUPTrSHOW_ALLrrrrrrrr r1s  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)r;r<r=)r'flagrrr _set_asyncVs zDocumentLS._set_asynccCtd)Nz'haven't figured out what this means yetrlr&rrr abort[szDocumentLS.abortcCrNzhaven't written this yetrrrrr loadazDocumentLS.loadcCrrr)r'rrrr loadXMLdrzDocumentLS.loadXMLcCs0|dur |}|S|j|urtj|Sr$) ownerDocumentr;r<WrongDocumentErrtoxml)r'snoderrr saveXMLgs  zDocumentLS.saveXMLN) rr r r async_rrrrrrrrrr rNs rc@s,eZdZdZdZddZddZddZd S) DOMImplementationLSrr!cCsB|dur tjd||jkrtS||jkrtjdtd)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r;r<r=MODE_SYNCHRONOUSrMODE_ASYNCHRONOUSrk)r'mode schemaTyperrr createDOMBuilderss  z$DOMImplementationLS.createDOMBuildercCr)Nz-the writer interface hasn't been written yet!rr&rrr createDOMWriter~sz#DOMImplementationLS.createDOMWritercCstSr$)rr&rrr createDOMInputSourcer-z(DOMImplementationLS.createDOMInputSourceN)rr r rrrrrrrrr ros  r)r raxml.domr;xml.dom.NodeFilterr__all__rrr9objectrrrrrrrrr s  %,1!