3 \�/�@s�ddlZddlZddlZddlZddlZddlmZddlmZdd�Z ifdd�Z ifd d �Z ifd d �Z d d�Z Gdd�dej�ZGdd�dej�Zddd�ZdS)�N�)�handler)� xmlreadercCs&x |j�D]\}}|j||�}q W|S)N)�items�replace)�s�d�key�value�r �(/usr/lib64/python3.6/xml/sax/saxutils.py�__dict_replace sr cCs6|jdd�}|jdd�}|jdd�}|r2t||�}|S)N�&z&�>z>�._wrappercs t�|�S)N)�getattr)�self�name)�outr r � __getattr__[sz,_gettextwriter.._wrapper.__getattr__N)�__name__� __module__� __qualname__� __class__r!r )r r r �_wrapperYsr&cSsdS)Nr r r r r �^sz _gettextwriter..cSsdS)NTr r r r r r'cs�xmlcharrefreplacerT)�encoding�errors�newline� write_through)�sys�stdout� isinstance�io� TextIOBase�codecs� StreamWriter�StreamReaderWriter� RawIOBase�close�BufferedIOBase�writable�write�seekable�tell�AttributeError� TextIOWrapper)r r)r-r&�bufferr )r r �_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-1FcCsVtjj|�t||�}|j|_|j|_ig|_|jd|_ g|_ ||_ ||_ d|_ dS)NrF�����)r�ContentHandler�__init__r?r9�_write�flush�_flush� _ns_contexts�_current_context�_undeclared_ns_maps� _encoding�_short_empty_elements�_pending_start_element)rr r)Zshort_empty_elementsr r r rDss   zXMLGenerator.__init__cCsJ|drBd|dkr d|dS|j|d}|rB|d|dS|dS)Nrz$http://www.w3.org/XML/1998/namespacezxml:r�:)rI)rr�prefixr r r �_qnames  zXMLGenerator._qnamecCs|jr|jd�d|_dS)NrF)rMrE)r� endElementr r r �_finish_pending_start_element�s z*XMLGenerator._finish_pending_start_elementcCs|jd|j�dS)Nz$ )rErK)rr r r � startDocument�szXMLGenerator.startDocumentcCs |j�dS)N)rG)rr r r � endDocument�szXMLGenerator.endDocumentcCs0|jj|jj��||j|<|jj||f�dS)N)rH�appendrIrrJ)rrO�urir r r �startPrefixMapping�s zXMLGenerator.startPrefixMappingcCs|jd|_|jd=dS)NrrBrB)rHrI)rrOr r r �endPrefixMapping�s zXMLGenerator.endPrefixMappingcCs^|j�|jd|�x*|j�D]\}}|jd|t|�f�q W|jrPd|_n |jd�dS)Nrz %s=%sTr)rRrErrrLrM)rr�attrsr r r r � startElement�szXMLGenerator.startElementcCs*|jr|jd�d|_n|jd|�dS)Nz/>Fz)rMrE)rrr r r rQ�s zXMLGenerator.endElementcCs�|j�|jd|j|��x8|jD].\}}|rD|jd||f�q$|jd|�q$Wg|_x0|j�D]$\}}|jd|j|�t|�f�qfW|jr�d|_n |jd�dS)Nrz xmlns:%s="%s"z xmlns="%s"z %s=%sTr)rRrErPrJrrrLrM)rr�qnamerYrOrVr r r r �startElementNS�s zXMLGenerator.startElementNScCs0|jr|jd�d|_n|jd|j|��dS)Nz/>Fz)rMrErP)rrr[r r r � endElementNS�s zXMLGenerator.endElementNScCs4|r0|j�t|t�s"t||j�}|jt|��dS)N)rRr/�strrKrEr)r�contentr r r � characters�s   zXMLGenerator.characterscCs0|r,|j�t|t�s"t||j�}|j|�dS)N)rRr/r^rKrE)rr_r r r �ignorableWhitespace�s   z XMLGenerator.ignorableWhitespacecCs|j�|jd||f�dS)Nz )rRrE)r�targetrr r r �processingInstruction�sz"XMLGenerator.processingInstruction)NrAF)F)r"r#r$rDrPrRrSrTrWrXrZrQr\r]r`rarcr r r r 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);� XMLFilterBaseNcCstjj|�||_dS)N)r� XMLReaderrD�_parent)r�parentr r r rD�s zXMLFilterBase.__init__cCs|jj|�dS)N)� _err_handler�error)r� exceptionr r r ri�szXMLFilterBase.errorcCs|jj|�dS)N)rh� fatalError)rrjr r r rk�szXMLFilterBase.fatalErrorcCs|jj|�dS)N)rh�warning)rrjr r r rl�szXMLFilterBase.warningcCs|jj|�dS)N)� _cont_handler�setDocumentLocator)rZlocatorr r r rn�sz XMLFilterBase.setDocumentLocatorcCs|jj�dS)N)rmrS)rr r r rSszXMLFilterBase.startDocumentcCs|jj�dS)N)rmrT)rr r r rTszXMLFilterBase.endDocumentcCs|jj||�dS)N)rmrW)rrOrVr r r rWsz XMLFilterBase.startPrefixMappingcCs|jj|�dS)N)rmrX)rrOr r r rX szXMLFilterBase.endPrefixMappingcCs|jj||�dS)N)rmrZ)rrrYr r r rZ szXMLFilterBase.startElementcCs|jj|�dS)N)rmrQ)rrr r r rQszXMLFilterBase.endElementcCs|jj|||�dS)N)rmr\)rrr[rYr r r r\szXMLFilterBase.startElementNScCs|jj||�dS)N)rmr])rrr[r r r r]szXMLFilterBase.endElementNScCs|jj|�dS)N)rmr`)rr_r r r r`szXMLFilterBase.characterscCs|jj|�dS)N)rmra)r�charsr r r rasz!XMLFilterBase.ignorableWhitespacecCs|jj||�dS)N)rmrc)rrbrr r r rcsz#XMLFilterBase.processingInstructioncCs|jj|�dS)N)rm� skippedEntity)rrr r r rp!szXMLFilterBase.skippedEntitycCs|jj|||�dS)N)� _dtd_handler� notationDecl)rr�publicId�systemIdr r r rr&szXMLFilterBase.notationDeclcCs|jj||||�dS)N)rq�unparsedEntityDecl)rrrsrtZndatar r r ru)sz XMLFilterBase.unparsedEntityDeclcCs|jj||�S)N)Z _ent_handler� resolveEntity)rrsrtr r r rv.szXMLFilterBase.resolveEntitycCs@|jj|�|jj|�|jj|�|jj|�|jj|�dS)N)rfZsetContentHandlerZsetErrorHandlerZsetEntityResolverZ setDTDHandler�parse)r�sourcer r r rw3s     zXMLFilterBase.parsecCs|jj|�dS)N)rf� setLocale)rZlocaler r r ry:szXMLFilterBase.setLocalecCs |jj|�S)N)rf� getFeature)rrr r r rz=szXMLFilterBase.getFeaturecCs|jj||�dS)N)rf� setFeature)rr�stater r r r{@szXMLFilterBase.setFeaturecCs |jj|�S)N)rf� getProperty)rrr r r r}CszXMLFilterBase.getPropertycCs|jj||�dS)N)rf� setProperty)rrr r r r r~FszXMLFilterBase.setPropertycCs|jS)N)rf)rr r r � getParentKszXMLFilterBase.getParentcCs ||_dS)N)rf)rrgr r r � setParentNszXMLFilterBase.setParent)N)r"r#r$rDrirkrlrnrSrTrWrXrZrQr\r]r`rarcrprrrurvrwryrzr{r}r~rr�r r r r rd�s8 rd�cCs t|t�rtj|�}n^t|d�rt|}tj�}t|jd�t�rH|j|�n |j|�t|d�rtt|jt�rt|j |j�|j �dko�|j �dk�r|j �}t jjt jj|��}t jj||�}t jj|�r�|j |�t|d�}n$|j tjj||��tjj|j ��}|j|�|S)N�readrr�rb)r/r^rZ InputSource�hasattrr�ZsetCharacterStreamZ setByteStreamrZ setSystemIdZgetCharacterStreamZ getByteStreamZ getSystemId�os�path�dirname�normpath�join�isfile�open�urllibrwZurljoinZrequestZurlopen)rx�base�fZsysidZbaseheadZ sysidfilenamer r r �prepare_input_sourceSs*          r�)r�)r�Z urllib.parser�Zurllib.requestr0r2r�rrr rrrr?rCr@rerdr�r r r r �s     )so