o bcF)@sdZgdZddlZdZdZdZeeZdZedd Zd Z d Z eee eZ dd d Z ddl ZddlmZiZGdddZeGdddZdS)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_lettersascii_lowercaseascii_uppercasecapwordsdigits hexdigits octdigits printable punctuation whitespace FormatterTemplateNz ZabcdefghijklmnopqrstuvwxyzZABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789ZabcdefZABCDEFZ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~cCs|pddd||DS)acapwords(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|]}|VqdSN) capitalize).0xrg/home/lily/lilypond-2.24.1/release/binaries/dependencies/install/Python-3.10.8/lib/python3.10/string.py 0szcapwords..)joinsplit)sseprrrr%s r)ChainMapcsZeZdZdZdZdZdZejZ fddZ ddZ d d Z e fd d Ze fd dZZS)r z.A string class for supporting $-substitutions.$z(?a:[_a-z][_a-z0-9]*)Nc srtd|jvr|j}nt|j}|j}|jp|j}d|d|d|d|d }t ||j tj B|_dS)Npatternz 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_reescape delimiter idpatternbraceidpatterncompileflagsVERBOSE)clsrdelimidZbid __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)NinvalidT)keependsz.Invalid placeholder in string: line %d, col %d)startr. splitlineslenr ValueError)r/moilinescolnolinenorrr_invalid\s zTemplate._invalidc :tur|n|rt|fdd}j|jS)Ncs`|dp |d}|durt|S|ddurjS|ddur*|tdjNnamedbracedZescapedr2z#Unrecognized named group in pattern)groupstrr#r@r:rr;rCmappingr/rrconvertns  z$Template.substitute..convert_sentinel_dict _ChainMaprsubr.r/rIZkwsrJrrHr substitutehs   zTemplate.substitutec rA)Ncs||dp |d}|dur#zt|WSty"|YSw|ddur-jS|ddur8|StdjrB)rErFKeyErrorr#r:rrGrHrrrJs  z)Template.safe_substitute..convertrKrOrrHrsafe_substitute{s   zTemplate.safe_substitute)__name__ __module__ __qualname____doc__r#r$r%r! IGNORECASEr'rr0r@rLrPrR __classcell__rrr,rr 9s  r c@sXeZdZddZddZ dddZdd Zd d Zd d ZddZ ddZ ddZ dS)r cOs||||Sr)vformat)r/ format_stringargskwargsrrrformatszFormatter.formatcCs.t}|||||d\}}|||||S)N)set_vformatcheck_unused_args)r/rZr[r\ used_argsresult_rrrrYszFormatter.vformatr c Cs|dkrtdg}||D]^\}} } } |r||| durm| dkr5|dur,tdt|} |d7}n | rA|r?tdd}|| ||\} } || || | } |j| ||||d|d\} }|| | | qd ||fS)Nr zMax string recursion exceededr5FzJcannot switch from manual field specification to automatic field numberingr4)auto_arg_index) r:parseappendrFisdigit get_fieldadd convert_fieldr` format_fieldr)r/rZr[r\rbZrecursion_depthrercZ literal_text field_name format_spec conversionobjZarg_usedrrrr`s8     zFormatter._vformatcCst|tr ||S||Sr) isinstanceint)r/keyr[r\rrr get_values zFormatter.get_valuecCsdSrr)r/rbr[r\rrrraszFormatter.check_unused_argscCs t||Sr)r])r/valuernrrrrlr1zFormatter.format_fieldcCsJ|dur|S|dkrt|S|dkrt|S|dkrt|Std|)Nrraz"Unknown conversion specifier {0!s})rFreprasciir:r])r/rurorrrrkszFormatter.convert_fieldcCs t|Sr)_stringZformatter_parser)r/rZrrrrfr1zFormatter.parsec CsJt|\}}||||}|D]\}}|rt||}q||}q||fSr)rzZformatter_field_name_splitrtgetattr) r/rmr[r\firstrestrpZis_attrr<rrrri s   zFormatter.get_fieldN)r ) rSrTrUr]rYr`rtrarlrkrfrirrrrr s 6 r r)rV__all__rzr rrrrrrr rrrer! collectionsrrMrLr rr rrrrs&   Y