HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/bs4/builder/__pycache__/_html5lib.cpython-311.pyc
�

��ncJ��d�dZdgZddlZddlZddlmZmZmZmZm	Z	ddl
mZmZddl
Z
ddlmZmZddl
mZmZmZmZ	ddlmZd	Zn#e$rZdd
lmZdZYdZ[ndZ[wwxYwGd�de	��ZGd
�dej��ZGd�de��Z Gd�dej!��Z"Gd�de"��Z#dS)�MIT�HTML5TreeBuilder�N)�DetectsXMLParsedAsHTML�
PERMISSIVE�HTML�HTML_5�HTMLTreeBuilder)�NamespacedAttribute�nonwhitespace_re)�
namespaces�prefixes)�Comment�Doctype�NavigableString�Tag)�_baseF)�baseTc�B�eZdZdZdZeeeegZdZ		d	d�Z
d�Zd�Zd�Z
dS)
raUse html5lib to build a tree.

    Note that this TreeBuilder does not support some features common
    to HTML TreeBuilders. Some of these features could theoretically
    be implemented, but at the very least it's quite difficult,
    because html5lib moves the parse tree around as it's being built.

    * This TreeBuilder doesn't use different subclasses of NavigableString
      based on the name of the tag in which the string was found.

    * You can't use a SoupStrainer to parse only part of a document.
    �html5libTNc#�|K�||_|rtjd��tj|��|dddfV�dS)NzjYou provided a value for exclude_encoding, but the html5lib tree builder doesn't support exclude_encoding.F)�user_specified_encoding�warnings�warnr�warn_if_markup_looks_like_xml)�self�markupr�document_declared_encoding�exclude_encodingss     �7D:\Python311\Lib\site-packages\bs4/builder/_html5lib.py�prepare_markupzHTML5TreeBuilder.prepare_markup@sf����(?��$�
