403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /lib64/python3.9/site-packages/mercurial/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /lib64/python3.9/site-packages/mercurial/__pycache__/minirst.cpython-39.pyc
a

�+�b�t�
@s�dZddlmZddlZddlmZddlmZmZm	Z	ddl
mZdd	�Zd
d�Z
dd
�Zdd�Zdd�Zdd�Ze�d�Zdd�Zdd�Ze�d�Ze�d�Ze�d�Ze�d�Ze�d�Zdd�Zd Zd!d"�Zd#d$�Zd%d&�Ze�d'�Z d(d)�Z!d*d+�Z"d,d-�Z#d.d/�Z$d0d1�Z%d2d3�Z&dWd4d5�Z'ed6�ed7�ed8�ed9�ed:�ed;�ed<�ed=�ed>�d?�	Z(d@dA�Z)dBdC�Z*dDdE�Z+dXdFdG�Z,dHdI�Z-dJdK�Z.dYdNdO�Z/dPdQ�Z0dRdS�Z1dZdUdV�Z2dS)[a�simplified reStructuredText parser.

This parser knows just enough about reStructuredText to parse the
Mercurial docstrings.

It cheats in a major way: nested blocks are not really nested. They
are just indented blocks that look like they are nested. This relies
on the user to keep the right indentation for the blocks.

Remember to update https://mercurial-scm.org/wiki/HelpStyleGuide
when adding support for new constructs.
�)�absolute_importN�)�_)�encoding�pycompat�url)�
stringutilcCsd|dt�|�fS)N�%s
%s

�"�r�colwidth��s�r�7/usr/lib64/python3.9/site-packages/mercurial/minirst.py�section"srcCsd|dt�|�fS)Nr	�=rr
rrr�
subsection&srcCsd|dt�|�fS)Nr	�-rr
rrr�
subsubsection*srcCsd|dt�|�fS)Nr	�.rr
rrr�subsubsubsection.srcCsd|dt�|�fS)Nr	�'rr
rrr�subsubsubsubsection2srcCsJ|�t�tj��}|D] \}}|�|�d�|�d��}q|�t�tj��S)aB
    Apply a list of (find, replace) pairs to a text.

    >>> replace(b"foo bar", [(b'f', b'F'), (b'b', b'B')])
    'Foo Bar'
    >>> encoding.encoding = b'latin1'
    >>> replace(b'\x81\\', [(b'\\', b'/')])
    '\x81/'
    >>> encoding.encoding = b'shiftjis'
    >>> replace(b'\x81\\', [(b'\\', b'/')])
    '\x81\\'
    �ascii)�decoderZsysstrr�replace�encode)�text�substsZutext�f�trrrr6srs\n(?:\s*\n)+csbg}t�|�d����D]D}|��}|rtdd�|D����fdd�|D�}|��|d��q|S)z�Find continuous blocks of lines in text.

    Returns a list of dictionaries representing the blocks. Each block
    has an 'indent' field and a 'lines' field.
    �
css"|]}t|�t|���VqdS�N)�len�lstrip��.0�lrrr�	<genexpr>[�zfindblocks.<locals>.<genexpr>csg|]}|�d��qSr#rr&��indentrr�
<listcomp>\r*zfindblocks.<locals>.<listcomp>)�indent�lines)�_blockre�splitr%�rstrip�
splitlines�min�append)r�blocks�b�linesrr+r�
findblocksQsr9cCs�d}|t|�k�r�d||d<||dd�d��r�|dt|�k�r�||d}||dd|}||ddgkr�||=|d8}n�||dd�d	�r�||ddd
d�||dd<n�t||d�dk�r$||dd�d��d
��r$||dd�dd�dk�r$|d7}qn$||ddd
d�||dd<t�||dd�}|�r|||��7}||��8}|dt|�k�r�||dd|k�r�d||dd<||dd|8<|d7}�q||d7}q|S)z�Finds literal blocks and adds a 'type' field to the blocks.

    Literal blocks are given the type 'literal', all other blocks are
    given type the 'paragraph'.
    r�	paragraph�typer/���s::rr.s ::N���� �.. ��literal)r$�endswithr%�
