Sindbad~EG File Manager

Current Path : /proc/2233733/root/usr/local/lib/python3.12/site-packages/bs4/__pycache__/
Upload File :
Current File : //proc/2233733/root/usr/local/lib/python3.12/site-packages/bs4/__pycache__/diagnose.cpython-312.pyc

�

(ٜg��6�dZdZddlZddlmZddlmZddlZddlmZm	Z	ddl
mZddlZddl
Z
ddlZddlZddlZddlZddlZddlZd�Zdd	�ZGd
�de�Zd�Zd
ZdZdd�Zdd�Zdd�Zdd�Zdd�Zedk(r!eej>jA��yy)z=Diagnostic functions, mainly for use when doing tech support.�MIT�N)�BytesIO)�
HTMLParser)�
BeautifulSoup�__version__)�builder_registryc	���tdtz�tdtjz�gd�}|D]F}tj
D]}||jvs��'|j|�td|z��Hd|vrM|jd�	ddl	m
}td	d
jtt|j��z�d
|vr	ddl}td|jz�t#|d�r|j%�}|D]V}td|z�d}	t'||��}	d}|r'td|z�t	j/��td��Xy#t$r}td�Yd}~��d}~wwxYw#t$r}td�Yd}~��d}~wwxYw#t($r,}td|z�t+j,�Yd}~��d}~wwxYw)z�Diagnostic suite for isolating common problems.

    :param data: A string containing markup that needs to be explained.
    :return: None; diagnostics are printed to standard output.
    z'Diagnostic running on Beautiful Soup %szPython version %s)�html.parser�html5lib�lxmlz;I noticed that %s is not installed. Installing it may help.rzlxml-xmlr��etreezFound lxml version %s�.z.lxml is not installed or couldn't be imported.NrzFound html5lib version %sz2html5lib is not installed or couldn't be imported.�readz#Trying to parse your markup with %sF)�featuresT�%s could not parse the markup.z#Here's what %s did with the markup:zP--------------------------------------------------------------------------------)�printr�sys�versionr�buildersr�remove�appendrr�join�map�str�LXML_VERSION�ImportErrorr�hasattrrr�	Exception�	traceback�	print_exc�prettify)
�data�
basic_parsers�name�builderr�er�parser�success�soups
          �7/usr/local/lib/python3.12/site-packages/bs4/diagnose.py�diagnoser,s���
�4�{�B�D�	�����,�.�7�M���'�0�0�G��w�'�'�'��1�
� � ��&��M���
�
�������Z�(�	B�"��*�S�X�X�c�#�e�>P�>P�6Q�-R�R�T��]�"�	F���.��1E�1E�E�G�
�t�V���y�y�{����
�4�v�=�?���	"� ���7�D��G���8�6�A�C��4�=�=�?�$�
�x�� ��!�	B��@�
B�
B��	B���	F��D�
F�
F��	F���	"��3�f�<�>����!�!��	"�sH�;E(�F	�"F*�(	F�1F�F�		F'�F"�"F'�*	G�3"G�Gc��ddlm}|jdd�}t|t�r|jd�}t
|�}|j|f||d�|��D]-\}}t|�d|jd�d|j����/y	)
a�Print out the lxml events that occur during parsing.

    This lets you see how lxml parses a document when no Beautiful
    Soup code is running. You can use this to determine whether
    an lxml-specific problem is in Beautiful Soup's lxml tree builders
    or in lxml itself.

    :param data: Some markup.
    :param html: If True, markup will be parsed with lxml's HTML parser.
       if False, lxml's XML parser will be used.
    rr
�recoverT�utf8)�htmlr.z, z>4N)rr�pop�
isinstancer�encoder�	iterparser�tag�text)r#r0�kwargsrr.�reader�event�elements        r+�
lxml_tracer;Ns����j�j��D�)�G��$����{�{�6�"��
�T�]�F�)�%�/�/����7��.4����w�	��w�{�{�G�L�L�A�C��c�L�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
y)
�AnnouncingParserz�Subclass of HTMLParser that announces parse events, without doing
    anything else.

    You can use this to get a picture of how html.parser sees a given
    document. The easiest way to do this is to call `htmlparser_trace`.
    c��t|�y)N)r)�self�ss  r+�_pzAnnouncingParser._pls	��
