����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
alt
/
python34
/
lib64
/
python3.4
/
xml
/
dom
/
__pycache__
/
Filename :
expatbuilder.cpython-34.pyo
back
Copy
� j f��������������������@���s��d��Z��d�d�l�m�Z�m�Z�m�Z�d�d�l�m�Z�m�Z�m�Z�d�d�l�m �Z �d�d�l �m�Z�m�Z�d�d�l �m�Z�e�j�Z�e�j�Z�e�j�Z�e�j�j�Z�e�j�j�Z�e�j�j�Z�e�j�j�Z�e�j����Z�i �e�j�d�d���d �6e�j�d�d ���d�6e�j�d�d���d �6e�j�d�d���d�6e�j�d�d���d�6e�j�d�d���d�6e�j�d�d���d�6e�j�d�d���d�6e�j�d�d���d�6Z�Gd�d����d�e���Z�d�d����Z�d�d����Z�Gd �d!����d!���Z�e�e�e�f�Z �Gd"�d#����d#�e���Z!�Gd$�d%����d%�e���Z"�Gd&�d'����d'�e"���Z#�Gd(�d)����d)�e"���Z$�d*�Z%�d+�e%�Z&�Gd,�d-����d-�e���Z'�Gd.�d/����d/���Z(�Gd0�d1����d1�e(�e���Z)�Gd2�d3����d3�e(�e'���Z*�Gd4�d5����d5�e+���Z,�Gd6�d7����d7�e���Z-�d8�d9�d:���Z.�d8�d;�d<���Z/�d8�d=�d>���Z0�d8�d?�d@���Z1�dA�dB����Z2�d�S)Cz�Facility to use the Expat parser to load a minidom instance from a string or file. This avoids all the overhead of SAX and pulldom to gain performance. �����)� xmlbuilder�minidom�Node)�EMPTY_NAMESPACE�EMPTY_PREFIX�XMLNS_NAMESPACE)�expat)� _append_child�_set_attribute_node)� NodeFilterNZcdataZCDATAZenumeration�ENUM�entityZENTITY�entitiesZENTITIES�id�IDZidrefZIDREFZidrefsZIDREFSZnmtokenZNMTOKENZnmtokensZNMTOKENSc���������������@���s����e��Z�d��Z�d�Z�d�d�d���Z�d�d����Z�d �d ����Z�d�d����Z�d �d����Z�d�d����Z �d�d����Z �d�d����Z�d�d����Z�d�S)�ElementInfo� _attr_info�_model�tagNameNc�������������C���s���|�|��_��g��|��_�|�|��_�d��S)N)r���r���r���)�selfr����model��r����9/opt/alt/python34/lib64/python3.4/xml/dom/expatbuilder.py�__init__?���s���� zElementInfo.__init__c�������������C���s���|��j��|��j�|��j�f�S)N)r���r���r���)r���r���r���r����__getstate__D���s����zElementInfo.__getstate__c�������������C���s���|�\�|��_��|��_�|��_�d��S)N)r���r���r���)r����stater���r���r����__setstate__G���s����zElementInfo.__setstate__c�������������C���s\���xR�|��j��D]G�}�|�d�|�k�r �|�d�}�|�d�d�k�rB�t�d�St�|�d�Sq �q �Wt�j�S)N��������r����(r������r ���)r���� _typeinfo_mapr����_no_type)r����aname�info�tr���r���r����getAttributeTypeJ���s���� zElementInfo.getAttributeTypec�������������C���s���t��j�S)N)r���r"���)r���ZnamespaceURIZ localNamer���r���r����getAttributeTypeNST���s����zElementInfo.getAttributeTypeNSc�������������C���s:���|��j��r2�|��j��d�}�|�t�j�j�t�j�j�f�k�Sd�Sd��S)Nr���F)r���r���r���Z XML_CTYPE_ANYZXML_CTYPE_MIXED)r����typer���r���r����isElementContentW���s ���� zElementInfo.isElementContentc�������������C���s(���|��j��r �|��j��d�t�j�j�k�Sd�Sd��S)Nr���F)r���r���r���ZXML_CTYPE_EMPTY)r���r���r���r����isEmpty_���s���� zElementInfo.isEmptyc�������������C���s6���x/�|��j��D]$�}�|�d�|�k�r �|�d�d�k�Sq �Wd�S)Nr���r���r���Fr ���)r���)r���r#���r$���r���r���r����isIde���s����zElementInfo.isIdc�������������C���s���|��j��|�|�f���S)N)r+���)r���ZeuriZenameZaurir#���r���r���r����isIdNSk���s����zElementInfo.isIdNS)z _attr_infoz_modelztagName) �__name__� __module__�__qualname__� __slots__r���r���r���r&���r'���r)���r*���r+���r,���r���r���r���r���r���<���s��� r���c�������������C���s���|��j��|�|���S)N)�_intern_setdefault)�builder�sr���r���r����_interno���s����r4���c�������������C���s����|�j��d���}�|��j�}�t�|���d�k�ry�|�\�}�}�}�|�|�|���}�d�|�|�f�}�|�|�|���}�|�|�|���}�nJ�t�|���d�k�r��|�\�}�}�t�}�|�|�|���}�}�n�t�d�|�����|�|�|���|�|�|�f�S)N� ����z%s:%sr���z4Unsupported syntax: spaces in URIs not supported: %r)�splitr1����lenr���� ValueError)r2����name�parts�intern�uri� localname�prefix�qnamer���r���r����_parse_ns_namer���s���� rA���c���������������@���si��e��Z�d��Z�d�Z�d�d�d���Z�d�d����Z�d�d����Z�d �d ����Z�d�d����Z�d �d����Z �d�d����Z �d�d����Z�d�d����Z�d�d����Z �d�d����Z�d�d����Z�d�d����Z�d�d����Z�d�d ����Z�d!�d"����Z�d#�d$����Z�d%�d&����Z�d'�d(����Z�d)�d*����Z�d+�d,����Z�d-�d.����Z�d/�d0����Z�d1�d2����Z�d3�d4����Z�d5�d6����Z�d7�d8����Z�d9�d:����Z�d�S);�ExpatBuilderzPDocument builder that uses Expat to build a ParsedXML.DOM document instance.Nc�������������C���sw���|�d��k�r�t��j����}�n��|�|��_�|��j�j�d��k �rN�t�|��j�j���|��_�n�d��|��_�t�|��_�d��|��_�|��j ����d��S)N) r���ZOptions�_options�filter�FilterVisibilityController�_filterr����_finish_start_element�_parser�reset)r����optionsr���r���r���r�������s���� zExpatBuilder.__init__c�������������C���s ���t��j����S)zCreate a new parser object.)r����ParserCreate)r���r���r���r����createParser����s����zExpatBuilder.createParserc�������������C���sh���|��j��sa�|��j����|��_��|��j��j�j�|��_�d�|��j��_�d�|��j��_�d�|��j��_�|��j�|��j����n��|��j��S)z7Return the parser object, creating a new one if needed.T) rH���rL���r<���� setdefaultr1���Zbuffer_textZordered_attributesZspecified_attributes�install)r���r���r���r���� getParser����s���� zExpatBuilder.getParserc�������������C���s@���t��j�t�d�d���|��_�|��j�|��_�|��j�j�|��_�d�|��_�d�S)z6Free all data structures used during DOM construction.NF)�theDOMImplementationZcreateDocumentr����document�curNode� _elem_info�_cdata)r���r���r���r���rI�������s ����zExpatBuilder.resetc�������������C���s����|��j��|�_�|��j�|�_�|��j�|�_�|��j�|�_�|��j�j �rK�|��j �|�_�n��|��j�|�_ �|��j�j�rr�|��j�|�_�n��|��j�j�r��|��j�|�_�|��j�|�_�|��j�|�_�n�|��j�|�_�|��j�|�_�|��j�|�_�|��j�|�_�|��j�|�_ �d�S)z>Install the callbacks needed to build the DOM into the parser.N)!�start_doctype_decl_handler�StartDoctypeDeclHandler�first_element_handler�StartElementHandler�end_element_handler�EndElementHandler� pi_handler�ProcessingInstructionHandlerrC���r����entity_decl_handler�EntityDeclHandler�notation_decl_handler�NotationDeclHandler�comments�comment_handler�CommentHandlerZcdata_sections�start_cdata_section_handler�StartCdataSectionHandler�end_cdata_section_handler�EndCdataSectionHandler�character_data_handler_cdata�CharacterDataHandler�character_data_handler�external_entity_ref_handler�ExternalEntityRefHandler�xml_decl_handlerZXmlDeclHandler�element_decl_handlerZElementDeclHandler�attlist_decl_handlerZAttlistDeclHandler)r����parserr���r���r���rN�������s$����zExpatBuilder.installc�������������C���s����|��j�����}�d�}�yl�xU�|�j�d���}�|�s1�Pn��|�j�|�d���|�rc�|��j�j�rc�|��j�|���n��d�}�q�W|�j�d�d���Wn�t�k �r��Yn�X|��j�}�|��j����d�|��_�|�S) zIParse a document from a file object, returning the document node.T����i���r���F��Ni�@��) rO����read�ParserQ����documentElement� _setup_subset�ParseEscaperI���rH���)r����filerp���Zfirst_buffer�buffer�docr���r���r���� parseFile����s$���� zExpatBuilder.parseFilec�������������C���sb���|��j�����}�y!�|�j�|�d���|��j�|���Wn�t�k �rA�Yn�X|��j�}�|��j����d�|��_�|�S)z<Parse a document from a string, returning the document node.TN)rO���rt���rv���rw���rQ���rI���rH���)r����stringrp���rz���r���r���r����parseString����s���� zExpatBuilder.parseStringc�������������C���sD���|��j��j�r@�t����}�|�j�|���|�j����}�|�|��j��j�_�n��d�S)z/Load the internal subset if there might be one.N)rQ����doctype�InternalSubsetExtractorr}���� getSubset�internalSubset)r���ry���� extractor�subsetr���r���r���rv�������s ���� zExpatBuilder._setup_subsetc�������������C���s����|��j��j�j�|�|�|���}�|��j��|�_�t�|��j��|���|�|��j��_�|��j�r��|��j�j�|���t�k�r��d��|��j��_�|��j��j �d�=d��}�d��|��j �_�d��|��j �_�n��|�r��|�d��k �r��g��|�j �_�g��|�j�_�n��d��|��j �_�d��|��j �_�|��j�|��j �_�n��d��S)Nr������)rQ����implementationZcreateDocumentType� ownerDocumentr ���r~���rF���� acceptNode� FILTER_REJECT� childNodesrH���r^���r`���r����_seq� notationsrc���r\����end_doctype_decl_handler�EndDoctypeDeclHandler)r���ZdoctypeName�systemId�publicId�has_internal_subsetr~���r���r���r���rU�������s$����! z'ExpatBuilder.start_doctype_decl_handlerc�������������C���sO���|��j��j�r�|��j�|��j�_�n��|��j�|��j�_�|��j�p<�|��j�sK�t �|��_ �n��d��S)N)rC���ra���rb���rH���rc���r[���r\���rS���rF���r����_finish_end_element)r���r���r���r���r������s ����z%ExpatBuilder.end_doctype_decl_handlerc�������������C���s]���|��j��j�|�|���}�t�|��j�|���|��j�rY�|��j�j�|���t�k�rY�|��j�j�|���n��d��S)N)rQ���ZcreateProcessingInstructionr ���rR���rF���r����r�����removeChild)r����target�data�noder���r���r���r[�����s����!zExpatBuilder.pi_handlerc�������������C���s����|��j��j�}�|��j�rd�|��j�rF�|�d�j�t�k�rF�|�d�j�|���d��S|��j�j�|���}�d�|��_�n^�|�r��|�d�j�t �k�r��|�d�}�|�j �|�}�|�|�_ �d��St�j����}�|�|�_ �|��j�|�_ �t�|��j��|���d��S)Nr���Tr����r����r����r����)rR���r����rT����_cdata_continue�nodeType�CDATA_SECTION_NODEZ appendDatarQ���ZcreateCDATASection� TEXT_NODEr����r����Textr����r ���)r���r����r����r�����valuer���r���r���rh�����s"���� z)ExpatBuilder.character_data_handler_cdatac�������������C���s���|��j��j�}�|�rC�|�d�j�t�k�rC�|�d�}�|�j�|�|�_�d��St�j����}�|�j�|�|�_�|��j�|�_�t �|��j��|���d��S)Nr���r����r����) rR���r����r����r����r����r���r����rQ���r����r ���)r���r����r����r����r���r���r���rj���&��s���� z#ExpatBuilder.character_data_handlerc������� ������C���s����|�r �d��S|��j��j�s�d��S|��j�j�|�|�|�|���}�|�d��k �rf�|��j�j�|���} �|�j�j�| ���n��|��j�j�j�j�j�|���|��j �r��|��j �j �|���t�k�r��|��j�j�j�j�d�=n��d��S)Nr���r����)rC���r���rQ���Z_create_entityZcreateTextNoder�����appendr~���r����rF���r����r����) r���Z entityNameZis_parameter_entityr�����baser����r�����notationNamer�����childr���r���r���r]���1��s����!z ExpatBuilder.entity_decl_handlerc�������������C���sl���|��j��j�|�|�|���}�|��j��j�j�j�j�|���|��j�rh�|��j�j�|���t�k�rh�|��j��j�j�j�d�=n��d��S)Nr���r����) rQ���Z_create_notationr~���r����r����r����rF���r����� FILTER_ACCEPT)r���r����r����r����r����r����r���r���r���r_���C��s����!z"ExpatBuilder.notation_decl_handlerc�������������C���sZ���|��j��j�|���}�t�|��j�|���|��j�rV�|��j�j�|���t�k�rV�|��j�j�|���n��d��S)N)rQ���Z createCommentr ���rR���rF���r����r����r����)r���r����r����r���r���r���rb���I��s����!zExpatBuilder.comment_handlerc�������������C���s���d�|��_��d�|��_�d��S)NTF)rT���r����)r���r���r���r���rd���O��s���� z(ExpatBuilder.start_cdata_section_handlerc�������������C���s���d�|��_��d�|��_�d��S)NF)rT���r����)r���r���r���r���rf���S��s���� z&ExpatBuilder.end_cdata_section_handlerc�������������C���s���d�S)Nr���r���)r����contextr����r����r����r���r���r���rk���W��s����z(ExpatBuilder.external_entity_ref_handlerc�������������C���sK���|��j��d��k�r%�|��j�r%�t�|��_�n��|��j�|��j����_�|��j�|�|���d��S)N)rF���rS���r���r�����start_element_handlerrO���rX���)r���r:���� attributesr���r���r���rW���Z��s����z"ExpatBuilder.first_element_handlerc�������������C���s����|��j��j�|���}�t�|��j�|���|�|��_�|�r��xo�t�d�t�|���d���D]R�}�t�j�|�|�t�d��t ���}�|�|�d�}�|�|�_ �|��j��|�_�t�|�|���qJ�Wn��|�|��j��j �k �r��|��j�|���n��d��S)Nr���r���r���)rQ���Z createElementr ���rR����ranger8���r����Attrr���r���r����r����r ���ru���rG���)r���r:���r����r�����i�ar����r���r���r���r����`��s���� z"ExpatBuilder.start_element_handlerc�������������C���s����|��j��r��|�|��j�j�k�r�d��S|��j��j�|���}�|�t�k�rJ�t�|����n�|�t�k�rc�t�|����n�d��S|�j�|��_ �|�j�j �|���|�j����n��d��S)N)rF���rQ���ru����startContainerr�����Rejecter�FILTER_SKIP�Skipper� parentNoderR���r�����unlink)r���r����Zfiltr���r���r���rG���q��s���� z"ExpatBuilder._finish_start_elementc�������������C���s&���|��j��}�|�j�|��_��|��j�|���d��S)N)rR���r����r����)r���r:���rR���r���r���r���rY������s���� z ExpatBuilder.end_element_handlerc�������������C���s����|��j��j�|�j���}�|�r.�|��j�|�|���n��|��j�r��|�|��j�j�k�rM�d��S|��j�j�|���t�k�r��|��j �j �|���|�j����q��n��d��S)N)rS����getr����_handle_white_text_nodesrF���rQ���ru���r����r����rR���r����r����)r���rR���r$���r���r���r���r�������s���� z ExpatBuilder._finish_end_elementc�������������C���s����|��j��j�s�|�j����r�d��Sg��}�x@�|�j�D]5�}�|�j�t�k�r-�|�j�j����r-�|�j�|���q-�q-�Wx�|�D]�}�|�j �|���qm�Wd��S)N) rC���Zwhitespace_in_element_contentr)���r����r����r����r�����stripr����r����)r���r����r$����Lr����r���r���r���r�������s���� z%ExpatBuilder._handle_white_text_nodesc�������������C���sD���|��j��j�|���}�|�d��k�r7�t�|�|���|��j��|�<n �|�|�_�d��S)N)rS���r����r���r���)r���r:���r���r$���r���r���r���rn������s����z!ExpatBuilder.element_decl_handlerc���������� ���C���sf���|��j��j�|���}�|�d��k�r:�t�|���}�|�|��j��|�<n��|�j�j�d��|�d��d��|�d�|�|�g���d��S)Nr���)rS���r����r���r���r����)r����elemr:���r(����defaultZrequiredr$���r���r���r���ro������s���� z!ExpatBuilder.attlist_decl_handlerc�������������C���sL���|�|��j��_�|�|��j��_�|�d�k�rH�|�r9�d�|��j��_�qH�d�|��j��_�n��d��S)Nr���TF)rQ����version�encoding� standalone)r���r����r����r����r���r���r���rm������s����zExpatBuilder.xml_decl_handler) r-���r.���r/����__doc__r���rL���rO���rI���rN���r{���r}���rv���rU���r����r[���rh���rj���r]���r_���rb���rd���rf���rk���rW���r����rG���rY���r����r����rn���ro���rm���r���r���r���r���rB�������s:��� rB���c���������������@���s����e��Z�d��Z�d�Z�d �Z�d�d����Z�d�d����Z�d�d����Z�i�e�j �e �j�6e�j�e �j �6e�j�e �j�6e�j�e �j�6e�j�e �j�6e�j�e �j�6e�j�e �j�6e�j�e �j�6e�j�e �j�6e�j�e �j�6e�j�e �j�6e�j �e �j!�6Z"�d �S)rE���zoWrapper around a DOMBuilderFilter which implements the checks to make the whatToShow filter attribute work.rD���c�������������C���s ���|�|��_��d��S)N)rD���)r���rD���r���r���r���r������s����z#FilterVisibilityController.__init__c�������������C���sx���|��j��|�j�}�|��j�j�|�@rp�|��j�j�|���}�|�t�k�rG�t���n��|�t�k�rl�t�d�t �|�������n��|�St �Sd��S)Nz)startContainer() returned illegal value: )�_nodetype_maskr����rD���� whatToShowr�����FILTER_INTERRUPTrw����_ALLOWED_FILTER_RETURNSr9����reprr����)r���r�����mask�valr���r���r���r�������s���� z)FilterVisibilityController.startContainerc�������������C���s����|��j��|�j�}�|��j�j�|�@r��|��j�j�|���}�|�t�k�rG�t���n��|�t�k�r��|�j�}�x(�|�j �d��d����D]�}�|�j �|���qp�Wt�S|�t�k�r��t �d�t�|�������n��|�St�Sd��S)Nz%acceptNode() returned illegal value: )r����r����rD���r����r����r����rw���r����r����r����ZappendChildr����r����r9���r����r����)r���r����r����r�����parentr����r���r���r���r�������s���� z%FilterVisibilityController.acceptNodeN)zfilter)#r-���r.���r/���r����r0���r���r����r����r���ZSHOW_ELEMENTr���ZELEMENT_NODEZSHOW_ATTRIBUTEZATTRIBUTE_NODEZ SHOW_TEXTr����ZSHOW_CDATA_SECTIONr����ZSHOW_ENTITY_REFERENCEZENTITY_REFERENCE_NODEZSHOW_ENTITYZENTITY_NODEZSHOW_PROCESSING_INSTRUCTIONZPROCESSING_INSTRUCTION_NODEZSHOW_COMMENTZCOMMENT_NODEZ SHOW_DOCUMENT� DOCUMENT_NODEZSHOW_DOCUMENT_TYPEZDOCUMENT_TYPE_NODEZSHOW_DOCUMENT_FRAGMENTZDOCUMENT_FRAGMENT_NODEZ SHOW_NOTATIONZ NOTATION_NODEr����r���r���r���r���rE������s$��� rE���c���������������@���s"���e��Z�d��Z�d�Z�d�d����Z�d�S) �FilterCrutch�_builder�_level� _old_start�_old_endc�������������C���sO���d�|��_��|�|��_�|�j�}�|�j�|��_�|�j�|��_�|��j�|�_�|��j�|�_�d��S)Nr���) r����r����rH���rX���r����rZ���r����r����rY���)r���r2���rp���r���r���r���r�����s���� zFilterCrutch.__init__N)z_builderz_levelz _old_startz_old_end)r-���r.���r/���r0���r���r���r���r���r���r������s���r����c���������������@���s:���e��Z�d��Z�f��Z�d�d����Z�d�d����Z�d�d����Z�d�S)r����c�������������C���s>���t��j�|��|���|�j�}�x�d�D]�}�t�|�|�d����q �Wd��S)Nr\���rc���ri���re���rg���rl���)zProcessingInstructionHandlerzCommentHandlerzCharacterDataHandlerzStartCdataSectionHandlerzEndCdataSectionHandlerzExternalEntityRefHandler)r����r���rH����setattr)r���r2���rp���r:���r���r���r���r�����s���� ���� zRejecter.__init__c�������������G���s���|��j��d�|��_��d��S)Nr���)r����)r����argsr���r���r���r������s����zRejecter.start_element_handlerc�������������G���sZ���|��j��d�k�rF�|��j�j�}�|��j�j�|���|��j�|�_�|��j�|�_�n�|��j��d�|��_��d��S)Nr���r���)r����r����rH���rN���r����rX���r����rZ���)r���r����rp���r���r���r���rY��� ��s����zRejecter.end_element_handlerN)r-���r.���r/���r0���r���r����rY���r���r���r���r���r������s���r����c���������������@���s.���e��Z�d��Z�f��Z�d�d����Z�d�d����Z�d�S)r����c�������������G���sB���|��j��j�}�|��j�|����|��j��j�|�k �r>�|��j�d�|��_�n��d��S)Nr���)r����rR���r����r����)r���r����r����r���r���r���r����-��s���� zSkipper.start_element_handlerc�������������G���s`���|��j��d�k�r?�|��j�|��j�j�_�|��j�|��j�j�_�d��|��_�n�|��j��d�|��_��|��j�|����d��S)Nr���r���)r����r����r����rH���rX���r����rZ���)r���r����r���r���r���rY���3��s����zSkipper.end_element_handlerN)r-���r.���r/���r0���r����rY���r���r���r���r���r����*��s���r����z8http://xml.python.org/entities/fragment-builder/internalz�<!DOCTYPE wrapper %%s [ <!ENTITY fragment-builder-internal SYSTEM "%s"> %%s ]> <wrapper %%s >&fragment-builder-internal;</wrapper>c���������������@���sm���e��Z�d��Z�d�Z�d�d�d���Z�d�d����Z�d�d����Z�d �d ����Z�d�d����Z�d �d����Z �d�d����Z �d�S)�FragmentBuilderz�Builder which constructs document fragments given XML source text and a context node. The context node is expected to provide information about the namespace declarations which are in scope at the start of the fragment. Nc�������������C���sM���|�j��t�k�r$�|�|��_�|�|��_�n�|�j�|��_�|�|��_�t�j�|��|���d��S)N)r����r�����originalDocumentr����r����rB���r���)r���r����rJ���r���r���r���r���[��s���� zFragmentBuilder.__init__c�������������C���s���t��j�|����d��|��_�d��S)N)rB���rI����fragment)r���r���r���r���rI���d��s���� zFragmentBuilder.resetc�������������C���s���|��j��|�j������S)zRParse a document fragment from a file object, returning the fragment node.)r}���rs���)r���rx���r���r���r���r{���h��s����zFragmentBuilder.parseFilec������� ��� ���C���s����|�|��_��|��j����}�|��j�j�}�d�}�|�r��|�j�p?�|��j����}�|�j�rd�d�|�j�|�j�f�}�q��|�j�r��d�|�j�}�q��n�d�}�|��j����}�t �|�|�|�f�}�y�|�j �|�d���Wn�|��j�������Yn�X|��j�}�|��j����|�S)zMParse a document fragment from a string, returning the fragment node.rr���zPUBLIC "%s" "%s"zSYSTEM "%s"r���) �_sourcerO���r����r~���r�����_getDeclarationsr����r�����_getNSattrs�_FRAGMENT_BUILDER_TEMPLATErt���rI���r����) r���r|���rp���r~���Zidentr����ZnsattrsrQ���r����r���r���r���r}���m��s,���� zFragmentBuilder.parseStringc�������������C���s���|��j��j�j�}�d�}�|�r�x��t�|�j�j���D]v�}�|�j�j�|���}�|�rY�|�d�}�n��d�|�|�j�f�}�|�j�r��d�|�|�j�|�j �f�}�q.�d�|�|�j �f�}�q.�Wx��t�|�j �j���D]��}�|�j �j�|���}�|�r��|�d�}�n��d�|�|�j�f�}�|�j�rd�|�|�j�|�j �f�}�n5�|�j �r=d�|�|�j �f�}�n�d �|�|�j�j�f�}�|�j �rrd �|�|�j �f�}�n��|�d�}�q��Wn��|�S)z�Re-create the internal subset from the DocumentType node. This is only needed if we don't already have the internalSubset as a string. rr���z z%s<!NOTATION %sz!%s PUBLIC "%s" "%s">z%s SYSTEM "%s">z %s<!ENTITY %sz %s PUBLIC "%s" "%s"z%s SYSTEM "%s"z%s "%s"z%s NOTATION %s�>)r����r����r~���r����r����Zlength�itemZnodeNamer����r����r���Z firstChildr����r����)r���r~���r3���r����Znotationr ���r���r���r���r�������s6���� z FragmentBuilder._getDeclarationsc�������������C���s���d�S)Nrr���r���)r���r���r���r���r�������s����zFragmentBuilder._getNSattrsc�������������C���s����|�t��k�r��|��j�}�|��j�}�|��j�j�|���}�|��j�|��_�|��j�j����|��_�|��j�|��_�z�|�j�|��j �d���Wd��|�|��_�|�|��_�d��|��_ �Xd�St �j�|��|�|�|�|���Sd��S)Nr���r����)�$_FRAGMENT_BUILDER_INTERNAL_SYSTEM_IDrQ���rR���rH���ZExternalEntityParserCreater����ZcreateDocumentFragmentr����rt���r����rB���rk���)r���r����r����r����r����Zold_documentZold_cur_noderp���r���r���r���rk������s���� z+FragmentBuilder.external_entity_ref_handler)r-���r.���r/���r����r���rI���r{���r}���r����r����rk���r���r���r���r���r����R��s��� $r����c���������������@���sR���e��Z�d��Z�d�Z�d�d����Z�d�d����Z�d�d����Z�d�d ����Z�d �d����Z�d�S) � Namespacesz7Mix-in class for builders; adds support for namespaces.c�������������C���s ���g��|��_��d��S)N)�_ns_ordered_prefixes)r���r���r���r����_initNamespaces���s����zNamespaces._initNamespacesc�������������C���s���t��j�d�d���}�d�|�_�|�S)z'Create a new namespace-handling parser.Znamespace_separatorr5���T)r���rK���Znamespace_prefixes)r���rp���r���r���r���rL������s���� zNamespaces.createParserc�������������C���s/���t��j�|��|���|��j�j�r+�|��j�|�_�n��d�S)z.Insert the namespace-handlers onto the parser.N)rB���rN���rC���Znamespace_declarations�start_namespace_decl_handlerZStartNamespaceDeclHandler)r���rp���r���r���r���rN������s����zNamespaces.installc�������������C���s���|��j��j�|�|�f���d�S)z/Push this namespace declaration on our storage.N)r����r����)r���r?���r=���r���r���r���r�������s����z'Namespaces.start_namespace_decl_handlerc�������������C���s-��d�|�k�r*�t��|��|���\�}�}�}�}�n�t�}�|�}�d��}�t�}�t�j�|�|�|�|���}�|��j�|�_�t�|��j�|���|�|��_�|��j �rx�|��j �D]t�\�}�}�|�r��t�j �t�|��d�|���t�|�d���}�n�t�j �d�t�d�t���}�|�|�_ �|��j�|�_�t�|�|���q��W|��j �d��d����=n��|�r)|�j����|�j�} �|�j�} �x��t�d�t�|���d���D]��}�|�|�}�|�|�d�} �d�|�k�r�t��|��|���\�}�}�}�}�t�j �|�|�|�|���}�|�| �|�<|�| �|�|�f�<n2�t�j �|�t�|�t���}�|�| �|�<|�| �t�|�f�<|��j�|�_�| �|�_ �|�|�_�qXWn��d��S)Nr5���zxmlns:�xmlnsr���r���r���)rA���r���r���r���ZElementrQ���r����r ���rR���r����r����r4���r���r����r ���Z_ensure_attributes�_attrs�_attrsNSr����r8���ZownerElement)r���r:���r����r=���r>���r?���r@���r����r����r����r����r����r#���r����r���r���r���r�������sP���� z Namespaces.start_element_handlerN) r-���r.���r/���r����r����rL���rN���r����r����r���r���r���r���r�������s���/r����c���������������@���s"���e��Z�d��Z�d�Z�d�d����Z�d�S)�ExpatBuilderNSz*Document builder that supports namespaces.c�������������C���s���t��j�|����|��j����d��S)N)rB���rI���r����)r���r���r���r���rI���)��s���� zExpatBuilderNS.resetN)r-���r.���r/���r����rI���r���r���r���r���r����&��s���r����c���������������@���s.���e��Z�d��Z�d�Z�d�d����Z�d�d����Z�d�S)�FragmentBuilderNSz*Fragment builder that supports namespaces.c�������������C���s���t��j�|����|��j����d��S)N)r����rI���r����)r���r���r���r���rI���1��s���� zFragmentBuilderNS.resetc�������������C���s����d�}�|��j��}�g��}�x��|�r��t�|�d���r��x��|�j�j����D]p�\�}�}�|�|�k�r[�q=�n��|�j�|���|�r{�d�|�}�n�d�}�|�r��d�|�|�|�f�}�q=�d�|�|�f�}�q=�Wn��|�j�}�q�W|�S)zNReturn string of namespace attributes from this element and ancestors.rr����_ns_prefix_urizxmlns:r����z%s %s='%s'z %s='%s')r�����hasattrr�����itemsr����r����)r����attrsr����r����r?���r=���Zdeclnamer���r���r���r����5��s"���� zFragmentBuilderNS._getNSattrsN)r-���r.���r/���r����rI���r����r���r���r���r���r����.��s���r����c���������������@���s���e��Z�d��Z�d�Z�d�S)rw���zEException raised to short-circuit parsing in InternalSubsetExtractor.N)r-���r.���r/���r����r���r���r���r���rw���S��s���rw���c���������������@���sp���e��Z�d��Z�d�Z�d�Z�d�d����Z�d�d����Z�d�d����Z�d �d ����Z�d�d����Z �d �d����Z �d�d����Z�d�S)r���zBXML processor which can rip out the internal document type subset.Nc�������������C���s���|��j��S)z'Return the internal subset as a string.)r����)r���r���r���r���r����\��s����z!InternalSubsetExtractor.getSubsetc�������������C���s-���y�t��j�|��|���Wn�t�k �r(�Yn�Xd��S)N)rB���r{���rw���)r���rx���r���r���r���r{���`��s���� z!InternalSubsetExtractor.parseFilec�������������C���s-���y�t��j�|��|���Wn�t�k �r(�Yn�Xd��S)N)rB���r}���rw���)r���r|���r���r���r���r}���f��s���� z#InternalSubsetExtractor.parseStringc�������������C���s���|��j��|�_�|��j�|�_�d��S)N)rU���rV���r����rX���)r���rp���r���r���r���rN���l��s����zInternalSubsetExtractor.installc�������������C���sF���|�r9�|��j�����}�g��|��_�|��j�j�|�_�|��j�|�_�n �t������d��S)N)rO���r����r����ZDefaultHandlerr����r����rw���)r���r:���r����r����r����rp���r���r���r���rU���p��s���� z2InternalSubsetExtractor.start_doctype_decl_handlerc�������������C���s@���d�j��|��j���j�d�d���j�d�d���}�|�|��_�t������d��S)Nrr���z � � )�joinr�����replacerw���)r���r3���r���r���r���r����z��s����* z0InternalSubsetExtractor.end_doctype_decl_handlerc�������������C���s ���t�������d��S)N)rw���)r���r:���r����r���r���r���r������s����z-InternalSubsetExtractor.start_element_handler)r-���r.���r/���r����r����r����r{���r}���rN���rU���r����r����r���r���r���r���r���W��s��� r���Tc���������� ���C���sg���|�r�t�����}�n �t����}�t�|��t���rT�t�|��d�����}�|�j�|���}�Wd�QXn�|�j�|����}�|�S)z{Parse a document, returning the resulting Document node. 'file' may be either a file name or an open file object. �rbN)r����rB���� isinstance�str�openr{���)rx���� namespacesr2����fp�resultr���r���r����parse���s���� r����c�������������C���s(���|�r�t�����}�n �t����}�|�j�|����S)zOParse a document from a string, returning the resulting Document node. )r����rB���r}���)r|���r����r2���r���r���r���r}������s���� r}���c���������� ���C���sm���|�r�t��|���}�n�t�|���}�t�|��t���rZ�t�|��d�����}�|�j�|���}�Wd�QXn�|�j�|����}�|�S)z�Parse a fragment of a document, given the context from which it was originally extracted. context should be the parent of the node(s) which are in the fragment. 'file' may be either a file name or an open file object. r����N)r����r����r����r����r����r{���)rx���r����r����r2���r����r����r���r���r���� parseFragment���s����r����c�������������C���s.���|�r�t��|���}�n�t�|���}�|�j�|����S)z�Parse a fragment of a document from a string, given the context from which it was originally extracted. context should be the parent of the node(s) which are in the fragment. )r����r����r}���)r|���r����r����r2���r���r���r����parseFragmentString���s����r����c�������������C���s!���|��j��r�t�|����St�|����Sd�S)z,Create a builder based on an Options object.N)r����r����rB���)rJ���r���r���r����makeBuilder���s���� r����)3r����Zxml.domr���r���r���r���r���r���Zxml.parsersr���Zxml.dom.minidomr ���r ���Zxml.dom.NodeFilterr���r����r����r����ZDOMBuilderFilterr����r����r����r����ZgetDOMImplementationrP���ZTypeInfor!����objectr���r4���rA���rB���r����rE���r����r����r����r����r����r����r����r����r����� Exceptionrw���r���r����r}���r����r����r����r���r���r���r����<module>���s^��� 3��B:u_%,