관리-도구
편집 파일: pulldom.cpython-39.pyc
a �����DOg�.����������������������@���s����d�dl�Zd�dlZdZdZdZdZdZdZdZ d Z G�d d��dejj�Z G�dd ��d �ZG�dd��d�ZG�dd��de �ZdZddd�Zddd�ZdS�)�����N� START_ELEMENT�END_ELEMENT�COMMENT�START_DOCUMENT�END_DOCUMENT�PROCESSING_INSTRUCTION�IGNORABLE_WHITESPACE� CHARACTERSc�������������������@���s����e�Zd�ZdZdZd$dd�Zdd��Zdd��Zdd ��Zd d��Z dd ��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zdd��Zdd��Zd d!��Zd"d#��ZdS�)%�PullDOMNc�����������������C���sx���ddl�m}�||�_d�d�g|�_|�j|�_g�|�_|�jj|�_z|�jj|�_W�n�t yT���Y�n0�|dig|�_ |�j d�|�_g�|�_d�S�)Nr���)� XML_NAMESPACE�xml���) Zxml.domr����documentFactory� firstEvent� lastEvent�elementStack�append�push�pop�AttributeError�_ns_contexts�_current_context�pending_events)�selfr���r�����r����'/usr/lib64/python3.9/xml/dom/pulldom.py�__init__���s���� zPullDOM.__init__c�����������������C���s���|�j�d�}|�j�d=�|S��Nr ���)r���)r����resultr���r���r���r���!���s���� zPullDOM.popc�����������������C���s ���||�_�d�S��N)�_locator)r���Zlocatorr���r���r����setDocumentLocator&���s����zPullDOM.setDocumentLocatorc�����������������C���sH���t�|�d�sg�|�_|�j�|pd|f��|�j�|�j�����|p<d�|�j|<�d�S�)N�_xmlns_attrs�xmlns)�hasattrr"���r���r���r����copy)r����prefix�urir���r���r����startPrefixMapping)���s ���� zPullDOM.startPrefixMappingc�����������������C���s���|�j����|�_d�S�r���)r���r���r���)r���r&���r���r���r����endPrefixMapping0���s����zPullDOM.endPrefixMappingc�����������������C���s���d}t�|�dd��}|d�ur:|D�]\}}||j||f<�qg�|�_|\}} |r�|d�u�rn|�j|�} | rj| d�| �}n| }|�jr�|�j�||�}q�|��||�}n |�jr�|�j�| �}n|��d�| �}|���D�]�\}}|\}} ||k�r| dkr�| }nd| �}|�j� ||�}|� |��nX|�rF|�j|�} | �r(| d�| �}n| }|�j� ||�}|� |��n|�j�| �}|�|��||_ q�t|fd�g|�jd<�|�jd�|�_|��|��d�S�)Nzhttp://www.w3.org/2000/xmlns/r"����:r#���zxmlns:����)�getattrZ_attrsr"���r����documentZcreateElementNS� buildDocument� createElement�itemsZcreateAttributeNSZsetAttributeNodeNS�createAttribute�setAttributeNode�valuer���r���r���)r����name�tagName�attrsZ xmlns_uriZxmlns_attrs�anamer3���r'���Z localnamer&����nodeZa_uriZa_localnameZqname�attrr���r���r����startElementNS3���sP���� zPullDOM.startElementNSc�����������������C���s&���t�|����fd�g|�jd<�|�jd�|�_d�S��Nr+����r���r���r���)r���r4���r5���r���r���r����endElementNSl���s����zPullDOM.endElementNSc�����������������C���sz���|�j�r|�j��|�}n|��d�|�}|���D�]$\}}|�j��|�}||_|�|��q(t|fd�g|�jd<�|�jd�|�_|�� |��d�S�r;���) r-���r/���r.���r0���r1���r3���r2���r���r���r���)r���r4���r6���r8���r7���r3���r9���r���r���r����startElementp���s����zPullDOM.startElementc�����������������C���s&���t�|����fd�g|�jd<�|�jd�|�_d�S�r;���r<���)r���r4���r���r���r���� endElement���s����zPullDOM.endElementc�����������������C���sN���|�j�r2|�j��|�}t|fd�g|�jd<�|�jd�|�_nt|fd�g}|�j�|��d�S�r;���)r-���� createCommentr���r���r���r���)r����sr8����eventr���r���r����comment����s����zPullDOM.commentc�����������������C���sR���|�j�r4|�j��||�}t|fd�g|�jd<�|�jd�|�_nt||fd�g}|�j�|��d�S�r;���)r-����createProcessingInstructionr���r���r���r���)r����target�datar8���rB���r���r���r����processingInstruction����s����zPullDOM.processingInstructionc�����������������C���s.���|�j��|�}t|fd�g|�jd<�|�jd�|�_d�S�r;���)r-����createTextNoder���r����r����charsr8���r���r���r����ignorableWhitespace����s����zPullDOM.ignorableWhitespacec�����������������C���s.���|�j��|�}t|fd�g|�jd<�|�jd�|�_d�S�r;���)r-���rH���r ���r���rI���r���r���r���� characters����s����zPullDOM.charactersc�����������������C���s$���|�j�d�u�r dd�l}|jjjj|�_�d�S�)Nr���)r���Zxml.dom.minidomZdomZminidomZDocument�implementation)r���r���r���r���r���� startDocument����s���� zPullDOM.startDocumentc����������� ������C���s����|�j��||d��}||�_t|fd�g|�jd<�|�jd�|�_|��|��|�jD�]�}|d�d�tkr�|d�\}}}|�j�||�}t|f|d<�nD|d�d�t kr�|�j� |d�d��}t |f|d<�ntd|d�d���||�jd<�||�_qDd�|�_|jS�)Nr+���r���zUnknown pending event ) r���ZcreateDocumentr-���r���r���r���r���r���rD���r���r@����AssertionErrorZ firstChild) r���r'���Ztagnamer8����e�_rE���rF����nr���r���r���r.�������s$���� zPullDOM.buildDocumentc�����������������C���s ���t�|�jfd�g|�jd<�|�����d�S�r;���)r���r-���r���r����r���r���r���r����endDocument����s����zPullDOM.endDocumentc�����������������C���s ���d|�_�dS�)z.clear(): Explicitly release parsing structuresN)r-���rS���r���r���r����clear����s����z PullDOM.clear)N)�__name__� __module__�__qualname__r ���r-���r���r���r!���r(���r)���r:���r=���r>���r?���rC���rG���rK���rL���rN���r.���rT���rU���r���r���r���r���r ��� ���s&��� 9 r ���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�ErrorHandlerc�����������������C���s���t�|��d�S�r���)�print�r���� exceptionr���r���r����warning����s����zErrorHandler.warningc�����������������C���s���|�d�S�r���r���r[���r���r���r����error����s����zErrorHandler.errorc�����������������C���s���|�d�S�r���r���r[���r���r���r���� fatalError����s����zErrorHandler.fatalErrorN)rV���rW���rX���r]���r^���r_���r���r���r���r���rY�������s���rY���c�������������������@���s\���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��ZdS�)�DOMEventStreamc�����������������C���s2���||�_�||�_||�_t|�jd�s&|�j|�_|�����d�S�)N�feed)�stream�parser�bufsizer$����_slurp�getEvent�reset)r���rb���rc���rd���r���r���r���r�������s����zDOMEventStream.__init__c�����������������C���s.���t���|�_|�j�tjjjd��|�j�|�j��d�S�r;���) r ����pulldomrc���Z setFeaturer����sax�handlerZfeature_namespacesZsetContentHandlerrS���r���r���r���rg�������s����zDOMEventStream.resetc�����������������C���s0���dd�l�}|jdtdd��|����}|r(|S�t�d�S�)Nr���z[DOMEventStream's __getitem__ method ignores 'pos' parameter. Use iterator protocol instead.����)� stacklevel)�warnings�warn�DeprecationWarningrf���� IndexError)r����posrm����rcr���r���r����__getitem__����s�����zDOMEventStream.__getitem__c�����������������C���s���|�����}|r|S�t�d�S�r���)rf���� StopIteration�r���rr���r���r���r����__next__����s����zDOMEventStream.__next__c�����������������C���s���|�S�r���r���rS���r���r���r����__iter__����s����zDOMEventStream.__iter__c�����������������C���sl���|�����}|g}|rh|\}}||u�r&d�S�|tkr<|d��|��|tkrP|�|��n|tkr^|d=�|�����}qd�S�r���)rf���r����appendChildr���r���)r���r8���rB����parents�tokenZcur_noder���r���r���� expandNode����s����zDOMEventStream.expandNodec�����������������C���s~���|�j�jd�s|�j�j|�j�_|�j�jd�sR|�j�|�j�}|sD|�j����d�S�|�j�|��q|�j�jd�d�}|�j�jd�d�|�j�jd<�|S�)Nr+���r���) rh���r���r���rb����readrd���rc����closera���)r����bufrr���r���r���r���rf������s���� zDOMEventStream.getEventc�����������������C���s���|�j��|�j��|�j|�_|����S�)z� Fallback replacement for getEvent() using the standard SAX2 interface, which means we slurp the SAX events into memory (no performance gain, but we are compatible to all SAX parsers). )rc����parserb����_emitrf���rS���r���r���r���re�����s����zDOMEventStream._slurpc�����������������C���s,���|�j�jd�d�}|�j�jd�d�|�j�jd<�|S�)zn Fallback replacement for getEvent() that emits the events that _slurp() read previously. r+���r���)rh���r���ru���r���r���r���r������s����zDOMEventStream._emitc�����������������C���s���|�j�����|�`�d|�_d|�_dS�)z+clear(): Explicitly release parsing objectsN)rh���rU���rc���rb���rS���r���r���r���rU���!��s���� zDOMEventStream.clearN) rV���rW���rX���r���rg���rs���rv���rw���r{���rf���re���r����rU���r���r���r���r���r`�������s��� r`���c�������������������@���s4���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��ZdS�)�SAX2DOMc�����������������C���s2���t��|�|||��|�jd�}|�jd�}|�|��d�S��Nr ������)r ���r:���r���rx���)r���r4���r5���r6����curNode� parentNoder���r���r���r:���*��s���� zSAX2DOM.startElementNSc�����������������C���s0���t��|�||��|�jd�}|�jd�}|�|��d�S�r����)r ���r>���r���rx���)r���r4���r6���r����r����r���r���r���r>���0��s���� zSAX2DOM.startElementc�����������������C���s4���t��|�||��|�jd�d�}|�jd�}|�|��d�S��Nr���r+���r ���)r ���rG���r���r���rx���)r���rE���rF���r8���r����r���r���r���rG���6��s���� zSAX2DOM.processingInstructionc�����������������C���s2���t��|�|��|�jd�d�}|�jd�}|�|��d�S�r����)r ���rK���r���r���rx����r���rJ���r8���r����r���r���r���rK���<��s���� zSAX2DOM.ignorableWhitespacec�����������������C���s2���t��|�|��|�jd�d�}|�jd�}|�|��d�S�r����)r ���rL���r���r���rx���r����r���r���r���rL���B��s���� zSAX2DOM.charactersN)rV���rW���rX���r:���r>���rG���rK���rL���r���r���r���r���r����(��s ���r����i�?��c�����������������C���s@���|d�u�rt�}t|�t�r"t|�d�}n|�}|s4tj���}t|||�S�)N�rb)�default_bufsize� isinstance�str�openr���ri����make_parserr`���)Zstream_or_stringrc���rd���rb���r���r���r���r���K��s���� r���c�����������������C���s6���ddl�m}�t|��}||��}|s*tj���}t|||�S�)Nr���)�StringIO)�ior�����lenr���ri���r����r`���)�stringrc���r����rd���r~���r���r���r����parseStringV��s���� r����)NN)N)Zxml.saxr���Zxml.sax.handlerr���r���r���r���r���r���r���r ���ri���ZContentHandlerr ���rY���r`���r����r����r���r����r���r���r���r����<module>���s"����8\!