�a�r<c�,�|jd|z�y)Nz%s START�rB)r@r%�attrss   r+�handle_starttagz AnnouncingParser.handle_starttagos�����
�T�!�"r<c�,�|jd|z�y)Nz%s ENDrD�r@r%s  r+�
handle_endtagzAnnouncingParser.handle_endtagrs������4�� r<c�,�|jd|z�y)Nz%s DATArD�r@r#s  r+�handle_datazAnnouncingParser.handle_datau������	�D� �!r<c�,�|jd|z�y)Nz
%s CHARREFrDrHs  r+�handle_charrefzAnnouncingParser.handle_charrefx�������t�#�$r<c�,�|jd|z�y)Nz%s ENTITYREFrDrHs  r+�handle_entityrefz!AnnouncingParser.handle_entityref{s�������%�&r<c�,�|jd|z�y)Nz
%s COMMENTrDrKs  r+�handle_commentzAnnouncingParser.handle_comment~rPr<c�,�|jd|z�y)Nz%s DECLrDrKs  r+�handle_declzAnnouncingParser.handle_decl�rMr<c�,�|jd|z�y)Nz%s UNKNOWN-DECLrDrKs  r+�unknown_declzAnnouncingParser.unknown_decl�s�����!�D�(�)r<c�,�|jd|z�y)Nz%s PIrDrKs  r+�	handle_pizAnnouncingParser.handle_pi�s������$��r<N)�__name__�
__module__�__qualname__�__doc__rBrFrIrLrOrRrTrVrXrZ�r<r+r>r>ds9����#�!�"�%�'�%�"�*� r<r>c�:�t�}|j|�y)z�Print out the HTMLParser events that occur during parsing.

    This lets you see how HTMLParser parses a document when no
    Beautiful Soup code is running.

    :param data: Some markup.
    N)r>�feed)r#r(s  r+�htmlparser_tracerb�s���
�F�
�K�K��r<�aeiou�bcdfghjklmnpqrstvwxyzc��d}t|�D]/}|dzdk(rt}nt}|tj|�z
}�1|S)z#Generate a random word-like string.��r)�range�_consonants�_vowels�random�choice)�lengthrA�i�ts    r+�rwordrp�sD��
�A�
�6�]���q�5�A�:��A��A�	�V�]�]�1�
����
�Hr<c�D�djd�t|�D��S)z'Generate a random sentence-like string.� c3�ZK�|]#}ttjdd�����%y�w)��	N)rprk�randint)�.0rns  r+�	<genexpr>zrsentence.<locals>.<genexpr>�s!����F�
�1�E�&�.�.��1�-�.�
�s�)+)rrh)rms r+�	rsentencery�s���8�8�F��f�
�F�F�Fr<c	��gd�}g}t|�D]�}tjdd�}|dk(r*tj|�}|j	d|z��H|dk(r/|j	ttjdd����||dk(s��tj|�}|j	d|z���d	d
j
|�zdzS)z+Randomly generate an invalid HTML document.)�p�div�spanrn�b�script�tabler�z<%s>�rtrgz</%s>z<html>�
z</html>)rhrkrvrlrryr)�num_elements�	tag_names�elementsrnrl�tag_names      r+�rdocr��s���A�I��H�
�<�
 ������!�$���Q�;��}�}�Y�/�H��O�O�F�X�-�.�
�q�[��O�O�I�f�n�n�Q�q�&9�:�;�
�q�[��}�}�Y�/�H��O�O�G�h�.�/�!��d�i�i��)�)�I�5�5r<c���tdtz�t|�}tdt|�z�dddgddfD]Q}d}	t	j�}t||�}t	j�}d}|s�?td|z
fz��Sdd
l	m
}t	j�}|j|�t	j�}td||z
z�dd
l}	|	j�}t	j�}|j|�t	j�}td||z
z�y
#t$r,}td	|z�tj�Yd
}~��d
}~wwxYw)z.Very basic head-to-head performance benchmark.z1Comparative parser benchmark on Beautiful Soup %sz3Generated a large invalid HTML document (%d bytes).rr0rr
FTrNz"BS4+%s parsed the markup in %.2fs.rr
z$Raw lxml parsed the markup in %.2fs.z(Raw html5lib parsed the markup in %.2fs.)rrr��len�timerrr r!rr�HTMLrr�parse)
r�r#r(r)�ar*r~r'rrs
          r+�benchmark_parsersr��s>��	�>��L�N����D�	�@�3�t�9�L�N��F�F�+�Z��G����	"��	�	��A� ��v�.�D��	�	��A��G���7�6�1�Q�3�-�G�I�H���	�	��A�	�J�J�t���	�	��A�	�1�Q�q�S�9�;��
�
 �
 �
"�F��	�	��A�
�L�L����	�	��A�	�5��1��=�?��#�	"��3�f�<�>����!�!��	"�s�6E�	E5�	"E0�0E5c��tj�}|j}t|�}t	t
||��}t
jd|||�tj|�}|jd�|jdd�y)z7Use Python's profiler on a randomly generated document.)�bs4r#r(zbs4.BeautifulSoup(data, parser)�
cumulativez
_html5lib|bs4�2N)�tempfile�NamedTemporaryFiler%r��dictr��cProfile�runctx�pstats�Stats�
sort_stats�print_stats)r�r(�
filehandle�filenamer#�vars�statss       r+�profiler��sp���,�,�.�J����H����D��C�d�6�2�D��O�O�5��d�H�M��L�L��"�E�	���\�"�	���o�r�*r<�__main__)T)�)rt)i�)順)r�r)!r^�__license__r��ior�html.parserrr�rr�bs4.builderr�osr�rkr�r�r rr,r;r>rbrjrirpryr�r�r�r[�stdinrr_r<r+�<module>r�s���C�����"�
�*�(�	�
�
����
��6�pD�,$ �z�$ �L	���%��	
�G�6�$@�@+��z���S�Y�Y�^�^�
��r<

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