a XC?hF)�@s�gd�ZddlZdZdZdZeeZdZeddZd Zd Z eee eZ dd d �Z ddl Z dd lmZiZGdd�d�Ze��Gdd�d�ZdS)) � ascii_letters�ascii_lowercase�ascii_uppercase�capwords�digits� hexdigits� octdigits� printable� punctuation� whitespace� Formatter�Template�Nz ZabcdefghijklmnopqrstuvwxyzZABCDEFGHIJKLMNOPQRSTUVWXYZ� 0123456789ZabcdefZABCDEFZ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~cCs|pd�dd�|�|�D��S)N� css|]}|��VqdS�N)� capitalize)�.0�x�r�+/opt/alt/python39/lib64/python3.9/string.py� 0�zcapwords..)�join�split)�s�seprrrr%s r)�ChainMapcsVeZdZdZdZdZejZ�fdd�Z dd�Z dd �Z e fd d �Z e fd d �Z�ZS)r �$z(?a:[_a-z][_a-z0-9]*)Nc srt���d|jvr|j}nzC) | # Escape sequence of two delimiters (?PzJ) | # delimiter and a Python identifier {(?Pz�)} | # delimiter and a braced identifier (?P) # Other ill-formed delimiter exprs ) ) �super�__init_subclass__�__dict__r�_re�escape� delimiter� idpattern�braceidpattern�compile�flags�VERBOSE)�clsrZdelim�idZbid�� __class__rrr Es     ����zTemplate.__init_subclass__cCs ||_dSr)�template)�selfr.rrr�__init__WszTemplate.__init__cCsd|�d�}|jd|�jdd�}|s.d}d}n"|td�|dd���}t|�}td||f��dS)N�invalidT)�keepends�������z.Invalid placeholder in string: line %d, col %d)�startr.� splitlines�lenr� ValueError)r/�mo�i�lines�colno�linenorrr�_invalid\s �zTemplate._invalidc s:�tur|�n|rt|�����fdd�}�j�|�j�S)Ncsd|�d�p|�d�}|dur(t�|�S|�d�dur<�jS|�d�durT��|�td�j��dS�N�namedZbracedZescapedr1z#Unrecognized named group in pattern)�group�strr$r?r9r�r:rA��mappingr/rr�convertns  �z$Template.substitute..convert��_sentinel_dict� _ChainMapr�subr.�r/rFZkwsrGrrEr� substitutehs   zTemplate.substitutec s:�tur|�n|rt|�����fdd�}�j�|�j�S)Ncs�|�d�p|�d�}|durFzt�|�WStyD|��YS0|�d�durZ�jS|�d�durp|��Std�j��dSr@)rBrC�KeyErrorr$r9rrDrErrrG�s �z)Template.safe_substitute..convertrHrLrrEr�safe_substitute{s   zTemplate.safe_substitute)�__name__� __module__� __qualname__r$r%r&r"� IGNORECASEr(r r0r?rIrMrO� __classcell__rrr,rr 9s  r c@sVeZdZdd�Zdd�Zddd�Zdd �Zd d �Zd d �Zdd�Z dd�Z dd�Z dS)r cOs|�|||�Sr)�vformat)r/� format_string�args�kwargsrrr�format�szFormatter.formatcCs.t�}|�||||d�\}}|�|||�|S)N�)�set�_vformat�check_unused_args)r/rVrWrX� used_args�result�_rrrrU�szFormatter.vformatr c Cs�|dkrtd��g}|�|�D]�\}} } } |r8|�|�| dur| dkrj|durXtd��t|�} |d7}n| ��r�|r~td��d}|�| ||�\} } |�| �|�| | �} |j| ||||d|d�\} }|�|� | | ��qd� |�|fS)Nr zMax string recursion exceededr4FzJcannot switch from manual field specification to automatic field numberingr3)�auto_arg_index) r9�parse�appendrC�isdigit� get_field�add� convert_fieldr\� format_fieldr)r/rVrWrXr^Zrecursion_depthrar_Z literal_text� field_name� format_spec� conversion�objZarg_usedrrrr\�s6�    � zFormatter._vformatcCst|t�r||S||SdSr)� isinstance�int)r/�keyrWrXrrr� get_value�s zFormatter.get_valuecCsdSrr)r/r^rWrXrrrr]�szFormatter.check_unused_argscCs t||�Sr)rY)r/�valuerjrrrrh�szFormatter.format_fieldcCsN|dur |S|dkrt|�S|dkr,t|�S|dkrs"   Y