�	H��M�G�
H�
H�
H�	�<�V�D�D�D��t�T�5�)�)�)�)�)�)�c���|jj�tjd��t	j|j���}||j_t��}t|t��str|j
|d<n
|j
|d<|j|fi|��}t|t��rd|_n:|jjjd}t|t��s|j}||_d|j_dS)Nz�You provided a value for parse_only, but the html5lib tree builder doesn't support parse_only. The entire document will be parsed.)�tree�override_encoding�encodingr)�soup�
parse_onlyrrr�
HTMLParser�create_treebuilder�underlying_builder�parser�dict�
isinstance�str�new_html5libr�parse�original_encoding�	tokenizer�stream�charEncoding�name)rrr+�extra_kwargs�docr1s      r�feedzHTML5TreeBuilder.feedRs���9��	`��M�_�
`�
`�
`��$�$�*A�B�B�B��)/���&��v�v���&�#�&�&�	H��
H�48�4P��0�1�1�+/�+G��Z�(��f�l�6�2�2�\�2�2���f�c�"�"�	6�%)�C�!�!� &� 0� 7� D�Q� G���/��5�5�
;�%6�$:�!�$5�C�!�)-���&�&�&r!c�R�t||j|j���|_|jS)N)�store_line_numbers)�TreeBuilderForHtml5libr&r:r*)r�namespaceHTMLElementss  rr)z#HTML5TreeBuilder.create_treebuilderns1��"8�!�4�9�#�6�#
�#
�#
����&�&r!c��d|zS)zSee `TreeBuilder`.z)<html><head></head><body>%s</body></html>�)r�fragments  r�test_fragment_to_documentz*HTML5TreeBuilder.test_fragment_to_documentus
��:�X�E�Er!)NN)�__name__�
__module__�__qualname__�__doc__�NAMErrr�features�TRACKS_LINE_NUMBERSr r8r)r@r>r!rrr*s����������D��j�&�$�/�H���KO�*�*�*�*�$.�.�.�8'�'�'�F�F�F�F�Fr!c�Z��eZdZ		d
�fd�	Zd�Zd�Zd�Zd�Zd�Zd	�Z	d
�Z
d�Zd�Z�xZ
S)r;NTc���|r||_nddlm}|	dd|i|��|_tt|���|��d|_||_dS)Nr��
BeautifulSoup��html.parserr:)rLrM)r&�bs4rK�superr;�__init__r+r:)rr<r&r:�kwargsrK�	__class__s      �rrPzTreeBuilderForHtml5lib.__init__|s�����		��D�I�I�)�)�)�)�)�)�&�
�!���6H�����D�I�	�$�d�+�+�4�4�5J�K�K�K����"4����r!c�j�|j���t|j|jd��S�N)r&�reset�Element�rs r�
documentClassz$TreeBuilderForHtml5lib.documentClass�s*���	�������t�y�$�)�T�2�2�2r!c��|d}|d}|d}tj|||��}|j�|��dS)Nr5�publicId�systemId)r�for_name_and_idsr&�object_was_parsed)r�tokenr5rZr[�doctypes      r�
insertDoctypez$TreeBuilderForHtml5lib.insertDoctype�sO���V�}����$����$���*�4��8�D�D���	�#�#�G�,�,�,�,�,r!c���i}|jr:|jr3|jjj���\}}||d<|dz
|d<|jj||fi|��}t||j|��S)N�
sourceline��	sourcepos)r+r:r2r3�positionr&�new_tagrV)rr5�	namespacerQrbrd�tags       r�elementClassz#TreeBuilderForHtml5lib.elementClass�s������;�	.�4�2�	.�%)�K�$9�$@�$I�$I�$K�$K�!�J�	�#-�F�<� �"+�A�+�F�;���d�i���i�:�:�6�:�:���s�D�I�y�1�1�1r!c�F�tt|��|j��SrT)�TextNoderr&)r�datas  r�commentClassz#TreeBuilderForHtml5lib.commentClass�s�����
�
�t�y�1�1�1r!c�~�ddlm}|dd��|_d|j_t	|j|jd��S)NrrJrLrMz[document_fragment])rNrKr&r5rV)rrKs  r�
fragmentClassz$TreeBuilderForHtml5lib.fragmentClass�sH��%�%�%�%�%�%�"�M�"�m�4�4��	�.��	���t�y�$�)�T�2�2�2r!c�D�|j�|j��dSrT)r&�append�element�r�nodes  r�appendChildz"TreeBuilderForHtml5lib.appendChild�s ���	�����&�&�&�&�&r!c��|jSrT)r&rWs r�getDocumentz"TreeBuilderForHtml5lib.getDocument�s
���y�r!c�J�tj�|��jSrT)�treebuilder_base�TreeBuilder�getFragmentrrrWs rr{z"TreeBuilderForHtml5lib.getFragment�s���+�7�7��=�=�E�Er!c������ddlm�g�tjd���d����fd�	��|d��d����S)NrrJz8^(.*?)(?: PUBLIC "(.*?)"(?: "(.*?)")?| SYSTEM "(.*?)")?$c�v��t|�	��r	t|t��r�
�|��}|r�|�d��}|jdkrj|�d��pd}|�d��p|�d��pd}��dd|z�d|�d	|�d
|�d�	��dS��dd|z�d|�d���dS��dd|z�d
���dSt|t��r!��dd|z�d|�d���dSt|t��r!��dd|z�d|�d���dS|jrt|j�d|j
��}n|j
}��dd|z�d|�d���|jr�g}t|j�
����D]w\}}t|t��rt|j�d|j
��}t|t��rd�|��}|�||f���xt!|��D])\}}��dd|dzz�|�d|�d����*|dz
}|jD]}�||���dS)Nrc�rL���|� z
<!DOCTYPE z "z" "z">�>z<!DOCTYPE >z<!-- z -->�"�<z=")r-r�match�group�	lastindexrqrrrgr
r5�attrs�list�itemsr
�join�sorted�children)
rr�indent�mr5rZr[�
attributes�value�childrK�
doctype_re�rv�serializeElements
         ����rr�z?TreeBuilderForHtml5lib.testSerializer.<locals>.serializeElement�s9����'�=�1�1�
���'�7�+�+�%
4��$�$�W�-�-���
B��7�7�1�:�:�D��{�Q��M�#$�7�7�1�:�:�#3���#$�7�7�1�:�:�#A�������#A�r���	�	�	�#&��<�<�<����x�x�x����#K�L�L�L�L�L��	�	�	��f����d�d�d�"K�L�L�L�L�L��I�I�I�#��,�,�,�@�A�A�A�A�A��G�W�-�-�
4��	�	�	�c�F�l�l�l�G�G�G�D�E�E�E�E�E��G�_�5�5�
4��	�	�	��v����w�w�w�?�@�@�@�@�@��$�(�&.�w�/@�&A�&A�&A�&-�l�l�4�D�D�#�<�D��	�	�	�s�V�|�|�|�T�T�T�:�;�;�;��=�
T�!#�J�'+�G�M�,?�,?�,A�,A�'B�'B�9�9���e�%�d�,?�@�@�S�.6�t�~�.F�.F�.F��	�	�#R�D�%�e�T�2�2�4�$'�H�H�U�O�O�E�"�)�)�4��-�8�8�8�8�'-�j�'9�'9�T�T���e��	�	�	�#��!��2D�2D�d�d�d�E�E�E�"R�S�S�S�S��!���$�-�4�4�E�$�$�U�F�3�3�3�3�4�4r!�
)r)rNrK�re�compiler�)rrrrKr�r�r�s  @@@@r�testSerializerz%TreeBuilderForHtml5lib.testSerializer�s�������%�%�%�%�%�%�
���Z� [�\�\�
�(	4�(	4�(	4�(	4�(	4�(	4�(	4�(	4�(	4�R	���!�$�$�$��y�y��}�}�r!)NT)rArBrCrPrXr`rirmrorurwr{r��
__classcell__)rRs@rr;r;zs��������37�$(�5�5�5�5�5�5�,3�3�3�-�-�-�2�2�2�2�2�2�3�3�3�'�'�'����F�F�F�0�0�0�0�0�0�0r!r;c�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�AttrListc�P�||_t|jj��|_dSrT)rrr,r�)rrrs  rrPzAttrList.__init__�s!������$�,�,�-�-��
�
�
r!c�r�t|j��������SrT)r�r�r��__iter__rWs rr�zAttrList.__iter__�s*���D�J�$�$�&�&�'�'�0�0�2�2�2r!c��|jjpi}||�d��vs"|jj|vr=|||jjvr)t	|t
��st
j|��}||j|<dS)N�*)rr�cdata_list_attributes�getr5r-r�r�findall)rr5r��	list_attrs    r�__setitem__zAttrList.__setitem__�s����L�6�<�"�	��I�M�M�#�&�&�&�	8���!�Y�.�	8��I�d�l�&7�8�8�	8�
�e�T�*�*�
8�(�0��7�7��"���T���r!c�N�t|j�����SrT)r�r�r�rWs rr�zAttrList.itemss���D�J�$�$�&�&�'�'�'r!c�N�t|j�����SrT�r�r��keysrWs rr�z
AttrList.keyss���D�J�O�O�%�%�&�&�&r!c�*�t|j��SrT)�lenr�rWs r�__len__zAttrList.__len__s���4�:���r!c��|j|SrT)r��rr5s  r�__getitem__zAttrList.__getitem__
s���z�$��r!c�R�|t|j�����vSrTr�r�s  r�__contains__zAttrList.__contains__s!���t�D�J�O�O�-�-�.�.�.�.r!N)rArBrCrPr�r�r�r�r�r�r�r>r!rr�r��s�������.�.�.�3�3�3�#�#�#�(�(�(�'�'�'���� � � �/�/�/�/�/r!r�c��eZdZd�Zd�Zd�Zd�Zeee��Zd
d�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zee��ZdS)rVc�z�tj�||j��||_||_||_dSrT)ry�NoderPr5rrr&rg)rrrr&rgs    rrPzElement.__init__s6����&�&�t�W�\�:�:�:������	�"����r!c��dx}}t|t��r|x}}nLt|t��r|}n4|jjt
kr|jx}}||_n|j}||_t|t��s |j�|j���|�~|jjrr|jjdjt
krR|jjd}|j	�
||z��}|�|��||j	_dSt|t��r|j	�
|��}|jjr|j�
d��}n-|jj�|j	�
��}n|j}|j	�||j|���dS)N���F)�parent�most_recent_element)r-r.rrrrRrr��extract�contentsr&�
new_string�replace_with�_most_recent_element�_last_descendant�next_elementr])rrt�string_childr��old_element�new_elementr�s       rruzElement.appendChilds���#�#��u��d�C� � �	�$(�'�L�5�5�
��c�
"�
"�
	��E�E�
�\�
#��
6�	�#'�<�/�L�5��D�K�K��L�E��D�K��%��%�%�	#�%�,�	#��L� � �"�"�"��	9���)>�	9���%�b�)�3��F�	9�
�,�/��3�K��)�.�.�{�\�/I�J�J�K��$�$�[�1�1�1�-8�D�I�*�*�*��$��$�$�
3��	�,�,�T�2�2��
�|�$�	
3�&*�l�&C�&C�E�&J�&J�#�#���*�
3�
'+�i�&@�&@�&B�&B�#�#�&*�l�#��I�'�'��d�l�$7�
(�
9�
9�
9�
9�
9r!c�b�t|jt��riSt|j��SrT)r-rrrr�rWs r�
getAttributeszElement.getAttributesMs+���d�l�G�,�,�	��I����%�%�%r!c���|��t|��dkr�g}t|�����D]+\}}t|t��rt|�}||=|||<�,|jj�|j	|��t|�����D]\}}||j
|<�|jj�|j
��dSdSdS)Nr)r�r�r�r-�tupler
r&�builder�$_replace_cdata_list_attribute_valuesr5rr�set_up_substitutions)rr��converted_attributesr5r��new_names      r�
setAttributeszElement.setAttributesRs���	A�c�*�o�o��&9�	A�#%� �#�J�$4�$4�$6�$6�7�7�
1�
1���e��d�E�*�*�1�2�D�9�H�"�4�(�+0�J�x�(���I��B�B��	�:�
'�
'�
'�#�J�$4�$4�$6�$6�7�7�
+�
+���e�%*���T�"�"�
�I��2�2�4�<�@�@�@�@�@�%	A�	A�	A�	Ar!Nc��t|j�|��|j��}|r|�||��dS|�|��dSrT)rkr&r��insertBeforeru)rrlr��texts    r�
insertTextzElement.insertTexthsa����	�,�,�T�2�2�D�I�>�>���	#����d�L�1�1�1�1�1����T�"�"�"�"�"r!c��|j�|j��}|jjtkr}|jjrq|jj|dz
jtkrN|jj|dz
}|j�||jz��}|�|��dS|j�||j��||_	dS)Nrc)
rr�indexrRrr�r&r�r��insertr�)rrt�refNoder��old_node�new_strs      rr�zElement.insertBeforeos�����"�"�7�?�3�3���L�"�o�5�	�$�,�:O�	���%�e�A�g�.�8�O�K�	��|�,�U�1�W�5�H��i�*�*�8�d�l�+B�C�C�G��!�!�'�*�*�*�*�*��L����t�|�4�4�4��D�K�K�Kr!c�8�|j���dSrT)rrr�rss  r�removeChildzElement.removeChild{s����������r!c�>�|j}|j}|j}|�dd��}t|j��dkr|jd}|j}n	d}|j}|j}t|��dkrm|d}	|�||	_n||	_||	_|�|	|_n|	|_|�|	|_|d�dd��}
||
_|�|
|_d|
_|D]#}||_|j�	|���$g|_||_dS)z1Move all of this tag's children into another tag.Frr�NT)
rr�next_siblingr�r�r�r��previous_element�previous_siblingr�rq)r�
new_parentrr�new_parent_element�final_next_element�new_parents_last_descendant�new_parents_last_child�(new_parents_last_descendant_next_element�	to_append�first_child�last_childs_last_descendantr�s            r�reparentChildrenzElement.reparentChildren~s����,��'�/��%�1��&8�&I�&I�%�QV�&W�&W�#��!�*�+�+�a�/�	W�&8�%@��%D�"�7R�7_�4�4�&*�"�7I�7V�4��$�	��y�>�>�A��	<�$�A�,�K�*�
B�/J��,�,�/A��,�+A�K�(�*�
>�;F�+�8�8�2=�"�/�%�
B�6A�&�3�+4�B�-�*H�*H��PT�*U�*U�'�7_�'�4�7�
h�Mh�8�I�7;�'�4��	6�	6�E�-�E�L��'�.�.�u�5�5�5�5����1����r!c��|j�|jj|j��}t||j|j��}|jD]\}}||j|<�|SrT)r&rfrrr5rgrVr�)rrhrt�keyr�s     r�	cloneNodezElement.cloneNode�s^���i����� 1�4�>�B�B���s�D�I�t�~�6�6����	)�	)�I�C��#(�D�O�C� � ��r!c��|jjSrT)rrr�rWs r�
hasContentzElement.hasContent�s
���|�$�$r!c�\�|jdkrtd|jfS|j|jfS)N�html)rgrr5rWs r�getNameTuplezElement.getNameTuple�s2���>�T�!�	-��f�%�t�y�0�0��>�4�9�,�,r!rT)rArBrCrPrur�r��propertyr�r�r�r�r�r�r�r��	nameTupler>r!rrVrVs�������#�#�#�49�49�49�l&�&�&�
A�A�A�(��-��7�7�J�#�#�#�#�
�
�
����<2�<2�<2�D���%�%�%�-�-�-����&�&�I�I�Ir!rVc��eZdZd�Zd�ZdS)rkc�b�tj�|d��||_||_dSrT)ryr�rPrrr&)rrrr&s   rrPzTextNode.__init__�s-����&�&�t�T�2�2�2������	�	�	r!c��t�rT)�NotImplementedErrorrWs rr�zTextNode.cloneNode�s��!�!r!N)rArBrCrPr�r>r!rrkrk�s2���������
"�"�"�"�"r!rk)$�__license__�__all__rr��bs4.builderrrrrr	�bs4.elementr
rr�html5lib.constantsrr
rrrr�html5lib.treebuildersrryr/�ImportError�errrzr;�objectr�r�rVrkr>r!r�<module>rsl�����������	�	�	�	������������������������������������������������?�?�?�?�?�?��L�L������>�>�>�>�>�>��L�L�L�L�L�L���������
MF�MF�MF�MF�MF��MF�MF�MF�`v�v�v�v�v�-�9�v�v�v�p/�/�/�/�/�v�/�/�/�<@'�@'�@'�@'�@'��#�@'�@'�@'�D"�"�"�"�"�w�"�"�"�"�"s�A�A�A�A