startswith�find�	_bulletre�match�end)r6�ir,�
adjustment�mrrr�findliteralblocksas<
*
&���$(
rKs+(\*|-|[0-9A-Za-z]+\.|\(?[0-9A-Za-z]+\)|\|) s0^(-([a-zA-Z0-9]), )?(--[a-z0-9-]+)((.*)  +)(.*)$s&:(?![: ])((?:\:|[^:])*)(?<! ):[ ]+(.*)s[^ ]s
(=+\s+)*=+cCs�dtdfdtdfdtdfdtdfg}dd�}d	}|t|�kr�||d
dkr�||d}|D]|\}}}||d	||�r\g}t|�D]B\}	}
|||	||�r�|�|g||d
d��|dd�|
�q�||||d�<q�q\|d7}q0|S)zSplit paragraphs into lists.�bulletT�option�field�
definitionFcSsj||}|dt|�kr$||dp&d}|�|�s6dS|r\|dkpZ|dd�dkpZ|�|�S|�d�SdS)z�Does itemre match an item at line i?

        A list item can be followed by an indented line or another list
        item (but only if singleline is True).
        rr*Frr>N)r$rFrC)r8rH�itemre�
singlelineZline1Zline2rrrrF�s 
"zsplitparagraphs.<locals>.matchrr;r:r/r.)r;r/r.r<r)rE�	_optionre�_fieldre�
_definitionrer$�	enumerater5)r6Z	listtypesrFrHr8�typerPrQ�items�j�linerrr�splitparagraphs�s4�
��
rZ�cCs�d}|t|�kr�||ddkr*|d7}q|}|t|�kr�||ddkr�t�||dd�}|��\}}|||dd<|�dd�||d<|d7}q.|d}q|S)	zFind key for field lists.rr;rNrr/s\:�:�key)r$rSrF�groupsr)r6rHrXrJ�key�restrrr�updatefieldlists�s

rac
Cs@d}|t|�k�r<||ddkr,|d7}qd}|}|t|�k�r||ddk�rt�||dd�}|�d�}|�d�}|dd���}|�d���}|�d	���}	|||dd<d
}
|s�d}
d|r�d
|p�d
d|
||	ff}|��}|||d<t|t�|��}|d7}q4|||�D]}||d<�q"|d}q|S)Nrr;rMrr/�r@��r*�   s%s%ss-%s s	%s--%s %s�optstr�optstrwidth)	r$rRrF�group�stripr2�maxrr)
r6rHZoptstrwidthrXrJZshortoptionZgroup3Z
longoption�descZ
longoptionargZ	noshortop�opt�blockrrr�updateoptionlists�s< 

�

rnc
Csg}d}|dt|�k�r||ddkr�||dd�d�r�||d}||dd|}||dddd	�}d
}|D]}||�d�vr�d}q�|r�|�|�||=|}	|d8}|	t|�kr�||	d|kr�|r�||	=q�||	d|8<|	d7}	q�|d7}q||fS)
z�Prune unwanted containers.

    The blocks must have a 'type' field, i.e., they should have been
    run through findliteralblocks first.
    rrr;r:r/s.. container::r.�NTrF)r$rCr1r5)
r6�keep�prunedrHr,rIZ
containertypeZprune�crXrrr�prunecontainerss6��


