B g<@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_schemaZvalidatedatatype_normalizationcreate_entity_ref_nodesentitieswhitespace_in_element_contentcdata_sectionscommentscharset_overrides_xml_encodinginfosetsupported_mediatypes_only errorHandlerfilterrr5/opt/alt/python37/lib/python3.7/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|_dS)N)r_options)selfrrr__init__:szDOMBuilder.__init__cCs|jS)N)entityResolver)r"rrr_get_entityResolver=szDOMBuilder._get_entityResolvercCs ||_dS)N)r$)r"r$rrr_set_entityResolver?szDOMBuilder._set_entityResolvercCs|jS)N)r)r"rrr_get_errorHandlerBszDOMBuilder._get_errorHandlercCs ||_dS)N)r)r"rrrr_set_errorHandlerDszDOMBuilder._set_errorHandlercCs|jS)N)r)r"rrr _get_filterGszDOMBuilder._get_filtercCs ||_dS)N)r)r"rrrr _set_filterIszDOMBuilder._set_filtercCs||rx|rdpd}y|jt||f}Wn(tk rTtjd|fdYqXx4|D]\}}t|j||q\Wntj dt |dS)Nrrzunsupported feature: %rzunknown feature: ) supportsFeature _settings _name_xformKeyErrorxmldomNotSupportedErrsetattrr! NotFoundErrrepr)r"namestateZsettingsvaluerrr setFeatureLs  zDOMBuilder.setFeaturecCst|jt|S)N)hasattrr!r-)r"r5rrrr+ZszDOMBuilder.supportsFeaturecCst||rdpdf}||jkS)Nrr)r-r,)r"r5r6keyrrr canSetFeature]szDOMBuilder.canSetFeature)r r)r r)r r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)r r)r r))r r)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 rcCst|}y t|j|Stk r|dkrj|j}|joh|joh|joh|joh|jpf|j pf|j pf|j pf|j St jdt|YnXdS)Nrzfeature %s not known)r-getattrr!AttributeErrorrrrrr rrrrr/r0r3r4)r"r5Zxnameoptionsrrr getFeatures  zDOMBuilder.getFeaturecCs.|jr|jd|}ntd|}||S)N)r$ resolveEntityrparse)r"uriinputrrrparseURIszDOMBuilder.parseURIcCsRt|j}|j|_|j|_|j}|dkrF|jrFddl}|j|j}| ||S)Nr) copyr!rr byteStreamsystemIdurllib.requestrequestZurlopen_parse_bytestream)r"rCr>fpurllibrrrrAs zDOMBuilder.parsecCs||jkrtdtddS)Nznot a legal actionzHaven't written this yet...)_legal_actions ValueErrorNotImplementedError)r"rCZcnodeactionrrrparseWithContexts zDOMBuilder.parseWithContextcCs ddl}|jj|}||S)Nr)Zxml.dom.expatbuilderr0Z expatbuilderZ makeBuilderZ parseFile)r"streamr>r/ZbuilderrrrrJszDOMBuilder._parse_bytestream)rr r r$rrZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErMr#r%r&r'r(r)r*r8r+r;r,r?rDrArQrJrrrrr-st   cCs|ddS)N-_)lowerreplace)r5rrrr-sr-c@s0eZdZdZddZddZddZdd Zd S) r)_openerc Cst}||_||_|||_|||_ddl}ddl }|j |}|\}}} } } } | r| ds| | d} ||| | | | f}|j ||_|S)Nr/)rpublicIdrG _get_openeropenrF_guess_media_encodingencoding posixpathZ urllib.parserAZurlparseendswithdirnameZ urlunparsebaseURI) r"rYrGsourcer^rLpartsZschemeZnetlocpathparamsZqueryZfragmentrrrr@s  zDOMEntityResolver.resolveEntitycCs,y|jStk r&||_|jSXdS)N)rWr=_create_opener)r"rrrrZs  zDOMEntityResolver._get_openercCsddl}|jS)Nr)rHrIZ build_opener)r"rLrrrrfsz DOMEntityResolver._create_openercCsF|j}d|krBx.|D]"}|dr|dddSqWdS)Nz Content-Typezcharset==r)rFinfoZgetplist startswithsplitrU)r"rbrhZparamrrrr\s   z'DOMEntityResolver._guess_media_encodingN)rr r __slots__r@rZrfr\rrrrrs c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!r)rFcharacterStream stringDatar]rYrGracCs.d|_d|_d|_d|_d|_d|_d|_dS)N)rFrlrmr]rYrGra)r"rrrr#szDOMInputSource.__init__cCs|jS)N)rF)r"rrr_get_byteStreamszDOMInputSource._get_byteStreamcCs ||_dS)N)rF)r"rFrrr_set_byteStreamszDOMInputSource._set_byteStreamcCs|jS)N)rl)r"rrr_get_characterStreamsz#DOMInputSource._get_characterStreamcCs ||_dS)N)rl)r"rlrrr_set_characterStreamsz#DOMInputSource._set_characterStreamcCs|jS)N)rm)r"rrr_get_stringDataszDOMInputSource._get_stringDatacCs ||_dS)N)rm)r"datarrr_set_stringDataszDOMInputSource._set_stringDatacCs|jS)N)r])r"rrr _get_encodingszDOMInputSource._get_encodingcCs ||_dS)N)r])r"r]rrr _set_encodingszDOMInputSource._set_encodingcCs|jS)N)rY)r"rrr _get_publicId"szDOMInputSource._get_publicIdcCs ||_dS)N)rY)r"rYrrr _set_publicId$szDOMInputSource._set_publicIdcCs|jS)N)rG)r"rrr _get_systemId'szDOMInputSource._get_systemIdcCs ||_dS)N)rG)r"rGrrr _set_systemId)szDOMInputSource._set_systemIdcCs|jS)N)ra)r"rrr _get_baseURI,szDOMInputSource._get_baseURIcCs ||_dS)N)ra)r"rBrrr _set_baseURI.szDOMInputSource._set_baseURIN)rr r rkr#rnrorprqrrrtrurvrwrxryrzr{r|rrrrrs  c@s:eZdZdZdZdZdZejZ ddZ ddZ d d Z d S) DOMBuilderFilterrrrr cCs|jS)N) whatToShow)r"rrr_get_whatToShowCsz DOMBuilderFilter._get_whatToShowcCs|jS)N) FILTER_ACCEPT)r"elementrrr acceptNodeFszDOMBuilderFilter.acceptNodecCs|jS)N)r)r"rrrrstartContainerIszDOMBuilderFilter.startContainerN) rr r rZ FILTER_REJECTZ FILTER_SKIPZFILTER_INTERRUPTrZSHOW_ALLr~rrrrrrrr}2s r}c@s@eZdZdZddZddZddZdd Zd d Zd d Z dS) DocumentLSFcCsdS)NFr)r"rrr _get_asyncTszDocumentLS._get_asynccCs|rtjddS)Nz.asynchronous document loading is not supported)r/r0r1)r"flagrrr _set_asyncWszDocumentLS._set_asynccCs tddS)Nz'haven't figured out what this means yet)rO)r"rrrabort\szDocumentLS.abortcCs tddS)Nzhaven't written this yet)rO)r"rBrrrloadbszDocumentLS.loadcCs tddS)Nzhaven't written this yet)rO)r"rbrrrloadXMLeszDocumentLS.loadXMLcCs*|dkr|}n|j|k r"tj|S)N)Z ownerDocumentr/r0ZWrongDocumentErrZtoxml)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)r/r0r1MODE_SYNCHRONOUSrMODE_ASYNCHRONOUSrN)r"modeZ schemaTyperrrcreateDOMBuilderts  z$DOMImplementationLS.createDOMBuildercCs tddS)Nz-the writer interface hasn't been written yet!)rO)r"rrrcreateDOMWritersz#DOMImplementationLS.createDOMWritercCstS)N)r)r"rrrcreateDOMInputSourcesz(DOMImplementationLS.createDOMInputSourceN)rr r rrrrrrrrrrps  r)rEwarningsZxml.domr/Zxml.dom.NodeFilterr__all__rrr-objectrrr}rrrrrrs   %,1!