grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jF)ã@sšdZgd¢ZddlZdZdZdZeeZdZedd Zd Z d Z eee eZ dd d „Z ddl ZddlmZiZGdd„dƒZe ¡Gdd„dƒZdS)anA collection of string constants. Public module variables: whitespace -- a string containing all ASCII whitespace ascii_lowercase -- a string containing all ASCII lowercase letters ascii_uppercase -- a string containing all ASCII uppercase letters ascii_letters -- a string containing all ASCII letters digits -- a string containing all ASCII decimal digits hexdigits -- a string containing all ASCII hexadecimal digits octdigits -- a string containing all ASCII octal digits punctuation -- a string containing all ASCII punctuation characters printable -- a string containing all ASCII characters considered printable ) Ú ascii_lettersÚascii_lowercaseÚascii_uppercaseÚcapwordsÚdigitsÚ hexdigitsÚ octdigitsÚ printableÚ punctuationÚ whitespaceÚ FormatterÚTemplateéNz ZabcdefghijklmnopqrstuvwxyzZABCDEFGHIJKLMNOPQRSTUVWXYZÚ 0123456789ZabcdefZABCDEFZ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~cCs|pd dd„| |¡Dƒ¡S)a‘capwords(s [,sep]) -> string Split the argument into words using split, capitalize each word using capitalize, and join the capitalized words using join. If the optional second argument sep is absent or None, runs of whitespace characters are replaced by a single space and leading and trailing whitespace are removed, otherwise sep is used to split and join the words. ú css�|]}| ¡VqdS©N)Ú capitalize)Ú.0Úx©rú-/opt/alt/python310/lib64/python3.10/string.pyÚ 0s€zcapwords..)ÚjoinÚsplit)ÚsÚseprrrr%s r)ÚChainMapcsZeZdZdZdZdZdZejZ ‡fdd„Z dd„Z d d „Z e fd d „Ze fd d„Z‡ZS)r z.A string class for supporting $-substitutions.ú$z(?a:[_a-z][_a-z0-9]*)Nc srtƒ ¡d|jvr|j}nt |j¡}|j}|jp|j}d|›d|›d|›d|›d� }t  ||j tj B¡|_dS)NÚpatternz z(?: (?PzC) | # 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__rrrEs    ÿþýüzTemplate.__init_subclass__cCs ||_dSr)Útemplate)Úselfr-rrrÚ__init__Wó zTemplate.__init__cCs`| d¡}|jd|…jdd�}|sd}d}n|td |dd…¡ƒ}t|ƒ}td||fƒ‚)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 ó:ˆtur|‰n|rt|ˆƒ‰‡‡fdd„}ˆj |ˆj¡S)Ncs`| d¡p | d¡}|durtˆ|ƒS| d¡durˆjS| d¡dur*ˆ |¡tdˆjƒ‚©NÚnamedZbracedZescapedr1z#Unrecognized named group in pattern)ÚgroupÚstrr#r?r9r©r:rB©Úmappingr.rrÚconvertns  ÿz$Template.substitute..convert©Ú_sentinel_dictÚ _ChainMaprÚsubr-©r.rGZkwsrHrrFrÚ substitutehs   zTemplate.substitutec r@)Ncs|| d¡p | d¡}|dur#ztˆ|ƒWSty"| ¡YSw| d¡dur-ˆjS| d¡dur8| ¡Stdˆjƒ‚rA)rCrDÚKeyErrorr#r9rrErFrrrH�s  ÿÿz)Template.safe_substitute..convertrIrMrrFrÚsafe_substitute{s   zTemplate.safe_substitute)Ú__name__Ú __module__Ú __qualname__Ú__doc__r#r$r%r!Ú IGNORECASEr'rr/r?rJrNrPÚ __classcell__rrr+rr 9s  r c@sXeZdZdd„Zdd„Z ddd„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.rXrYrZÚ used_argsÚresultÚ_rrrrW£szFormatter.vformatr c Csê|dkrtdƒ‚g}| |¡D]^\}} } } |r| |¡| durm| dkr5|dur,tdƒ‚t|ƒ} |d7}n |  ¡rA|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ÚappendrDÚisdigitÚ get_fieldÚaddÚ convert_fieldr^Ú format_fieldr)r.rXrYrZr`Zrecursion_depthrcraZ literal_textÚ field_nameÚ format_specÚ conversionÚobjZarg_usedrrrr^©s8ÿ     ý€zFormatter._vformatcCst|tƒr ||S||Sr)Ú isinstanceÚint)r.ÚkeyrYrZrrrÚ get_valueßs zFormatter.get_valuecCsdSrr)r.r`rYrZrrrr_æszFormatter.check_unused_argscCs t||ƒSr)r[)r.Úvaluerlrrrrjêr0zFormatter.format_fieldcCsJ|dur|S|dkrt|ƒS|dkrt|ƒS|dkrt|ƒStd |¡ƒ‚)NrÚrÚaz"Unknown conversion specifier {0!s})rDÚreprÚasciir9r[)r.rsrmrrrriîszFormatter.convert_fieldcCs t |¡Sr)Ú_stringZformatter_parser)r.rXrrrrdr0zFormatter.parsec CsJt |¡\}}| |||¡}|D]\}}|rt||ƒ}q||}q||fSr)rxZformatter_field_name_splitrrÚgetattr) r.rkrYrZÚfirstÚrestrnZis_attrr;rrrrg s   zFormatter.get_fieldN)r ) rQrRrSr[rWr^rrr_rjrirdrgrrrrr Ÿs ÿ6 r r)rTÚ__all__rxr rrrrrrr rrÚrer!Ú collectionsrrKrJr rr rrrrÚs&   Y