j fY0@sdZddlZddlZddlmZdddgZGdddZGd ddZd d Z Gd dde Z Gd dde Z GdddZ [GdddZGdddZdS)z4Implementation of the DOM Level 3 'LS-Load' feature.N) NodeFilter DOMBuilderDOMEntityResolverDOMInputSourcec@seZdZdZdZdZdZdZdZdZ 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 errorHandlerfilterrr7/opt/alt/python34/lib64/python3.4/xml/dom/xmlbuilder.pyr s( rc @seZdZdZdZdZdZdZdZdZ eeee fZ ddZ dd Z d d Z d d ZddZddZddZddZddZddZid4gd56d6gd76d8gd96d:gd;6d<gd=6d>gd?6d@gdA6dBgdC6dDgdE6dFgdG6dHdIgdJ6dKgdL6dMgdN6dOgdP6dQgdR6dSgdT6dUgdV6dWgdX6dYgdZ6d[gd\6gd]6d^d_d`dadbdcdddedfg dg6dhgdi6djgdk6dlgdm6Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3ZdS)nrNrcCst|_dS)N)r_options)selfrrr__init__9szDOMBuilder.__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_errorHandlerAszDOMBuilder._get_errorHandlercCs ||_dS)N)r)r#rrrr_set_errorHandlerCszDOMBuilder._set_errorHandlercCs|jS)N)r)r#rrr _get_filterFszDOMBuilder._get_filtercCs ||_dS)N)r)r#rrrr _set_filterHszDOMBuilder._set_filterc Cs|j|r|rdpd}y|jt||f}Wn+tk rktjjd|fYqXxF|D]\}}t|j||qsWntjj dt |dS)Nrrzunsupported feature: %rzunknown feature: ) supportsFeature _settings _name_xformKeyErrorxmldomNotSupportedErrsetattrr" NotFoundErrrepr)r#namestateZsettingsvaluerrr setFeatureKs  zDOMBuilder.setFeaturecCst|jt|S)N)hasattrr"r.)r#r6rrrr,YszDOMBuilder.supportsFeaturecCs+t||rdpdf}||jkS)Nrr)r.r-)r#r6r7keyrrr canSetFeature\szDOMBuilder.canSetFeaturer rrrrrrrrrrrrrrr c Cst|}yt|j|SWntk r|dkr|j}|jo|jo|jo|jo|jp|j p|j p|j p|j St jjdt|YnXdS)Nrzfeature %s not known)r.getattrr"AttributeErrorrrrrr rrrrr0r1r4r5)r#r6Zxnameoptionsrrr getFeatures             zDOMBuilder.getFeaturecCsC|jr!|jjd|}ntjd|}|j|S)N)r% resolveEntityrparse)r#uriinputrrrparseURIs zDOMBuilder.parseURIcCs|tj|j}|j|_|j|_|j}|dkrl|jrlddl}|jj|j}n|j ||S)Nr) copyr"rr byteStreamsystemIdurllib.requestrequestZurlopen_parse_bytestream)r#rDr?fpurllibrrrrBs    zDOMBuilder.parsecCs.||jkrtdntddS)Nznot a legal actionzHaven't written this yet...)_legal_actions ValueErrorNotImplementedError)r#rDZcnodeactionrrrparseWithContextszDOMBuilder.parseWithContextcCs.ddl}|jjj|}|j|S)Nr)Zxml.dom.expatbuilderr1Z expatbuilderZ makeBuilderZ parseFile)r#streamr?r0ZbuilderrrrrKs zDOMBuilder._parse_bytestream)namespace_declarationsr)rTr)rTr)rTr) validationr)rUr)external_general_entitiesr)rVr)rVr)rVr)external_parameter_entitiesr)rWr)rWr)rWr)validate_if_schemar)rXr)create_entity_ref_nodesr)rYr)rYr)rYr)rYr)entitiesr)rZr)rZr)rZr)whitespace_in_element_contentr)r[r)r[r)r[r)cdata_sectionsr)r\r)r\r)r\r)commentsr)r]r)r]r)r]r)charset_overrides_xml_encodingr)r^r)r^r)r^r)infosetr)rTr)rXr)rYr)rZr)r\r)zdatatype_normalizationr)r[r)r]r)r^r)r_r)supported_mediatypes_onlyr)r`r) namespacesr)rar)rar)rar)rr r r%rrZACTION_REPLACEZACTION_APPEND_AS_CHILDRENZACTION_INSERT_AFTERZACTION_INSERT_BEFORErNr$r&r'r(r)r*r+r9r,r<r-r@rErBrRrKrrrrr,sv                                       cCs|jjddS)N-_)lowerreplace)r6rrrr.sr.c@sFeZdZd ZddZddZddZdd Zd S) r_openerc Cst}||_||_|jj||_|j||_ddl}ddl }|j j |}|\}}} } } } | r| j d r|j | d} ||| | | | f}|j j||_n|S)Nr/)rpublicIdrH _get_openeropenrG_guess_media_encodingencoding posixpathZ urllib.parserBZurlparseendswithdirnameZ urlunparsebaseURI) r#rhrHsourcermrMpartsschemeZnetlocpathZparamsZqueryZfragmentrrrrAs   zDOMEntityResolver.resolveEntityc Cs:y |jSWn(tk r5|j|_|jSYnXdS)N)rfr>_create_opener)r#rrrris   zDOMEntityResolver._get_openercCsddl}|jjS)Nr)rIrJZ build_opener)r#rMrrrrus z DOMEntityResolver._create_openercCsb|jj}d|kr^x@|jD]/}|jdr(|jdddjSq(WndS)Nz Content-Typezcharset==r)rGinfoZgetplist startswithsplitrd)r#rqrwZparamrrrrks  z'DOMEntityResolver._guess_media_encodingN)z_opener)rr r __slots__rArirurkrrrrrs    c@seZdZd'Zdd Zd d Zd d ZddZddZddZ ddZ ddZ ddZ ddZ ddZddZd d!Zd"d#Zd$d%Zd&S)(rrGcharacterStream stringDatarlrhrHrpcCsCd|_d|_d|_d|_d|_d|_d|_dS)N)rGr{r|rlrhrHrp)r#rrrr$s      zDOMInputSource.__init__cCs|jS)N)rG)r#rrr_get_byteStream szDOMInputSource._get_byteStreamcCs ||_dS)N)rG)r#rGrrr_set_byteStreamszDOMInputSource._set_byteStreamcCs|jS)N)r{)r#rrr_get_characterStreamsz#DOMInputSource._get_characterStreamcCs ||_dS)N)r{)r#r{rrr_set_characterStreamsz#DOMInputSource._set_characterStreamcCs|jS)N)r|)r#rrr_get_stringDataszDOMInputSource._get_stringDatacCs ||_dS)N)r|)r#datarrr_set_stringDataszDOMInputSource._set_stringDatacCs|jS)N)rl)r#rrr _get_encodingszDOMInputSource._get_encodingcCs ||_dS)N)rl)r#rlrrr _set_encodingszDOMInputSource._set_encodingcCs|jS)N)rh)r#rrr _get_publicId!szDOMInputSource._get_publicIdcCs ||_dS)N)rh)r#rhrrr _set_publicId#szDOMInputSource._set_publicIdcCs|jS)N)rH)r#rrr _get_systemId&szDOMInputSource._get_systemIdcCs ||_dS)N)rH)r#rHrrr _set_systemId(szDOMInputSource._set_systemIdcCs|jS)N)rp)r#rrr _get_baseURI+szDOMInputSource._get_baseURIcCs ||_dS)N)rp)r#rCrrr _set_baseURI-szDOMInputSource._set_baseURIN)z byteStreamzcharacterStreamz stringDatazencodingzpublicIdzsystemIdzbaseURI)rr r rzr$r}r~rrrrrrrrrrrrrrrrrs"              c@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!cCs|jS)N) whatToShow)r#rrr_get_whatToShowBsz DOMBuilderFilter._get_whatToShowcCs|jS)N) FILTER_ACCEPT)r#elementrrr acceptNodeEszDOMBuilderFilter.acceptNodecCs|jS)N)r)r#rrrrstartContainerHszDOMBuilderFilter.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)NFr)r#rrr _get_asyncSszDocumentLS._get_asynccCs|rtjjdndS)Nz.asynchronous document loading is not supported)r0r1r2)r#asyncrrr _set_asyncUs zDocumentLS._set_asynccCstddS)Nz'haven't figured out what this means yet)rP)r#rrrabortZszDocumentLS.abortcCstddS)Nzhaven't written this yet)rP)r#rCrrrload`szDocumentLS.loadcCstddS)Nzhaven't written this yet)rP)r#rqrrrloadXMLcszDocumentLS.loadXMLcCs@|dkr|}n!|j|k r6tjjn|jS)N)Z ownerDocumentr0r1ZWrongDocumentErrZtoxml)r#ZsnoderrrsaveXMLfs   zDocumentLS.saveXMLN) rr r r rrrrrrrrrrrrNs      rc@s@eZdZdZdZddZddZddZd S) DOMImplementationLSrrcCsk|dk r!tjjdn||jkr7tS||jkr[tjjdntddS)NzschemaType not yet supportedz'asynchronous builders are not supportedzunknown value for mode)r0r1r2MODE_SYNCHRONOUSrMODE_ASYNCHRONOUSrO)r#modeZ schemaTyperrrcreateDOMBuilderrs     z$DOMImplementationLS.createDOMBuildercCstddS)Nz-the writer interface hasn't been written yet!)rP)r#rrrcreateDOMWriter}sz#DOMImplementationLS.createDOMWritercCstS)N)r)r#rrrcreateDOMInputSourcesz(DOMImplementationLS.createDOMInputSourceN)rr r rrrrrrrrrrns  r)r rFZxml.domr0Zxml.dom.NodeFilterr__all__rrr.objectrrrrrrrrrs    ,1