a
�DOgF) � @ s� g d �Z ddlZdZdZdZee ZdZed d Zd Zd
Z ee e e Z
ddd�ZddlZ
dd
lmZ i ZG dd� d�Ze�� G dd� d�ZdS ))�
ascii_letters�ascii_lowercase�ascii_uppercase�capwords�digits� hexdigits� octdigits� printable�punctuation�
whitespace� Formatter�Template� Nz
�abcdefghijklmnopqrstuvwxyz�ABCDEFGHIJKLMNOPQRSTUVWXYZ�
0123456789ZabcdefZABCDEF�01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c C s |pd� dd� | �|�D ��S )N� c s s | ]}|� � V qd S �N)�
capitalize)�.0�x� r �/usr/lib64/python3.9/string.py� <genexpr>0 � zcapwords.<locals>.<genexpr>)�join�split)�s�sepr r r r % s r )�ChainMapc sV e Zd ZdZdZdZejZ� fdd�Z dd� Z
dd � Zefd
d�Z
efdd
�Z� ZS )r �$z(?a:[_a-z][_a-z0-9]*)Nc sr t � �� d| jv r| j}n<t�| j�}| j}| jp8| j}d|� d|� d|� d|� d� }t� || j
tjB �| _d S )N�patternz
z(?:
(?P<escaped>zC) | # Escape sequence of two delimiters
(?P<named>zJ) | # delimiter and a Python identifier
{(?P<braced>z�)} | # delimiter and a braced identifier
(?P<invalid>) # Other ill-formed delimiter exprs
)
)�super�__init_subclass__�__dict__r! �_re�escape� delimiter� idpattern�braceidpattern�compile�flags�VERBOSE)�clsr! �delim�id�bid�� __class__r r r# E s
����zTemplate.__init_subclass__c C s
|| _ d S r )�template)�selfr3 r r r �__init__W s zTemplate.__init__c C sd |� d�}| jd |� jdd�}|s.d}d}n"|td�|d d� �� }t|�}td||f ��d S )N�invalidT)�keepends� � ���z.Invalid placeholder in string: line %d, col %d)�startr3 �
splitlines�lenr �
ValueError)r4 �mo�i�lines�colno�linenor r r �_invalid\ s
�zTemplate._invalidc s: � t u r|� n|rt|� �� � �fdd�}�j�|�j�S )Nc sd | � d�p| � d�}|d ur(t� | �S | � d�d ur<�jS | � d�d urT��| � td�j��d S �N�named�braced�escapedr6 z#Unrecognized named group in pattern)�group�strr'