U
�w#[0+ � @ s� d Z dZddlZddlZddlZddlZddlmZmZm Z ddlm
Z
mZ ddlm
Z
mZ ddlmZmZmZ G dd � d e
�ZG d
d� de
�ZG dd
� d
e
�ZG dd� de
�ZG dd� 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 @ sD e Zd ZdZdZdZdZe�dej �dfe�d�dffZ
dd � Zd
S )�Headersz<
Process fields in a PEP's initial RFC-2822 header.
ih zpep-%04dz3http://hg.python.org/peps/file/default/pep-%04d.txtz\$RCSfile: (.+),v \$$z\1z\$[a-zA-Z]+: (.+) \$$c C s t | j�std��| jd }t|tj�r4d|d kr<td��d }|D ]�}|d �� �� dkrD|d �� }zt|�}| j | }W n� t
k
�r( |}d }| jjjd| |d �}| j�
|�}tj||p�d
|d�}| j�
|�} |�| � t |d ��r
|g|d d d d �<