grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B dœ™ "Û•ã @s¶dZddddddddd d d d g Zd dlZdZdZdZeeZdZeddZdZ dZ eee eZ ddd„Z d dl Zd dlmZGdd„deƒZGdd „d ed�ZGdd „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/python37/lib64/python3.7/string.pyú 0szcapwords..)ÚjoinÚsplit)ÚsÚseprrrr%s )ÚChainMapcs eZdZdZ‡fdd„Z‡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 ) csbtt|ƒ |||¡d|kr$|j}n$tjt |j¡|j|jp@|jdœ}t  ||j tj B¡|_dS)NÚpattern)ZdelimÚidZbid) ÚsuperrÚ__init__rÚ_reÚescapeÚ delimiterÚ idpatternÚbraceidpatternÚcompileÚflagsÚVERBOSE)ÚclsÚnameÚbasesZdctr)Ú __class__rrrAs z_TemplateMetaclass.__init__)Ú__name__Ú __module__Ú __qualname__rrÚ __classcell__rr)r+rr7src@sBeZdZdZdZdZdZejZ dd„Z dd„Z d d „Z d d „Z dS) r z.A string class for supporting $-substitutions.ú$z(?a:[_a-z][_a-z0-9]*)NcCs ||_dS)N)Útemplate)Úselfr1rrrrZszTemplate.__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)Ústartr1Ú splitlinesÚlenrÚ ValueError)r2ÚmoÚiÚlinesÚcolnoÚlinenorrrÚ_invalid_s zTemplate._invalidcsl|s tdƒ‚|^‰}t|ƒdkr(tdƒ‚|s2|‰n|rFt||dƒ‰n|d‰‡‡fdd„}ˆj |ˆj¡S)Nz>descriptor 'substitute' of 'Template' object needs an argumentr5zToo many positional argumentsr csd| d¡p| d¡}|dk r(tˆ|ƒS| d¡dk r<ˆjS| d¡dk rTˆ |¡tdˆjƒ‚dS)NÚnamedÚbracedÚescapedr3z#Unrecognized named group in pattern)ÚgroupÚstrr"rAr;r)r<rB)Úmappingr2rrÚconvertys  z$Template.substitute..convert)Ú TypeErrorr:Ú _ChainMaprÚsubr1)ÚargsÚkwsrHr)rGr2rÚ substituteks  zTemplate.substitutecsl|s tdƒ‚|^‰}t|ƒdkr(tdƒ‚|s2|‰n|rFt||dƒ‰n|d‰‡‡fdd„}ˆj |ˆj¡S)NzCdescriptor 'safe_substitute' of 'Template' object needs an argumentr5zToo many positional argumentsr cs|| d¡p| d¡}|dk rBy tˆ|ƒStk r@| ¡SX| d¡dk rVˆjS| d¡dk rl| ¡Stdˆjƒ‚dS)NrBrCrDr3z#Unrecognized named group in pattern)rErFÚKeyErrorr"r;r)r<rB)rGr2rrrH”s  z)Template.safe_substitute..convert)rIr:rJrrKr1)rLrMrHr)rGr2rÚsafe_substitute†s  zTemplate.safe_substitute)r,r-r.Ú__doc__r"r#r$r Ú IGNORECASEr&rrArNrPrrrrr Ns )Ú metaclassc@sVeZdZdd„Zdd„Zddd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dS)r cOsN|s tdƒ‚|^}}y |^}}Wntk r>tdƒd‚YnX| |||¡S)Nz;descriptor 'format' of 'Formatter' object needs an argumentz@format() missing 1 required positional argument: 'format_string')rIr;Úvformat)rLÚkwargsr2Ú format_stringrrrÚformat°s  zFormatter.formatcCs.tƒ}| ||||d¡\}}| |||¡|S)Né)ÚsetÚ_vformatÚcheck_unused_args)r2rVrLrUÚ used_argsÚresultÚ_rrrrT¼szFormatter.vformatr c Csî|dkrtdƒ‚g}xÊ| |¡D]¼\}} } } |r:| |¡| dk r | dkrl|dkrZtdƒ‚t|ƒ} |d7}n|  ¡r„|r€tdƒ‚d}| | ||¡\} } | | ¡| | | ¡} |j| ||||d|d�\} }| |  | | ¡¡q Wd  |¡|fS)Nr zMax string recursion exceededr6FzJcannot switch from manual field specification to automatic field numberingr5)Úauto_arg_index) r;ÚparseÚappendrFÚisdigitÚ get_fieldÚaddÚ convert_fieldrZÚ format_fieldr)r2rVrLrUr\Zrecursion_depthr_r]Z literal_textÚ field_nameÚ format_specÚ conversionÚobjZarg_usedrrrrZÂs4     zFormatter._vformatcCst|tƒr||S||SdS)N)Ú isinstanceÚint)r2ÚkeyrLrUrrrÚ get_valueøs zFormatter.get_valuecCsdS)Nr)r2r\rLrUrrrr[ÿszFormatter.check_unused_argscCs t||ƒS)N)rW)r2ÚvaluerhrrrrfszFormatter.format_fieldcCsN|dkr |S|dkrt|ƒS|dkr,t|ƒS|dkrs&     a