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: //proc/self/root/lib/python3.6/site-packages/docutils/transforms/__pycache__/peps.cpython-36.pyc
3

�@LX0+�@s�dZdZddlZddlZddlZddlZddlmZmZm	Z	ddlm
Z
mZddlm
Z
mZddlmZmZmZGdd	�d	e
�ZGd
d�de
�ZGdd
�d
e
�ZGdd�de
�ZGdd�dej�ZdZddd�ZdS)z�
Transforms for PEP processing.

- `Headers`: Used to transform a PEP's initial RFC-2822 header.  It remains a
  field list, but some entries get processed.
- `Contents`: Auto-inserts a table of contents.
- `PEPZero`: Special processing for PEP 0.
ZreStructuredText�N)�nodes�utils�	languages)�ApplicationError�	DataError)�	Transform�TransformError)�parts�
references�miscc@sDeZdZdZdZdZdZejdej	�dfejd�dffZ
dd	�Zd
S)�Headersz<
    Process fields in a PEP's initial RFC-2822 header.
    ihzpep-%04dz3http://hg.python.org/peps/file/default/pep-%04d.txtz\$RCSfile: (.+),v \$$z\1z\$[a-zA-Z]+: (.+) \$$cCs*t|j�std��|jd}t|tj�s6d|dkr>td��d}x�|D]�}|dj�j�dkrH|dj�}yt|�}|j	|}Wn�t
k
�r,|}d}|jjjd||d	�}|jj
|�}tj||p�d
|d�}|jj
|�}	|j|	�t|d��r|g|dddd�<n|dtjdd|�7<YnXPqHW|dk�rFtd
��|dk�rttjt�}
|jjd|
�|jj|
�t|�dk�s�|ddj�j�dk�r�td���x~|D�]t}|dj�j�}|d}t|�dk�r�td|jdd���n�t|�dk�r$t|dtj��sztd|jdd���nV|dk�r�tjdtjtj|jd�d��}
|�rz|tjddtjd|
|d��7}n�q�|d}|dk�r�x*|D]"}t|tj��r�|jt|���q�W�q�|dk�r�x,|D]$}t|tj��r�|jt||���q�W�q�|d#k�rzg}tjd�}xRtj d|j��D]>}t|�}|j!tj|||jj"j#|j$|d��|j!|��q"W|dd$�|dd�<n�|dk�r�t%j&||j'�|�r |j�}
tjd|
|d�g|dd�<nd|d k�r�|j�}|jj"j#|j$d!}tjd||d�g|dd�<n"|d"k�r�t|��r�t%j&||j'��q�WdS)%NzDocument tree is empty.r�rfc2822�classeszADocument does not begin with an RFC-2822 header; it is not a PEP.�pep�z?"PEP" header must contain an integer; "%s" is an invalid value.)Z	base_nodez(none))Zrefid�z3Document does not contain an RFC-2822 "PEP" header.��titlez	No title!z4PEP header field body contains multiple elements:
%s)�levelz=PEP header field body may only contain a single paragraph:
%sz
last-modifiedz%d-%b-%Y�source�)�refuriZauthorzdiscussions-to�replaces�replaced-by�requires� z,?\s+zcontent-type��version)rrr���)(�len�documentr�
isinstancerZ
field_list�astext�lower�int�pep_cvs_url�
ValueError�reporterZwarning�set_idZproblematicZadd_backref�	paragraph�pending�PEPZero�insert�note_pendingZpformat�timeZstrftimeZ	localtime�os�stat�	reference�replace_self�
mask_emailZText�re�split�append�settings�pep_base_url�pep_urlrZclean_rcs_keywords�rcs_keyword_substitutions)�self�headerrZfield�valueZcvs_url�msgZmsgidZprbZprbidr*�nameZbodyZdateZpara�nodeZnewbodyZspaceZrefpep�pepnoZpep_typeZuri�rB�/usr/lib/python3.6/peps.py�apply)s�



 


(








z
Headers.applyN)�__name__�
__module__�__qualname__�__doc__�default_priorityr9r%r4�compile�
IGNORECASEr:rDrBrBrBrCrsrc@seZdZdZdZdd�ZdS)�Contentsz~
    Insert an empty table of contents topic and a transform placeholder into
    the document after the RFC 2822 header.
    i|cCs�tj|jjj|jj�}|jd}tjd|�}tj	d|dgd�}tj
|�}|jj|�sb|dj|�|jj
|�tjtj�}||7}|jjd|�|jj|�dS)N�contentsr)r�namesr)rZget_languager r7Z
language_coder'Zlabelsrr�topicZfully_normalize_nameZhas_namer6Znote_implicit_targetr*r	rLr,r-)r;Zlanguager?rrOr*rBrBrCrD�s