rss^([-=`:.'"~^_*+#])\1+$csL|D�]@}|ddkrt|d�dkrt�|dd�r|dd|ddkrd|d<d|d	<|dd��fd
d�t�t���D�}g}|ddd�D]�}|�kr�d
|d	<q�g}|d}t|�D]j\}}|dt|�k�r||d|}	t�|||	�}
|t|
�7}|�|
�	��q�|�||d��	��q�|�|�q�||d<q|S)zNFind simple tables

    Only simple one-line table elements are supported
    r;r:r/rbrr<�tableF�headercs@g|]8}�||d�dkr|dks8�|d|�dkr|�qS)rrrr>r)r'�x��divrrr-_s0�zfindtables.<locals>.<listcomp>rTN)
r$�_tablererFr�xrangerUrZgetcolsr5ri)r6rm�columnsZrowsr(�row�pos�n�start�width�vrrwr�
findtablesDs@


����
�
r�cCs�|D]~}|ddkrt|d�dkrt�|dd�t|dd�krt�|dd�r|dddd�|d<d|d<|dd=q|S)	z�Finds sections.

    The blocks must have a 'type' field, i.e., they should have been
    run through findliteralblocks first.
    r;r:r/rbrr�	underline�section)r$rr�
_sectionrerF)r6rmrrr�findsections|s
�� ��r�cs:dg�|D]*}|ddvr
�fdd�|dD�|d<q
|S)N)s``r
r;�r:r�csg|]}t|���qSr�rr&�rrrr-�r*z"inlineliterals.<locals>.<listcomp>r/r�r6r7rr�r�inlineliterals�s
r�cs<ddg�|D]*}|ddvr�fdd�|dD�|d<q|S)N)s:hg:`s'hg )�`rr;r�csg|]}t|���qSrr�r&r�rrr-�r*zhgrole.<locals>.<listcomp>r/rr�rr�r�hgrole�s
r�cCs�d}|t|�kr�||d||ddkrF||ddvrF|d7}q||dds`|d7}q|�|dgddd��|d	7}q|S)
z�Adds empty blocks for vertical spacing.

    This groups bullets, options, and definitions together with no vertical
    space between them, and adds an empty block between all other blocks.
    rr;)rLrMrNr/r*r�margin)r/r.r;rb)r$�insert)r6rHrrr�
addmargins�s"��

�
r�cCs|d}|t|�krx||}|ddkrn|dd�d�sD|ddgkrn||=|t|�krv||ddkrv||=q|d7}q|S)	zRemove comments.rr;r:r/r?s..r�r)r$rC)r6rHr7rrr�
prunecomments�s��
r�cCs�|p
t��}tjdd�t|��tjd�}d}|t|�kr�|�||dd�}|r�d||d<||ddd|�	�d	��
�}||dd|�	�d
d�}|r�||d�d
d|�|||d
<||dd=|d
}q.|S)zj
    Makes the type of the block an admonition block if
    the first line is an admonition directive
    s\.\. (%s)::�|)�flagsrr/�
admonitionr;r@rbrNre�admonitiontitle)�_admonitiontitles�keys�re�compile�join�sorted�
IGNORECASEr$rFrG�lowerr�)r6�admonitionsZadmonitionrerHrJZadmonitiontitle�	firstlinerrr�findadmonitions�s"�$ 
r�s
Attention:sCaution:s!Danger!sError:sHint:s
Important:sNote:sTip:sWarning!)	s	attentionscautionsdangerserrorshints	importantsnotestipswarningcCstd�ttj|d��}t�|d�}|d}|d}d|dd||f}dt�|�d}dtj||||d�S)	Nr>r/rfrrgs%s%s  s %s
)�
initindent�
hangindent)r��map�bytesrirrr�wrap)rmr�rkrZusablewidthZhangingr�r�rrr�formatoption�s��r�cCs�|dkrd}d|d}|ddkr�t|d}|dsD||d	St|dd
�t|dd
���}||d}d�ttj|d��}d||tj||||d�fS|dd
kr�d	S|ddkr�|d7}|d	|�|d�d	S|ddk�r&t	�
|dd�|d}d||dd||fS|ddk�r,|d}dd�t|�D�}	d}t|	�t|	�d}
d|d}dt|�|
|	d
}|D]�}g}t|	|�D]*\}
}d|
t	�
|�}|�
||��q�d�|�}tj||||d�}|�s|d�r|d	|dt||
�d	}n||d	7}�q�|S|ddk�r�||dd}t|dd
�t|dd
���}||d}d�ttj|ddd���}d|tj||||d�fS|}|ddk�r|dd�d��r�|dddd�|dd<n"t�|dd�}||��d}n||ddk�r~|d }|td}t|�dtk�rZ|�|�}n
|�t�}||dd|dd<n|dd!k�r�t||�Sd�ttj|d��}tj||||d�d	S)"z"Format a block according to width.r�Nr>r.r;r�r�r/r"r<s%s
%s
)r�r�r�r�rAs  r�r�s
%s%s
%s%s
rtcSsg|]}tdd�|D���qS)cSsg|]}t�|��qSrr�r'�errrr-)r*z*formatblock.<locals>.<listcomp>.<listcomp>�rj�r'rrrrrr-)r*zformatblock.<locals>.<listcomp>r*rrurrONrLs| rbrNr]rM)r�r$r%r�r�r�rirr�rr�zip�sumr5r4rCrErFrG�_fieldwidth�ljustr�)rmr�r,�
admonitionZhangZ	defindentrZ	underline�table�widths�spanr|r(�wr��pad�termZ	subindentrJr_rrr�formatblocks�$��
� $��

���r�cs�g�d}g�dd�}��fdd�}dd�|D�}t|�D�]`\}}|d}|d	}|d
}|dkr�|t|d�}	|d
�ttj|���}
��d|	|
f��nz|dkrˆ�d|d�|����nV|dkrΐnJ|dkr��d|d�|����n&|dk�rD|d}||v�r||7}|�|�d}��d|||d�|f��n�|dk�r�|d}��d�|D]Z}
��d�|
D]2}��d���||����d���d��qv�����d��qd��d ��nJ|d!k�r |d"|�||d�}|d
�ttj|dd#����}
��d$||
f�n�|d%k�r�|d�	d
d�\}}|d&v�rT|d'|�n
|d(|���d)|d
�|g|dd#����n�|d*k�r�|d"|�||d+�}|d
�ttj|���}
��d$||
f�nH|d,k�r|d"|�||d-�}|d
�ttj|���}��d$||f��r8�d.\}}|t
|�dk�rR��d/|����q8||d}|d	}||k�s�||kr8|dd0vr8��d/|����q8d���S)1zFormat RST blocks as HTMLr*cSst�|d�S)NT)r�escaper
rrrr�nszformathtml.<locals>.escapecs4�r�dd|kr0��||f���d|�dS)Nr<rs<%s>
)r5)r�level�Zlistnest�outrr�openlistqszformathtml.<locals>.openlistcSsg|]}|ddkr|�qS)r;r�r�r'r7rrrr-vr*zformathtml.<locals>.<listcomp>r;r.r/r�r�r>s<p>
<b>%s</b> %s
</p>
r:s<p>
%s
</p>
r"r�rAs<pre>
%s
</pre>
r�r�rs<h%d>%s</h%d>
rrts<table>
s<tr>s<td>s</td>s</tr>
s	</table>
rOsdlNs <dt>%s
 <dd>%s
