File manager - Edit - /opt/alt/python310/lib64/python3.10/html/__pycache__/parser.cpython-310.pyc
Back
o ���h!P � @ s� d Z ddlZddlZddlmZ dgZe�d�Ze�d�Ze�d�Z e�d�Z e�d �Ze�d �Ze�d�Z e�d�Ze�d �Ze�d�Ze�dej�Ze�dej�Ze�dej�Ze�d�Ze�d�ZG dd� dej�ZdS )zA parser for HTML and XHTML.� N)�unescape� HTMLParserz[&<]z &[a-zA-Z#]z%&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]z)&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]z <[a-zA-Z]z </[a-zA-Z]�>z--!?>z-?>z0([a-zA-Z][^\t\n\r\f />]*)(?:[\t\n\r\f ]|/(?!>))*a{ ( (?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]* # attribute name ) ([\t\n\r\f ]*=[\t\n\r\f ]* # value indicator ('[^']*' # LITA-enclosed value |"[^"]*" # LIT-enclosed value |(?!['"])[^>\t\n\r\f ]* # bare value ) )? (?:[\t\n\r\f ]|/(?!>))* # possibly followed by a space a [a-zA-Z][^\t\n\r\f />]* # tag name [\t\n\r\f /]* # optional whitespace before attribute name (?:(?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]* # attribute name (?:[\t\n\r\f ]*=[\t\n\r\f ]* # value indicator (?:'[^']*' # LITA-enclosed value |"[^"]*" # LIT-enclosed value |(?!['"])[^>\t\n\r\f ]* # bare value ) )? [\t\n\r\f /]* # possibly followed by a space )* >? aF <[a-zA-Z][^\t\n\r\f />\x00]* # tag name (?:[\s/]* # optional whitespace before attribute name (?:(?<=['"\s/])[^\s/>][^\s/=>]* # attribute name (?:\s*=+\s* # value indicator (?:'[^']*' # LITA-enclosed value |"[^"]*" # LIT-enclosed value |(?!['"])[^>\s]* # bare value ) \s* # possibly followed by a space )?(?:\s|/(?!>))* )* )? \s* # trailing whitespace z#</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>c @ s� e Zd ZdZdZdZdd�dd�Zdd � Zd d� Zdd � Z dZ dd� Zdd�dd�Zdd� Z d>dd�Zdd� Zdd� Zd>dd�Zd?d d!�Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� Zd0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� Zd<d=� Z dS )@r aE Find tags and other markup and call handler functions. Usage: p = HTMLParser() p.feed(data) ... p.close() Start tags are handled by calling self.handle_starttag() or self.handle_startendtag(); end tags by self.handle_endtag(). The data between tags is passed from the parser to the derived class by calling self.handle_data() with the data as argument (the data may be split up in arbitrary chunks). If convert_charrefs is True the character references are converted automatically to the corresponding Unicode character (and self.handle_data() is no longer split in chunks), otherwise they are passed by calling self.handle_entityref() or self.handle_charref() with the string containing respectively the named or numeric reference as the argument. )ZscriptZstyle)Ztextarea�titleT)�convert_charrefsc C s || _ | �� dS )z�Initialize and reset this instance. If convert_charrefs is True (the default), all character references are automatically converted to the corresponding Unicode characters. N)r �reset)�selfr � r �2/opt/alt/python310/lib64/python3.10/html/parser.py�__init__s s zHTMLParser.__init__c C s4 d| _ d| _t| _d| _d| _d| _tj� | � dS )z1Reset this instance. Loses all unprocessed data.� z???NT) �rawdata�lasttag�interesting_normal�interesting� cdata_elem�_support_cdata� _escapable�_markupbase� ParserBaser �r r r r r | s zHTMLParser.resetc C s | j | | _ | �d� dS )z�Feed data to the parser. Call this as often as you want, with as little or as much text as you want (may include '\n'). r N)r �goahead�r �datar r r �feed� s zHTMLParser.feedc C s | � d� dS )zHandle any buffered data.� N)r r r r r �close� s zHTMLParser.closeNc C s | j S )z)Return full source of start tag: '<...>'.)�_HTMLParser__starttag_textr r r r �get_starttag_text� s zHTMLParser.get_starttag_textF�� escapablec C sZ |� � | _|| _|r| jst�d| j tjtjB �| _d S t�d| j tjtjB �| _d S )Nz&|</%s(?=[\t\n\r\f />])z</%s(?=[\t\n\r\f />])) �lowerr r r �re�compile� IGNORECASE�ASCIIr )r �elemr r r r �set_cdata_mode� s � �zHTMLParser.set_cdata_modec C s t | _d | _d| _d S )NT)r r r r r r r r �clear_cdata_mode� s zHTMLParser.clear_cdata_modec C s || _ dS )a Enable or disable support of the CDATA sections. If enabled, "<[CDATA[" starts a CDATA section which ends with "]]>". If disabled, "<[CDATA[" starts a bogus comments which ends with ">". This method is not called by default. Its purpose is to be called in custom handle_starttag() and handle_endtag() methods, with value that depends on the adjusted current node. See https://html.spec.whatwg.org/multipage/parsing.html#markup-declaration-open-state for details. N)r )r �flagr r r �_set_support_cdata� s zHTMLParser._set_support_cdatac C s | j }d}t|�}||k �rY| jr;| js;|�d|�}|dk r:|�dt||d ��}|dkr8t�d�� ||�s8�n!|}n| j � ||�}|rI|�� }n| jrN�n|}||k ro| jrf| jrf| � t|||� �� n | � |||� � | �||�}||kr{�n�|j}|d|��r�t�||�r�| �|�} n@|d|�r�| �|�} n5|d|�r�| �|�} n*|d|�r�| �|�} n|d |�r�| �|�} n|d |k s�|r�| � d� |d } n�n�| dk �r�|sِn�t�||�r�n�|d|��r|d |kr�| � d� n�t�||�r�n�| �||d d � � n�|d|��r0|}dD ]} |�| |d ��r"|t| �8 } n�q| �||d |� � nW|d|��rF| j�rF| �||d d � � nA|||d � �� dk�r_| �||d d � � n(|d |��rq| �||d d � � n|d|��r�| �||d d � � nt d��|} | �|| �}n�|d|��r�t!�||�}|�r�|�"� dd� }| �#|� |�$� } |d| d ��s�| d } | �|| �}q d||d � v �r�| � |||d � � | �||d �}ny|d|��rQt%�||�}|�r|�"d �}| �&|� |�$� } |d| d ��s | d } | �|| �}q t'�||�}|�r;|�r:|�"� ||d � k�r:|�$� } | |k�r2|} | �||d �}n|d |k �rP| � d� | �||d �}nnJ d��||k s|�r�||k �r�| j�ru| j�ru| � t|||� �� n | � |||� � | �||�}||d � | _ d S )Nr �<�&�"