HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/botocore/docs/bcdoc/__pycache__/docstringparser.cpython-36.pyc
3

�T_�@s�ddlmZGdd�dejjj�ZGdd�de�ZGdd�de�ZGdd	�d	e�Z	Gd
d�de	�Z
Gdd
�d
e
�ZGdd�de�ZdS)�)�sixc@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�DocStringParserz�
    A simple HTML parser.  Focused on converting the subset of HTML
    that appears in the documentation strings of the JSON models into
    simple ReST format.
    cCs d|_||_tjjjj|�dS)N)�tree�docr�moves�html_parser�
HTMLParser�__init__)�selfr�r�%/usr/lib/python3.6/docstringparser.pyr	szDocStringParser.__init__cCs tjjjj|�t|j�|_dS)N)rrrr�reset�HTMLTreerr)r
rrrr
szDocStringParser.resetcCs,tjjjj||�|jj�t|j�|_dS)N)	rrrr�feedr�writerr)r
�datarrrr s
zDocStringParser.feedcCs*tjjjj|�|jj�t|j�|_dS)N)	rrrr�closerrrr)r
rrrr&s
zDocStringParser.closecCs|jj||d�dS)N)�attrs)r�add_tag)r
�tagrrrr�handle_starttag,szDocStringParser.handle_starttagcCs|jj|dd�dS)NF)�is_start)rr)r
rrrr�
handle_endtag/szDocStringParser.handle_endtagcCs|jj|�dS)N)r�add_data)r
rrrr�handle_data2szDocStringParser.handle_dataN)�__name__�
__module__�__qualname__�__doc__r	r
rrrrrrrrrrsrc@s:eZdZdZdd�Zddd�Zdd	�Zd
d�Zdd
�ZdS)rz�
    A tree which handles HTML nodes. Designed to work with a python HTML parser,
    meaning that the current_node will be the most recently opened tag. When
    a tag is closed, the current_node moves up to the parent node.
    cCs ||_t�|_|j|_g|_dS)N)r�StemNode�head�current_node�unhandled_tags)r
rrrrr	<szHTMLTree.__init__NTcCs^|j||�s|jj|�dS|rP|dkr2t|�}n
t||�}|jj|�||_n
|jj|_dS)N�li)�_doc_has_handlerr"�append�LineItemNode�TagNoder!�	add_child�parent)r
rrr�noderrrrBs

zHTMLTree.add_tagcCs$|rd|}nd|}t|jj|�S)Nzstart_%szend_%s)�hasattrr�style)r
rr�handler_namerrrr$Qs
zHTMLTree._doc_has_handlercCs|jjt|��dS)N)r!r(�DataNode)r
rrrrrYszHTMLTree.add_datacCs|jj|j�dS)N)r rr)r
rrrr\szHTMLTree.write)NT)	rrrrr	rr$rrrrrrr6s
rc@seZdZddd�Zdd�ZdS)�NodeNcCs
||_dS)N)r))r
r)rrrr	asz
Node.__init__cCst�dS)N)�NotImplementedError)r
rrrrrdsz
Node.write)N)rrrr	rrrrrr/`s
r/cs6eZdZd
�fdd�	Zdd�Zdd�Zdd	�Z�ZS)rNcstt|�j|�g|_dS)N)�superrr	�children)r
r))�	__class__rrr	iszStemNode.__init__cCs||_|jj|�dS)N)r)r2r%)r
�childrrrr(mszStemNode.add_childcCs|j|�dS)N)�_write_children)r
rrrrrqszStemNode.writecCsx|jD]}|j|�qWdS)N)r2r)r
rr4rrrr5tszStemNode._write_children)N)rrrr	r(rr5�
__classcell__rr)r3rrhsrcs:eZdZdZd�fdd�	Zdd�Zdd�Zd	d
�Z�ZS)r'zP
    A generic Tag node. It will verify that handlers exist before writing.
    Ncs tt|�j|�||_||_dS)N)r1r'r	rr)r
rrr))r3rrr	}szTagNode.__init__cCs"|j|�|j|�|j|�dS)N)�_write_startr5�
_write_end)r
rrrrr�s

z
TagNode.writecCs,d|j}t|j|�r(t|j|�|j�dS)Nzstart_%s)rr+r,�getattrr)r
rr-rrrr7�s
zTagNode._write_startcCs(d|j}t|j|�r$t|j|��dS)Nzend_%s)rr+r,r9)r
rr-rrrr8�s
zTagNode._write_end)NN)	rrrrr	rr7r8r6rr)r3rr'ys
r'cs2eZdZd�fdd�	Z�fdd�Zdd�Z�ZS)	r&Ncstt|�jd||�dS)Nr#)r1r&r	)r
rr))r3rrr	�szLineItemNode.__init__cs|j|�tt|�j|�dS)N)�_lstripr1r&r)r
r)r3rrr�s
zLineItemNode.writecCsDx>|jD]4}t|t�r*|j�|jr<dSq|j|�}|rdSqWdS)z�
        Traverses the tree, stripping out whitespace until text data is found
        :param node: The node to strip
        :return: True if non-whitespace data was found, False otherwise
        TF)r2�
isinstancer.�lstriprr:)r
r*r4�foundrrrr:�s

zLineItemNode._lstrip)NN)rrrr	rr:r6rr)r3rr&�sr&cs2eZdZdZd	�fdd�	Zdd�Zdd�Z�ZS)
r.z0
    A Node that contains only string data.
    Ncs6tt|�j|�t|tj�s,tdt|���||_dS)Nz Expecting string type, %s given.)	r1r.r	r;rZstring_types�
ValueError�typer)r
rr))r3rrr	�szDataNode.__init__cCs|jj�|_dS)N)rr<)r
rrrr<�szDataNode.lstripcCs`|js
dS|jj�rd}n8|jdj�}|jj�}|j|�}dj|�}|rR|d7}|j|�dS)N� ����)r�isspace�splitZtranslate_words�joinr)r
rZstr_dataZ	end_spaceZwordsrrrr�s



zDataNode.write)N)rrrrr	r<rr6rr)r3rr.�sr.N)
Zbotocore.compatrrrrr�objectrr/rr'r&r.rrrr�<module>
s&*