HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/awscli/bcdoc/__pycache__/docstringparser.cpython-310.pyc
o

.&�a�@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|_||_tjjj�|�dS�N)�tree�docr�moves�html_parser�
HTMLParser�__init__��selfr�r
�>/usr/lib/python3/dist-packages/awscli/bcdoc/docstringparser.pyr
szDocStringParser.__init__cCs tjjj�|�t|j�|_dSr)rrrr	�reset�HTMLTreerr�rr
r
rrszDocStringParser.resetcCs,tjjj�||�|j��t|j�|_dSr)	rrrr	�feedr�writerr�r�datar
r
rr s
zDocStringParser.feedcCs*tjjj�|�|j��t|j�|_dSr)	rrrr	�closerrrrrr
r
rr&s
zDocStringParser.closecCs|jj||d�dS)N)�attrs�r�add_tag)r�tagrr
r
r�handle_starttag,�zDocStringParser.handle_starttagcCs|jj|dd�dS)NF)�is_startr)rrr
r
r�
handle_endtag/rzDocStringParser.handle_endtagcCs|j�|�dSr)r�add_datarr
r
r�handle_data2�zDocStringParser.handle_dataN)�__name__�
__module__�__qualname__�__doc__r
rrrrrr r
r
r
rrsrc@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|_dSr)r�StemNode�head�current_node�unhandled_tagsrr
r
rr
<s
zHTMLTree.__init__NTcCs`|�||�s|j�|�dS|r)|dkrt|�}nt||�}|j�|�||_dS|jj|_dS�N�li)�_doc_has_handlerr)�append�LineItemNode�TagNoder(�	add_child�parent)rrrr�noder
r
rrBs


zHTMLTree.add_tagcCs$|rd|}nd|}t|jj|�S)N�start_%s�end_%s)�hasattrr�style)rrr�handler_namer
r
rr,Qs
zHTMLTree._doc_has_handlercCs|j�t|��dSr)r(r0�DataNoderr
r
rrYrzHTMLTree.add_datacCs|j�|j�dSr)r'rrrr
r
rr\szHTMLTree.write)NT)	r"r#r$r%r
rr,rrr
r
r
rr6s
rc@seZdZddd�Zdd�ZdS)�NodeNcCs
||_dSr)r1�rr1r
r
rr
as
z
Node.__init__cCst�r)�NotImplementedErrorrr
r
rrdsz
Node.writer)r"r#r$r
rr
r
r
rr9`s
r9cs6eZdZd
�fdd�	Zdd�Zdd�Zdd	�Z�ZS)r&Ncstt|��|�g|_dSr)�superr&r
�childrenr:��	__class__r
rr
is
zStemNode.__init__cCs||_|j�|�dSr)r1r=r-)r�childr
r
rr0mszStemNode.add_childcCs|�|�dSr)�_write_childrenrr
r
rrqszStemNode.writecCs|jD]}|�|�qdSr)r=r)rrr@r
r
rrAts
�zStemNode._write_childrenr)r"r#r$r
r0rrA�
__classcell__r
r
r>rr&hs
r&cs:eZdZdZd�fdd�	Zdd�Zdd�Zd	d
�Z�ZS)r/zP
    A generic Tag node. It will verify that handlers exist before writing.
    Ncs tt|��|�||_||_dSr)r<r/r
rr)rrrr1r>r
rr
}s
zTagNode.__init__cCs"|�|�|�|�|�|�dSr)�_write_startrA�
_write_endrr
r
rr�s

z
TagNode.writecCs0d|j}t|j|�rt|j|�|j�dSdS)Nr3)rr5r6�getattrr�rrr7r
r
rrC�s
�zTagNode._write_startcCs,d|j}t|j|�rt|j|��dSdS)Nr4)rr5r6rErFr
r
rrD�s
�zTagNode._write_end�NN)	r"r#r$r%r
rrCrDrBr
r
r>rr/ysr/cs2eZdZd�fdd�	Z�fdd�Zdd�Z�ZS)	r.Ncstt|��d||�dSr*)r<r.r
)rrr1r>r
rr
�szLineItemNode.__init__cs|�|�tt|��|�dSr)�_lstripr<r.rrr>r
rr�s
zLineItemNode.writecCsD|jD]}t|t�r|��|jrdSq|�|�}|rdSqdS)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)r=�
isinstancer8�lstriprrH)rr2r@�foundr
r
rrH�s

�
�zLineItemNode._lstriprG)r"r#r$r
rrHrBr
r
r>rr.�sr.cs2eZdZdZd	�fdd�	Zdd�Zdd�Z�ZS)
r8z0
    A Node that contains only string data.
    Ncs6tt|��|�t|tj�stdt|���||_dS)Nz Expecting string type, %s given.)	r<r8r
rIr�string_types�
ValueError�typer)rrr1r>r
rr
�s
zDataNode.__init__cCs|j��|_dSr)rrJrr
r
rrJ�r!zDataNode.lstripcCs`|jsdS|j��r
d}n|jd��}|j��}|�|�}d�|�}|r)|d7}|�|�dS)N� ���)r�isspace�split�translate_words�joinr )rr�str_data�	end_space�wordsr
r
rr�s



zDataNode.writer)r"r#r$r%r
rJrrBr
r
r>rr8�s
r8N)
�botocore.compatrrrr	r�objectrr9r&r/r.r8r
r
r
r�<module>s&*