rL)�*rsulsols	 <li> %s
rNr]rMrfr<s</%s>
sdefinition bullet field option)rUr�r�r�r�rir5�index�popr1r$)r6Z
headernestr�r�r}r7Zbtyper�r8r�rrHr�r|r�r�Zbullet�headr_rlrkr�nbZnirr�r�
formathtmlgs�

 









(





�
�
r�cCs�t|�}|D]}|d|7<qt|�}t|�}t||p<g�\}}t|�}t|�}t|�}t|�}t|�}t	|�}t
||d�}t|�}t|�}||fS)z Parse text into a list of blocksr.)r�)
r9rKr�rsr�r�r�rZrarnr�r�r�)rr,rpr�r6r7rqrrr�parse�s r�csd��fdd�|D��}|S)Nr*c3s|]}t|��VqdSr#�r�r��r�rrr)�r*zformatblocks.<locals>.<genexpr>�r�)r6r�rrr�r�formatblocks�sr�csd��fdd�|D��S)z"Format parsed blocks as plain textr*c3s|]}t|��VqdSr#r�r�r�rrr)�r*zformatplain.<locals>.<genexpr>r�)r6r�rr�r�formatplain�sr��P�plaincCsBt|||pg�\}}|r"t||�}|dkr2t|�St||d�SdS)z-Parse and format the text according to width.shtmlr�N)r��filtersectionsr�r�)rr�r,rpZstylerr6rqrrr�format�s
r�cs�g}t��}g�d}g}g}d}|t|�k�rt||\}}	}
||	d�=|�|�||ksh|�d|��rj||k�rt|�}t|�}|r�||kr�d}g}
t�d|d�D]V}||}||ks�|||kr�|
�t���||d}��|d���|d	�q�|
�r|�|
�|dd�}��|
�|dt|�k�rj||dd|	k�rj|d7}��||d��q$|d7}q |�r�|��|D]b}
�fd
d�|
D�}|
d	d}�|d}d
d�||dg��	dd�|d<�|
d|�=�q��S)z�Select parsed blocks under the specified section

    The section name is separated by a dot, and matches the suffix of the
    full section path.
    rTNrFr@rrbr<csg|]}�|dd�qS)r/rr)r'Zsyn�r6rrr-r*z"filtersections.<locals>.<listcomp>r/s"%s"r
r*)
�_getsectionsr$r5rBrrz�extend�reverser�r)r6r�parentsZsectionsrHZlastparentsZ	syntheticZcollapse�path�nestr7Zllen�plenrrX�parent�sec�realZreallinerr�rr��sX




(
�
r�cCs�d}d}g}dd�}|D�]x}|ddkr�|d}||vrB||7}|�|�d}|d	|�}|d	|�||�f}|�d
�|�||gf�q|ddv�r�d}||vr�||7}|�|�d}|d	|�}tdt|�d�D]z}||}|d|kr��qVd
d�|dD�}	|	r�|	dd}
|d}|
|k�r>|d7}�qVq�|
|kr�|d}�qVq�|d	|�||�f}|�d
�|�||gf�q|�s�ddgfg}|ddk�r�d}|d}
|t|�k�r>||dd}|ddk�r2|d}t|d�dk�r$|t|dd�t|dd�d��7}|
|k�r2�q>|d7}�q�|dk�r�||d}|d|dk�rp|d7}|�d|gf�|dd�|�q|S)z=return a list of (section path, nesting level, blocks) tuplesr*rcSsL|ddkr|d}n|dd}t�|��d�}d|vrH|�d�d}|S)Nr;rNr]r/rr
�()rr�rir1)r7rvrrr�getname+s
z_getsections.<locals>.getnamer;r�r�rNr)rOrNr>cSsg|]}|ddkr|�qS)r;rOr)r'�arrrr-Hr*z _getsections.<locals>.<listcomp>rbr<r.rr�r/)r�r5r��ranger$r%)r6r��namesZsecsr�r7rHr�r�ZsiblingsZ
siblingindentr,ZpointerZbindentrZsindentZblevelrrrr�%st



�

r�FcCs�dd�t|�D�}d|}|d�dd�|D��d}|g}|D]v}g}t||�D]J\}}	d|	vr|d�dd�|	�d�D��}	d|t�|	�}
|�|	|
�qR|�|d�|�d�q@|r�t|�dkr�|�d	|�|�|�|S)
zAGenerate an RST table for the given table data as a list of linescSsg|]}tdd�|D���qS)css|]}t�|�VqdSr#rr�rrrr)rr*z'maketable.<locals>.<listcomp>.<genexpr>r�r�rrrr-rr*zmaketable.<locals>.<listcomp>r>css|]}d|VqdS)rNr)r'r�rrrr)tr*zmaketable.<locals>.<genexpr>r"css|]}|��VqdSr#)r%r�rrrr)}r*rrb)r�r�r1rrr5r$r�)�datar,�headerr�rxr�r|r(r�r�r�rrr�	maketableos 
r�)N)rNN)r�rNr�N)rF)3�__doc__Z
__future__rr�Zi18nr�rrrZutilsrrrrrrrr�r0r9rKrErRrSrTryrZr�rarnrsr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�<module>sl

<
�


2&+
8
�
\]

8J

Youez - 2016 - github.com/yon3zu
LinuXploit