Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/bs4/builder/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/bs4/builder/__pycache__/_html5lib.cpython-312.pyc

�

(ٜg�J��V�dZdgZddlZddlZddlmZmZmZmZm	Z	ddl
mZmZddl
Z
ddlmZmZddl
mZmZmZmZ	ddlmZd	ZGd�de	�ZGd
�dej:�ZGd�de�Z Gd�dejB�Z"Gd�de"�Z#y#e$rZdd
lmZdZYdZ[�^dZ[wwxYw)�MIT�HTML5TreeBuilder�N)�DetectsXMLParsedAsHTML�
PERMISSIVE�HTML�HTML_5�HTMLTreeBuilder)�NamespacedAttribute�nonwhitespace_re)�
namespaces�prefixes)�Comment�Doctype�NavigableString�Tag)�_baseF)�baseTc�@�eZdZdZdZeeeegZdZ		d	d�Z
d�Zd�Zd�Z
y)
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�||_|rtjdd��tj|d��|dddf��y�w)NzjYou provided a value for exclude_encoding, but the html5lib tree builder doesn't support exclude_encoding.���
stacklevelF)�user_specified_encoding�warnings�warnr�warn_if_markup_looks_like_xml)�self�markupr�document_declared_encoding�exclude_encodingss     �@/usr/local/lib/python3.12/site-packages/bs4/builder/_html5lib.py�prepare_markupzHTML5TreeBuilder.prepare_markup@sM����(?��$�
��M�M�|��
�	�<�<��q�	
��t�T�5�)�)�s�AAc�B�|jj�tjdd��t	j
|j��}||j_t�}t|t�s%tr|j|d<n|j|d<|j|fi|��}t|t�rd|_nF|j j"j$d}t|t�s|j&}||_d|j_y)Nz�You provided a value for parse_only, but the html5lib tree builder doesn't support parse_only. The entire document will be parsed.�r)�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�docr4s      r"�feedzHTML5TreeBuilder.feedWs����9�9���+��M�M�U��
��$�$�$�*A�*A�B��)/����&��v���&�#�&��48�4P�4P��0�1�+/�+G�+G��Z�(��f�l�l�6�2�\�2���f�c�"�%)�C�!� &� 0� 0� 7� 7� D� D�Q� G���/��5�%6�$:�$:�!�$5�C�!�)-����&�c�h�t||j|j��|_|jS)N)�store_line_numbers)�TreeBuilderForHtml5libr)r>r-)r�namespaceHTMLElementss  r"r,z#HTML5TreeBuilder.create_treebuildervs/��"8�!�4�9�9�#�6�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_document}s
��:�X�E�Er<)NN)�__name__�
__module__�__qualname__�__doc__�NAMErrr�features�TRACKS_LINE_NUMBERSr#r;r,rDrBr<r"rr*s@����D��j�&�$�/�H���KO�*�..�>'�Fr<c�Z��eZdZ		d�fd�	Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Z�xZ
S)r?c���|r||_nddlm}|	dd|i|��|_tt|�|�d|_||_y)Nr��
BeautifulSoupr>)��html.parser)r)�bs4rO�superr?�__init__r.r>)rr@r)r>�kwargsrO�	__class__s      �r"rTzTreeBuilderForHtml5lib.__init__�sU�����D�I�)�&�!��6H����D�I�	�$�d�4�5J�K����"4��r<c�x�|jj�t|j|jd�S�N)r)�reset�Element�rs r"�
documentClassz$TreeBuilderForHtml5lib.documentClass�s'���	�	�����t�y�y�$�)�)�T�2�2r<c��|d}|d}|d}tj|||�}|jj|�y)Nr8�publicId�systemId)r�for_name_and_idsr)�object_was_parsed)r�tokenr8r^r_�doctypes      r"�
insertDoctypez$TreeBuilderForHtml5lib.insertDoctype�sE���V�}����$����$���*�*�4��8�D���	�	�#�#�G�,r<c��i}|jrJ|jr>|jjjj	�\}}||d<|dz
|d<|j
j||fi|��}t||j
|�S)N�
sourceline��	sourcepos)r.r>r5r6�positionr)�new_tagrZ)rr8�	namespacerUrfrh�tags       r"�elementClassz#TreeBuilderForHtml5lib.elementClass�s������;�;�4�2�2�%)�K�K�$9�$9�$@�$@�$I�$I�$K�!�J�	�#-�F�<� �"+�A�+�F�;���d�i�i����i�:�6�:���s�D�I�I�y�1�1r<c�@�tt|�|j�SrX)�TextNoderr))r�datas  r"�commentClassz#TreeBuilderForHtml5lib.commentClass�s�����
�t�y�y�1�1r<c��ddlm}|dd�|_d|j_t	|j|jd�S)NrrNrPrQz[document_fragment])rRrOr)r8rZ)rrOs  r"�
fragmentClassz$TreeBuilderForHtml5lib.fragmentClass�s7��%�"�"�m�4��	�.��	�	���t�y�y�$�)�)�T�2�2r<c�N�|jj|j�yrX)r)�append�element�r�nodes  r"�appendChildz"TreeBuilderForHtml5lib.appendChild�s���	�	������&r<c��|jSrX)r)r[s r"�getDocumentz"TreeBuilderForHtml5lib.getDocument�s���y�y�r<c�T�tjj|�jSrX)�treebuilder_base�TreeBuilder�getFragmentrvr[s r"rz"TreeBuilderForHtml5lib.getFragment�s���+�+�7�7��=�E�E�Er<c������ddlm�g�tjd��d����fd�	��|d�dj	��S)NrrNz8^(.*?)(?: PUBLIC "(.*?)"(?: "(.*?)")?| SYSTEM "(.*?)")?$c���t|�	�r	t|t�rlj
j|�}|r�|jd�}|jdkDr_|jd�xsd}|jd�xs|jd�xsd}�jdd|z�d|�d	|�d
|�d�	�y�jdd|z�d|�d��y�jdd|z�d
��yt|t�r�jdd|z�d|�d��yt|t�r�jdd|z�d|�d��y|jr#t|j�d|j��}n|j}�jdd|z�d|�d��|jr�g}t|jj��D]k\}}t|t�r"t|j�d|j��}t|t�rdj|�}|j||f��mt!|�D]%\}}�jdd|dzz�|�d|�d���'|dz
}|j"D]}�||��
y)Nrg�rPrr%�|� z
<!DOCTYPE z "z" "z">�>z<!DOCTYPE >z<!-- z -->�"�<z=")r0r�match�group�	lastindexrurrrkr
r8�attrs�list�itemsr
�join�sorted�children)
rv�indent�mr8r^r_�
attributes�value�childrO�
doctype_re�rv�serializeElements
         ����r"r�z?TreeBuilderForHtml5lib.testSerializer.<locals>.serializeElement�s����'�=�1���'�7�+��$�$�W�-����7�7�1�:�D��{�{�Q��#$�7�7�1�:�#3���#$�7�7�1�:�#A������#A�r���	�	�#&��<��x��#K�L��	�	��f��d�"K�L��I�I�#��,�@�A��G�W�-��	�	�c�F�l�G�D�E��G�_�5��	�	��v��w�?�@��$�$�&.�w�/@�/@�&A�&-�l�l�4�D�#�<�<�D��	�	�s�V�|�T�:�;��=�=�!#�J�'+�G�M�M�,?�,?�,A�'B���e�%�d�,?�@�.6�t�~�~�.F��	�	�#R�D�%�e�T�2�$'�H�H�U�O�E�"�)�)�4��-�8�(C�(.�j�'9���e��	�	�#��!��2D�d�E�"R�S�(:��!���$�-�-�E�$�U�F�3�.r<�
)r)rRrO�re�compiler�)rrvrOr�r�r�s  @@@@r"�testSerializerz%TreeBuilderForHtml5lib.testSerializer�s?���%�
���Z�Z� [�\�
�(	4�(	4�R	��!�$��y�y��}�r<)NT)rErFrGrTr\rdrmrqrsryr{rr��
__classcell__)rVs@r"r?r?�s<���37�$(�5�,3�-�2�2�3�'��F�0r<r?c�<�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�AttrListc�Z�||_t|jj�|_yrX)rvr/r�)rrvs  r"rTzAttrList.__init__�s������$�,�,�,�,�-��
r<c�d�t|jj��j�SrX)r�r�r��__iter__r[s r"r�zAttrList.__iter__�s#���D�J�J�$�$�&�'�0�0�2�2r<c�H�|jjxsi}||jdg�vs@|jj|vrM||j|jjg�vr%t	|t
�st
j|�}||j|<y)N�*)rv�cdata_list_attributes�getr8r0r�r�findall)rr8r��	list_attrs    r"�__setitem__zAttrList.__setitem__s����L�L�6�6�<�"�	��I�M�M�#�r�*�*����!�!�Y�.��I�M�M�$�,�,�*;�*;�R�@�@��e�T�*�(�0�0��7��"����T�r<c�H�t|jj��SrX)r�r�r�r[s r"r�zAttrList.itemss���D�J�J�$�$�&�'�'r<c�H�t|jj��SrX�r�r��keysr[s r"r�z
AttrList.keyss���D�J�J�O�O�%�&�&r<c�,�t|j�SrX)�lenr�r[s r"�__len__zAttrList.__len__s���4�:�:��r<c� �|j|SrX)r��rr8s  r"�__getitem__zAttrList.__getitem__s���z�z�$��r<c�L�|t|jj��vSrXr�r�s  r"�__contains__zAttrList.__contains__s���t�D�J�J�O�O�-�.�.�.r<N)rErFrGrTr�r�r�r�r�r�r�rBr<r"r�r��s*��.�3�#�(�'�� �/r<r�c�r�eZdZd�Zd�Zd�Zd�Zeee�Zd
d�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zee�Zy)rZc��tjj||j�||_||_||_yrX)r}�NoderTr8rvr)rk)rrvr)rks    r"rTzElement.__init__s1�����&�&�t�W�\�\�:������	�"��r<c��dx}}t|t�r|x}}nYt|t�r|}nF|jjt
k(r|jx}}||_n|j}||_t|t�s&|j�|jj�|��|jjr�|jjdjt
k(rZ|jjd}|jj||z�}|j|�||j_yt|t�r|jj|�}|jjr|jjd�}n=|jj�|jj�}n|j}|jj||j|��y)N���F)�parent�most_recent_element)r0r1rrvrVrr��extract�contentsr)�
new_string�replace_with�_most_recent_element�_last_descendant�next_elementra)rrx�string_childr��old_element�new_elementr�s       r"ryzElement.appendChilds���#�#��u��d�C� �$(�'�L�5�
��c�
"��E�
�\�\�
#�
#��
6�#'�<�<�/�L�5��D�K��L�L�E��D�K��%��%�%�,�,�*B��L�L� � �"��$����)>�)>����%�%�b�)�3�3��F��,�,�/�/��3�K��)�)�.�.�{�\�/I�J�K��$�$�[�1�-8�D�I�I�*��$��$��	�	�,�,�T�2��
�|�|�$�$�&*�l�l�&C�&C�E�&J�#����*�*�6�
'+�i�i�&@�&@�&B�#�&*�l�l�#��I�I�'�'��d�l�l�$7�
(�
9r<c�d�t|jt�riSt|j�SrX)r0rvrr�r[s r"�
getAttributeszElement.getAttributesUs$���d�l�l�G�,��I�����%�%r<c���|��t|�dkDr�g}t|j��D]&\}}t|t�s�t|�}||=|||<�(|jjj|j|�t|j��D]\}}||j|<�|jjj|j�yyy)Nr)r�r�r�r0�tupler
r)�builder�$_replace_cdata_list_attribute_valuesr8rv�set_up_substitutions)rr��converted_attributesr8r��new_names      r"�
setAttributeszElement.setAttributesZs����!�c�*�o��&9�#%� �#�J�$4�$4�$6�7���e��d�E�*�2�D�9�H�"�4�(�+0�J�x�(�	 8�
�I�I���B�B��	�	�:�
'�#�J�$4�$4�$6�7���e�%*����T�"� 8�
�I�I���2�2�4�<�<�@�%':�!r<Nc��t|jj|�|j�}|r|j||�y|j	|�yrX)ror)r��insertBeforery)rrpr��texts    r"�
insertTextzElement.insertTextpsB����	�	�,�,�T�2�D�I�I�>������d�L�1����T�"r<c��|jj|j�}|jjtk(r�|jjr�|jj|dz
jtk(rV|jj|dz
}|j
j
||jz�}|j|�y|jj||j�||_	y)Nrg)
rv�indexrVrr�r)r�r��insertr�)rrx�refNoder��old_node�new_strs      r"r�zElement.insertBeforews������"�"�7�?�?�3���L�L�"�"�o�5�$�,�,�:O�:O����%�%�e�A�g�.�8�8�O�K��|�|�,�,�U�1�W�5�H��i�i�*�*�8�d�l�l�+B�C�G��!�!�'�*��L�L����t�|�|�4��D�Kr<c�8�|jj�yrX)rvr�rws  r"�removeChildzElement.removeChild�s�������r<c�\�|j}|j}|j}|jdd�}t|j�dkDr|jd}|j
}nd}|j
}|j}t|�dkDrc|d}	|�||	_n||	_||	_|�|	|_n|	|_|�|	|_|djdd�}
||
_|�|
|_d|
_|D]$}||_|jj|��&g|_||_y)z1Move all of this tag's children into another tag.Frr�NT)
rv�next_siblingr�r�r�r��previous_element�previous_siblingr�ru)r�
new_parentrv�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�1��&8�&I�&I�%�QV�&W�#��!�*�*�+�a�/�&8�%@�%@��%D�"�7R�7_�7_�4�&*�"�7I�7V�7V�4��$�$�	��y�>�A��$�A�,�K�*�6�/J��,�/A��,�+A�K�(�*�6�;F�+�8�2=�"�/�%�1�6A�&�3�+4�B�-�*H�*H��PT�*U�'�7_�'�4�7�C�Mh�8�I�7;�'�4��E�-�E�L��'�'�.�.�u�5��
���1��r<c��|jj|jj|j�}t||j|j�}|jD]\}}||j|<�|SrX)r)rjrvr8rkrZr�)rrlrx�keyr�s     r"�	cloneNodezElement.cloneNode�sa���i�i������ 1� 1�4�>�>�B���s�D�I�I�t�~�~�6�����I�C��#(�D�O�O�C� �)��r<c�.�|jjSrX)rvr�r[s r"�
hasContentzElement.hasContent�s���|�|�$�$�$r<c�z�|jdk(rtd|jfS|j|jfS)N�html)rkrr8r[s r"�getNameTuplezElement.getNameTuple�s5���>�>�T�!��f�%�t�y�y�0�0��>�>�4�9�9�,�,r<rX)rErFrGrTryr�r��propertyr�r�r�r�r�r�r�r��	nameTuplerBr<r"rZrZsV��#�49�l&�
A�(�-��7�J�#�
��<2�D�%�-���&�Ir<rZc��eZdZd�Zd�Zy)roc�`�tjj|d�||_||_yrX)r}r�rTrvr))rrvr)s   r"rTzTextNode.__init__�s&�����&�&�t�T�2������	r<c��t�rX)�NotImplementedErrorr[s r"r�zTextNode.cloneNode�s��!�!r<N)rErFrGrTr�rBr<r"roro�s���
"r<ro)$�__license__�__all__rr��bs4.builderrrrrr	�bs4.elementr
rr�html5lib.constantsrr
rrrr�html5lib.treebuildersrr}r2�ImportError�errr~r?�objectr�r�rZrorBr<r"�<module>rs���������	���������?��L�UF��UF�pv�-�9�9�v�p/�v�/�<@'��#�#�@'�D"�w�"��k
��>��L���s�B�B(�B#�#B(

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists