grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a 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