zContents.applyN)rErFrGrHrIrDrBrBrBrCrL�srLc@s$eZdZdZdZdd�Zdd�ZdS)�TargetNotesz�
    Locate the "References" section, insert a placeholder for an external
    target footnote insertion transform at the end, and schedule the
    transform to run immediately.
    icCs|j}t|�d}d}}x\|dkrvt||tj�rv||dj�j�j�}d|kr`||}Pnd|krl|}|d8}qW|s�tj�}|tjdd�7}|j	|�|r�|j
||�n
|j|�tjt
j�}|j|�|jj|d�tjtjd|jid�}|j|�|jj|d�dS)	Nrrr
�	copyrightrZ
References�callback)Zdetails)r rr!rZsectionr"r#r5rr(r,r6r*r
rPr-rZCallBack�cleanup_callback)r;�doc�iZrefsectrQZtitle_wordsr*rBrBrCrD�s2



zTargetNotes.applycCs"t|j�dkr|jjj|j�dS)z�
        Remove an empty "References" section.

        Called after the `references.TargetNotes` transform is complete.
        rN)r�parent�remove)r;r*rBrBrCrS�szTargetNotes.cleanup_callbackN)rErFrGrHrIrDrSrBrBrBrCrP�srPc@seZdZdZdZdd�ZdS)r+z'
    Special processing for PEP 0.
    i�cCs*t|j�}|jj|�|jjj|j�dS)N)�PEPZeroSpecialr �walkZ	startnoderVrW)r;ZvisitorrBrBrCrD�s
z
PEPZero.applyN)rErFrGrHrIrDrBrBrBrCr+�sr+c@sNeZdZdZejZdd�Zdd�Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�ZdS)rXz�
    Perform the special processing needed by PEP 0:

    - Mask email addresses.

    - Link PEP numbers in the second column of 4-column tables to the PEPs
      themselves.
    cCsdS)NrB)r;r@rBrBrC�
unknown_visit�szPEPZeroSpecial.unknown_visitcCs|jt|��dS)N)r2r3)r;r@rBrBrC�visit_reference�szPEPZeroSpecial.visit_referencecCsd|dkrtj�dS)Nr
r)rZSkipNode)r;r@rBrBrC�visit_field_list�szPEPZeroSpecial.visit_field_listcCs|ddk|_d|_dS)NZcols�r)�	pep_table�entry)r;r@rBrBrC�visit_tgroup�szPEPZeroSpecial.visit_tgroupcCs0|jd7_|jr,|jdkr,|djd�dS)Nrrr�num)r_r^r6)r;r@rBrBrC�
visit_colspec�szPEPZeroSpecial.visit_colspeccCs
d|_dS)Nr)r_)r;r@rBrBrC�	visit_rowszPEPZeroSpecial.visit_rowcCs�|jd7_|jr�|jdkr�t|�dkr�|djd�|d}t|tj�r�t|�dkr�|j�}y4t|�}|j	j
j|j|}tj
|||d�|d<Wntk
r�YnXdS)Nrrrrar)r)r_r^rr6r!rr)r"r$r r7r8r9r1r&)r;r@�p�textr�refrBrBrC�visit_entryszPEPZeroSpecial.visit_entryN)
rErFrGrHrr9rZr[r\r`rbrcrgrBrBrBrCrX�s	rX�[email protected]�[email protected]�[email protected]Cs�|jd�r�|djd�r�|ddd�tkr6|d}n |j�jdd�}tjd|d	d
�}|dkrb|S|dd|7<|g|dd�<|Sn|SdS)a�
    Mask the email address in `ref` and return a replacement node.

    `ref` is returned unchanged if it contains no email address.

    For email addresses such as "user@host", mask the address as "user at
    host" (text) to thwart simple email address harvesters (except for those
    listed in `non_masked_addresses`).  If a PEP number (`pepno`) is given,
    return a reference including a default email subject.
    rzmailto:rNr�@z&#32;&#97;t&#32;rZhtml)�formatz?subject=PEP%%20%s)�hasattr�
startswith�non_masked_addressesr"�replacer�raw)rfrAZreplacementZreplacement_textrBrBrCr3s
r3)rhrirj)N)rHZ
__docformat__�sysr/r4r.ZdocutilsrrrrrZdocutils.transformsrrr	r
rrrLrPr+ZSparseNodeVisitorrXror3rBrBrBrC�<module>s$o23