U
if') @ s d ddddddddd d
dgZ dd
lZdZdZdZee ZdZed d ZdZdZ ee e e Z
dddZdd
lZ
ddlmZ i ZG dd deZG dd dedZG dd
d
Zd
S )
ascii_lettersascii_lowercaseascii_uppercasecapwordsdigits hexdigits octdigits printablepunctuation
whitespace FormatterTemplate Nz
ZabcdefghijklmnopqrstuvwxyzZABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789ZabcdefZABCDEFZ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c C s |pd dd | |D S )N c s s | ]}| V qd S N)
capitalize).0x r +/opt/alt/python38/lib64/python3.8/string.py 0 s zcapwords..)joinsplit)ssepr r r r % s )ChainMapc s e Zd ZdZ fddZ ZS )_TemplateMetaclassa/
%(delim)s(?:
(?P%(delim)s) | # Escape sequence of two delimiters
(?P%(id)s) | # delimiter and a Python identifier
{(?P%(bid)s)} | # delimiter and a braced identifier
(?P) # Other ill-formed delimiter exprs
)
c sb t t| ||| d|kr$| j}n$tjt| j| j| jp@| jd }t || j
tjB | _d S )Npattern)ZdelimidZbid)superr __init__r _reescape delimiter idpatternbraceidpatterncompileflagsVERBOSE)clsnamebasesZdctr __class__r r r C s
z_TemplateMetaclass.__init__)__name__
__module____qualname__r r
__classcell__r r r, r r 9 s r c @ sF e Zd ZdZdZdZejZdd Z dd Z
efdd Zefd
dZ
dS )r $z(?a:[_a-z][_a-z0-9]*)Nc C s
|| _ d S r )template)selfr3 r r r r \ s zTemplate.__init__c C sd | d}| jd | jdd}|s.d}d}n"|td|d d }t|}td||f d S )NinvalidT)keepends z.Invalid placeholder in string: line %d, col %d)startr3
splitlineslenr
ValueError)r4 moilinescolnolinenor r r _invalida s
zTemplate._invalidc s: t kr| n|rt| fdd}j|jS )Nc sd | dp| d}|d k r(t | S | dd k r<jS | dd k rT| tdjd S NnamedZbracedZescapedr5 z#Unrecognized named group in pattern)groupstrr# rC r= r r> rE mappingr4 r r converts s
z$Template.substitute..convert_sentinel_dict _ChainMapr subr3 r4 rJ ZkwsrK r rI r
substitutem s
zTemplate.substitutec s: t kr| n|rt| fdd}j|jS )Nc s | dp| d}|d k rHzt | W S tk
rF | Y S X | dd k r\jS | dd k rr| S tdjd S rD )rF rG KeyErrorr# r= r rH rI r r rK s z)Template.safe_substitute..convertrL rP r rI r safe_substitute s
zTemplate.safe_substitute)r. r/ r0 r# r$ r% r!
IGNORECASEr' r rC rM rQ rS r r r r r P s ) metaclassc @ sV e Zd Zdd Zdd ZdddZdd Zd
d Zdd
Zdd Z dd Z
dd ZdS )r c O s | |||S r )vformat)r4
format_stringargskwargsr r r format s zFormatter.formatc C s. t }| ||||d\}}| ||| |S )N )set_vformatcheck_unused_args)r4 rW rX rY used_argsresult_r r r rV s zFormatter.vformatr
c C s |dk rt dg }| |D ]\}} }
}|r8|| | d k r| dkrj|dkrXt dt|} |d7 }n| r|r~t dd}| | ||\}}
||
| ||}| j|
||||d |d\}
}|| ||
qd
||fS )Nr
zMax string recursion exceededr8 FzJcannot switch from manual field specification to automatic field numberingr7 )auto_arg_index)r= parseappendrG isdigit get_fieldadd
convert_fieldr] format_fieldr )r4 rW rX rY r_ Zrecursion_depthrb r` Zliteral_text
field_nameformat_spec
conversionobjZarg_usedr r r r] s<