B €/g^­/c@s¦ddlZddlZddlZddlZddlZddlmZddlmZdd„Z ifdd„Z ifd d „Z ifd d „Z d d„Z Gdd„dejƒZGdd„dejƒZddd„ZdS)éNé)Úhandler)Ú xmlreadercCs&x | ¡D]\}}| ||¡}q W|S©N)ÚitemsÚreplace)ZsZdZkeyÚvalue©rú(/usr/lib64/python3.7/xml/sax/saxutils.pyÚ__dict_replace sr cCs6| dd¡}| dd¡}| dd¡}|r2t||ƒ}|S)Nú&ú&ú>ú>ú<ú<©rr ©ÚdataZentitiesrrr Úescapes    rcCs2| dd¡}| dd¡}|r&t||ƒ}| dd¡S)Nrrrr r r rrrrr Úunescape"s    rcCs\| ¡}| ddddœ¡t||ƒ}d|krPd|krFd| dd¡}qXd |}nd|}|S) Nz z z )Ú z z z"z'z"%s"z"z'%s')ÚcopyZupdaterrrrrr Ú quoteattr0s   rcsĈdkrddl}|jStˆtjƒr&ˆStˆtjtjfƒr<ˆStˆtjƒrlG‡fdd„dƒ}|ƒ}dd„|_ nDt  ¡}dd„|_ ˆj |_ yˆj |_ ˆj|_Wntk r®YnXtj||ddd d S) NrcseZdZ”jZ‡fdd„ZdS)z _gettextwriter.._wrappercs tˆ|ƒSr)Zgetattr©ÚselfÚname©Úoutrr Ú __getattr__[óz,_gettextwriter.._wrapper.__getattr__N)Ú__name__Ú __module__Ú __qualname__Z __class__rrrrr Ú_wrapperYsr#cSsdSrrrrrr Ú^óz _gettextwriter..cSsdS)NTrrrrr r$cr%ZxmlcharrefreplacerT)ÚencodingZerrorsZnewlineZ write_through)ÚsysZstdoutÚ isinstanceÚioZ TextIOBaseÚcodecsZ StreamWriterZStreamReaderWriterZ RawIOBaseZcloseZBufferedIOBaseZwritableÚwriteZseekableZtellZAttributeErrorZ TextIOWrapper)rr&r'r#Zbufferrrr Ú_gettextwriterHs.     r,c@s€eZdZd dd„Zdd„Zd!dd „Zd d „Zd d „Zdd„Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS)"Ú XMLGeneratorNú iso-8859-1FcCsVtj |¡t||ƒ}|j|_|j|_ig|_|jd|_ g|_ ||_ ||_ d|_ dS)NéÿÿÿÿF)rÚContentHandlerÚ__init__r,r+Ú_writeZflushÚ_flushÚ _ns_contextsÚ_current_contextÚ_undeclared_ns_mapsÚ _encodingÚ_short_empty_elementsÚ_pending_start_element)rrr&Zshort_empty_elementsrrr r1ss   zXMLGenerator.__init__cCsJ|drBd|dkr d|dS|j|d}|rB|d|dS|dS)Nrz$http://www.w3.org/XML/1998/namespacezxml:rz:)r5)rrÚprefixrrr Ú_qnames  zXMLGenerator._qnamecCs|jr| d¡d|_dS)Nr F©r9r2)rÚ endElementrrr Ú_finish_pending_start_elements z*XMLGenerator._finish_pending_start_elementcCs| d|j¡dS)Nz$ )r2r7©rrrr Ú startDocument—szXMLGenerator.startDocumentcCs | ¡dSr)r3r?rrr Ú endDocument›rzXMLGenerator.endDocumentcCs0|j |j ¡¡||j|<|j ||f¡dSr)r4Zappendr5rr6©rr:Úurirrr ÚstartPrefixMappingžs zXMLGenerator.startPrefixMappingcCs|jd|_|jd=dS)Nr/)r4r5©rr:rrr ÚendPrefixMapping£ó zXMLGenerator.endPrefixMappingcCs^| ¡| d|¡x*| ¡D]\}}| d|t|ƒf¡q W|jrPd|_n | d¡dS)Nrú %s=%sTr )r>r2rrr8r9)rrÚattrsrrrr Ú startElement§szXMLGenerator.startElementcCs*|jr| d¡d|_n| d|¡dS©Nz/>Fzr<rrrr r=±ó zXMLGenerator.endElementcCsª| ¡| d| |¡¡x8|jD].\}}|rD| d||f¡q$| d|¡q$Wg|_x0| ¡D]$\}}| d| |¡t|ƒf¡qfW|jrœd|_n | d¡dS)Nrz xmlns:%s="%s"z xmlns="%s"rHTr )r>r2r;r6rrr8r9)rrÚqnamerIr:rCrrrr ÚstartElementNS¸s zXMLGenerator.startElementNScCs0|jr| d¡d|_n| d| |¡¡dSrK)r9r2r;©rrrMrrr Ú endElementNSÊrLzXMLGenerator.endElementNScCs4|r0| ¡t|tƒs"t||jƒ}| t|ƒ¡dSr)r>r(Ústrr7r2r©rZcontentrrr Ú charactersÑó   zXMLGenerator.characterscCs0|r,| ¡t|tƒs"t||jƒ}| |¡dSr)r>r(rQr7r2rRrrr ÚignorableWhitespaceØrTz XMLGenerator.ignorableWhitespacecCs| ¡| d||f¡dS)Nz )r>r2©rZtargetrrrr ÚprocessingInstructionßsz"XMLGenerator.processingInstruction)Nr.F)F)r r!r"r1r;r>r@rArDrFrJr=rNrPrSrUrWrrrr r-qs   r-c@sîeZdZd:dd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„ZdS);Ú XMLFilterBaseNcCstj |¡||_dSr)rÚ XMLReaderr1Ú_parent©rZparentrrr r1ìrGzXMLFilterBase.__init__cCó|j |¡dSr)Ú _err_handlerÚerror©rZ exceptionrrr r^òrzXMLFilterBase.errorcCr\r)r]Ú fatalErrorr_rrr r`õrzXMLFilterBase.fatalErrorcCr\r)r]Úwarningr_rrr raørzXMLFilterBase.warningcCr\r)Ú _cont_handlerÚsetDocumentLocator)rZlocatorrrr rcýrz XMLFilterBase.setDocumentLocatorcCó|j ¡dSr)rbr@r?rrr r@rzXMLFilterBase.startDocumentcCrdr)rbrAr?rrr rArzXMLFilterBase.endDocumentcCó|j ||¡dSr)rbrDrBrrr rDrz XMLFilterBase.startPrefixMappingcCr\r)rbrFrErrr rF rzXMLFilterBase.endPrefixMappingcCrer)rbrJ)rrrIrrr rJ rzXMLFilterBase.startElementcCr\r)rbr=rrrr r=rzXMLFilterBase.endElementcCó|j |||¡dSr)rbrN)rrrMrIrrr rNrzXMLFilterBase.startElementNScCrer)rbrPrOrrr rPrzXMLFilterBase.endElementNScCr\r)rbrSrRrrr rSrzXMLFilterBase.characterscCr\r)rbrU)rZcharsrrr rUrz!XMLFilterBase.ignorableWhitespacecCrer)rbrWrVrrr rWrz#XMLFilterBase.processingInstructioncCr\r)rbÚ skippedEntityrrrr rg!rzXMLFilterBase.skippedEntitycCrfr)Ú _dtd_handlerÚ notationDecl)rrÚpublicIdÚsystemIdrrr ri&rzXMLFilterBase.notationDeclcCs|j ||||¡dSr)rhÚunparsedEntityDecl)rrrjrkZndatarrr rl)rz XMLFilterBase.unparsedEntityDeclcCs|j ||¡Sr)Z _ent_handlerÚ resolveEntity)rrjrkrrr rm.rzXMLFilterBase.resolveEntitycCs@|j |¡|j |¡|j |¡|j |¡|j |¡dSr)rZZsetContentHandlerZsetErrorHandlerZsetEntityResolverZ setDTDHandlerÚparse)rÚsourcerrr rn3s     zXMLFilterBase.parsecCr\r)rZÚ setLocale)rZlocalerrr rp:rzXMLFilterBase.setLocalecCó |j |¡Sr)rZÚ getFeaturerrrr rr=rzXMLFilterBase.getFeaturecCrer)rZÚ setFeature)rrZstaterrr rs@rzXMLFilterBase.setFeaturecCrqr)rZÚ getPropertyrrrr rtCrzXMLFilterBase.getPropertycCrer)rZÚ setProperty)rrrrrr ruFrzXMLFilterBase.setPropertycCs|jSr©rZr?rrr Ú getParentKrzXMLFilterBase.getParentcCs ||_dSrrvr[rrr Ú setParentNrzXMLFilterBase.setParentr)r r!r"r1r^r`rarcr@rArDrFrJr=rNrPrSrUrWrgrirlrmrnrprrrsrtrurwrxrrrr rXäs8 rXÚcCst|tƒrt |¡}n^t|dƒrt|}t ¡}t| d¡tƒrH| |¡n | |¡t|dƒrtt|jtƒrt|  |j¡|  ¡dkr |  ¡dkr |  ¡}t j t j |¡¡}t j ||¡}t j |¡rÜ|  |¡t|dƒ}n$|  tj ||¡¡tj |  ¡¡}| |¡|S)NÚreadrrZrb)r(rQrZ InputSourceZhasattrrzZsetCharacterStreamZ setByteStreamrZ setSystemIdZgetCharacterStreamZ getByteStreamZ getSystemIdÚosZpathZdirnameZnormpathZjoinZisfileZopenÚurllibrnZurljoinZrequestZurlopen)roZbaseZfZsysidZbaseheadZ sysidfilenamerrr Úprepare_input_sourceSs*          r})ry)r{Z urllib.parser|Zurllib.requestr)r*ryrrr rrrr,r0r-rYrXr}rrrr Zs     )so