HEX
Server: LiteSpeed
System: Linux standart9.isimtescil.net 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64
User: karalev (5310)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-37.pyc
B

F.�`�#�
@s�dZdgZddlmZyddlmZWn2ek
rXZzGdd�de�ZWddZ[XYnXddlZddl	Z	ej
dd�\ZZZ
edko�ed	ko�e
dkZedko�edkZedko�ed
kZddlmZmZmZmZmZddlmZmZdd
lmZmZmZdZGdd�de�ZGdd�de�Z edk�r�ed	k�r�e�s�ddl!Z!e!�"d�Z#e#e _#e!�"de!j$�Z%e%e_%ddlm&Z&m'Z'dd�Z(dd�Z)e(e_(e)e_)dZdS)zCUse the HTMLParser library to parse HTML files that aren't too bad.�HTMLParserTreeBuilder�)�
HTMLParser)�HTMLParseErrorc@seZdZdS)rN)�__name__�
__module__�__qualname__�rr�H/opt/alt/python37/lib/python3.7/site-packages/bs4/builder/_htmlparser.pyrsrN���)�CData�Comment�Declaration�Doctype�ProcessingInstruction)�EntitySubstitution�
UnicodeDammit)�HTML�HTMLTreeBuilder�STRICTzhtml.parserc@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�BeautifulSoupHTMLParsercCsDi}x(|D] \}}|dkrd}|||<d}q
W|j�|dd|�dS)N�z"")�soup�handle_starttag)�self�name�attrsZ	attr_dict�key�value�	attrvaluerrr	r7sz'BeautifulSoupHTMLParser.handle_starttagcCs|j�|�dS)N)r�
handle_endtag)rrrrr	r!Csz%BeautifulSoupHTMLParser.handle_endtagcCs|j�|�dS)N)r�handle_data)r�datarrr	r"Fsz#BeautifulSoupHTMLParser.handle_datac
Cs�|�d�rt|�d�d�}n$|�d�r8t|�d�d�}nt|�}yt|�}Wn*ttfk
rv}zd}Wdd}~XYnX|�|�dS)N�x��Xu�)�
startswith�int�lstrip�chr�
ValueError�
OverflowErrorr")rrZ	real_namer#�errr	�handle_charrefIs

z&BeautifulSoupHTMLParser.handle_charrefcCs0tj�|�}|dk	r|}nd|}|�|�dS)Nz&%s;)rZHTML_ENTITY_TO_CHARACTER�getr")rr�	characterr#rrr	�handle_entityref[s
z(BeautifulSoupHTMLParser.handle_entityrefcCs&|j��|j�|�|j�t�dS)N)r�endDatar"r)rr#rrr	�handle_commentcs
z&BeautifulSoupHTMLParser.handle_commentcCsN|j��|�d�r&|td�d�}n|dkr2d}|j�|�|j�t�dS)NzDOCTYPE ZDOCTYPEr)rr2r'�lenr"r)rr#rrr	�handle_declhs

z#BeautifulSoupHTMLParser.handle_declcCsN|���d�r$t}|td�d�}nt}|j��|j�|�|j�|�dS)NzCDATA[)�upperr'r
r4rrr2r")rr#�clsrrr	�unknown_declrs
z$BeautifulSoupHTMLParser.unknown_declcCs&|j��|j�|�|j�t�dS)N)rr2r"r)rr#rrr	�	handle_pi|s
z!BeautifulSoupHTMLParser.handle_piN)rrrrr!r"r.r1r3r5r8r9rrrr	r6s

rc@s<eZdZdZdZeZeeegZ	dd�Z
d
dd�Zdd	�ZdS)rFTcOs*trtsd|d<trd|d<||f|_dS)NF�strictZconvert_charrefs)�CONSTRUCTOR_TAKES_STRICT� CONSTRUCTOR_STRICT_IS_DEPRECATED�"CONSTRUCTOR_TAKES_CONVERT_CHARREFS�parser_args)r�args�kwargsrrr	�__init__�s
zHTMLParserTreeBuilder.__init__NccsNt|t�r|dddfVdS||g}t||d|d�}|j|j|j|jfVdS)z�
        :return: A 4-tuple (markup, original encoding, encoding
        declared within markup, whether any characters had to be
        replaced with REPLACEMENT CHARACTER).
        NFT)Zis_html�exclude_encodings)�
isinstance�strr�markupZoriginal_encodingZdeclared_html_encodingZcontains_replacement_characters)rrEZuser_specified_encodingZdocument_declared_encodingrBZ
try_encodingsZdammitrrr	�prepare_markup�s
z$HTMLParserTreeBuilder.prepare_markupc
Csd|j\}}t||�}|j|_y|�|�Wn4tk
r^}zt�td��|�Wdd}~XYnXdS)Na*Python's built-in HTMLParser cannot parse the given document. This is not a bug in Beautiful Soup. The best solution is to install an external parser (lxml or html5lib), and use Beautiful Soup with that parser. See http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser for help.)r>rr�feedr�warnings�warn�RuntimeWarning)rrEr?r@�parserr-rrr	rG�s

zHTMLParserTreeBuilder.feed)NNN)
rrrZis_xmlZ	picklable�
HTMLPARSER�NAMErrZfeaturesrArFrGrrrr	r�s

zQ\s*((?<=[\'"\s])[^\s/>][^\s/=>]*)(\s*=+\s*(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?a�
  <[a-zA-Z][-.a-zA-Z0-9:_]*          # tag name
  (?:\s+                             # whitespace before attribute name
    (?:[a-zA-Z_][-.:a-zA-Z0-9_]*     # attribute name
      (?:\s*=\s*                     # value indicator
        (?:'[^']*'                   # LITA-enclosed value
          |\"[^\"]*\"                # LIT-enclosed value
          |[^'\">\s]+                # bare value
         )
       )?
     )
   )*
  \s*                                # trailing whitespace
)�tagfind�attrfindcCs6d|_|�|�}|dkr|S|j}|||�|_g}t�||d�}|sPtd��|��}||d|���|_}x�||k�rN|j	r�t
�||�}nt�||�}|s�P|�ddd�\}	}
}|
s�d}n`|dd�dkr�|dd�k�sn|dd�dk�r|dd�k�r"nn|dd�}|�r2|�
|�}|�|	��|f�|��}qtW|||���}|d	k�r�|��\}
}d
|jk�r�|
|j�d
�}
t|j�|j�d
�}n|t|j�}|j	�r�|�d|||�dd�f�|�|||��|S|�d
��r|�||�n"|�||�||jk�r2|�|�|S)Nr�z#unexpected call to parse_starttag()rr
�'����")�>z/>�
z junk characters in start tag: %r�z/>)Z__starttag_textZcheck_for_whole_start_tag�rawdatarN�match�AssertionError�end�lowerZlasttagr:rO�attrfind_tolerant�groupZunescape�append�stripZgetpos�countr4�rfind�errorr"�endswithZhandle_startendtagrZCDATA_CONTENT_ELEMENTS�set_cdata_mode)r�i�endposrWrrX�k�tag�mZattrname�restr rZ�lineno�offsetrrr	�parse_starttag�s\
(,


rmcCs$|��|_t�d|jtj�|_dS)Nz</\s*%s\s*>)r[Z
cdata_elem�re�compile�IZinteresting)r�elemrrr	rds
rdT)*�__doc__�__all__Zhtml.parserrr�ImportErrorr-�	Exception�sysrH�version_info�major�minor�releaser;r<r=Zbs4.elementr
rrrrZ
bs4.dammitrrZbs4.builderrrrrLrrrnror\�VERBOSEZlocatestarttagendrNrOrmrdrrrr	�<module>s@"	L0
7