+
    Bi[                        ^ RI t ^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt  ! R R] P                  4      t	 ! R R] P                  4      t
 ! R	 R
4      t ! R R4      t ! R R] P                  4      t]R8X  d   ] P                  ! 4        R# R# )    N)Template)cpython_onlyensure_lazy_importsc                   0   a  ] tR t^	t o ]R 4       tRtV tR# )LazyImportTestc                "    \        R RR04       R# )base64recollectionsNr   selfs   &3/usr/lib/python3.14/test/test_string/test_string.pytest_lazy_importLazyImportTest.test_lazy_import
   s    Ht]&;<     N)__name__
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell____classdict__s   @r   r   r   	   s     = =r   r   c                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tRtV tR# )
ModuleTestc                z   V P                  \        P                  R 4       V P                  \        P                  R4       V P                  \        P                  R4       V P                  \        P
                  \        P                  \        P                  ,           4       V P                  \        P                  R4       V P                  \        P                  \        P                  R,           4       V P                  \        P                  R4       V P                  \        P                  R4       V P                  \        P                  \        P                  \        P                  ,           \        P                  ,           \        P                  ,           \        P                  ,           4       R# )z 	
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789abcdefABCDEF01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~N)assertEqualstring
whitespaceascii_lowercaseascii_uppercaseascii_lettersdigits	hexdigits	octdigitspunctuation	printabler   s   &r   
test_attrsModuleTest.test_attrs   s+   
 	**,=>//1MN//1MN--v/E/EH^H^/^_5))6==>+IJ)):6++-QR))6==6;Q;Q+QTZTjTj+jmsmm+  CI  CT  CT  ,T  	Ur   c                   V P                  \        P                  ! R 4      R4       V P                  \        P                  ! R4      R4       V P                  \        P                  ! R4      R4       V P                  \        P                  ! R4      R4       V P                  \        P                  ! RR4      R4       V P                  \        P                  ! R4      R	4       V P                  \        P                  ! R
4      R4       V P                  \        P                  ! R4      R4       V P                  \        P                  ! RR4      R4       R# )zabc def ghizAbc Def Ghizabc	def
ghizabc	   def  
ghizABC DEF GHIzABC-DEF-GHI-zAbc-Def-GhizABC-def DEF-ghi GHIzAbc-def Def-ghi Ghiz   aBc  DeF   zAbc Defz		aBc	DeF		z		Abc	Def	N)r$   r%   capwordsr   s   &r   test_capwordsModuleTest.test_capwords    s    7G9=I)=>N7G<mL)>?AVW)9:IF8)D>Or   c                   \         P                  ! 4       pV P                  VP                  R 4      R 4       V P                  VP                  RR4      R4       V P                  VP                  RR^4      R4       V P	                  \
        VP                  4       V P	                  \
        \         P                  P                  4       R# )foozfoo{0}barfoobarzfoo{1}{0}-{1}z	foo6bar-6N)r%   	Formatterr$   formatassertRaises	TypeErrorr   fmts   & r   test_basic_formatterModuleTest.test_basic_formatter+   s     E*E2He4h?OUA>L)SZZ0)V%5%5%<%<=r   c                d   \         P                  ! 4       pV P                  VP                  R RR7      R4       V P	                  \
        VP                  R 4       V P                  VP                  RRR7      R4       V P	                  \
        VP                  R4       V P                  VP                  RRR7      R4       V P	                  \
        VP                  R4       V P                  \        R4      ;_uu_ 4        VP                  R RR	7       R
R
R
4       R
#   + '       g   i     R
# ; i)z-{arg}-testargz-test-z-{self}-r   z-{format_string}-)format_stringrG   )rG   rF   N)r%   r;   r$   r<   r=   KeyErrorassertRaisesRegexr>   r?   s   & r   test_format_keyword_arguments(ModuleTest.test_format_keyword_arguments3   s     I6:HE(CJJ	:JV<hG(CJJ
;$7vN!	#(CJJ0CD##I??JJYFJ; @???s    DD/	c           	     t   \         P                  ! 4       pV P                  VP                  R R^4      R P                  R^4      4       V P                  VP                  RRR^R7      RP                  RR^R7      4       V P                  VP                  RR^4      RP                  R^4      4       V P                  VP                  RR^R4      RP                  R^R4      4       V P                  VP                  RR	R^R
7      RP                  R	R^R
7      4       V P	                  \
        4      ;_uu_ 4        VP                  RR^4       RRR4       V P	                  \
        4      ;_uu_ 4        VP                  RR^4       RRR4       R#   + '       g   i     LK; i  + '       g   i     R# ; i)zfoo{}{}r9   zfoo{1}{num}{1}N)numz{:^{}}z	{:^{}} {}Xz{:^{pad}}{}r8   )padzfoo{1}{}zfoo{}{1}r%   r;   r$   r<   r=   
ValueErrorr?   s   & r   test_auto_numberingModuleTest.test_auto_numbering?   sp    Iua8"))%3	5$4dEqI)00u!0D	FHeQ7!2	4K3?$++E1c:	<M5%QG&--eU-B	D z**JJz5!, + z**JJz5!, +* +* +**s   <F5F&F#	&F7	c                N   \         P                  ! 4       pV P                  VP                  R RR7      R4       V P                  VP                  RR4      R4       V P	                  \
        VP                  RR4       V P                  VP                  R^*4      R4       V P                  VP                  R\         P                  4      R4       V P                  VP                  R\        ^4      4      R	4       V P                  VP                  R\        R
4      4      R4       R# )z	-{arg!r}-rD   rE   z-'test'-z{0!s}z{0!h}z{0!a}42z6'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'z'\xff'   z'\u0100'N)r%   r;   r$   r<   r=   rQ   r)   chrr?   s   & r   test_conversion_specifiers%ModuleTest.test_conversion_specifiersR   s     KV<jIGV4f=*cjj'6BGR0$7Gf.B.BCD	FGc#h7CGc#h7Er   c                .   \         P                  ! 4       p ! R  R4      pV! 4       pV P                  VP                  RV4      R4       V P	                  \
        4      ;_uu_ 4        VP                  RR4       RRR4       R#   + '       g   i     R# ; i)c                   &   a  ] tR t^`t o R tRtV tR# ),ModuleTest.test_name_lookup.<locals>.AnyAttrc                    V# Nr   )r   attrs   &&r   __getattr__8ModuleTest.test_name_lookup.<locals>.AnyAttr.__getattr__a   s    r   r   N)r   r   r   r   r`   r   r   r   s   @r   AnyAttrr\   `   s      r   rb   z{0.lumber}{0.jack}
lumberjack N)r%   r;   r$   r<   r=   AttributeError)r   r@   rb   xs   &   r   test_name_lookupModuleTest.test_name_lookup^   sn     	 	 I$8!<lK~..JJ+R0 /...s   &BB	c                   \         P                  ! 4       p. ROpV P                  VP                  RV4      R4       V P	                  \
        4      ;_uu_ 4        VP                  R. 4       RRR4       V P	                  \        4      ;_uu_ 4        VP                  R/ 4       RRR4       R#   + '       g   i     LJ; i  + '       g   i     R# ; i)eggsz{0[2]}{0[0]}spameggsN)rj   andspam)r%   r;   r$   r<   r=   
IndexErrorrH   )r   r@   lookups   &  r   test_index_lookupModuleTest.test_index_lookuph   s     (NF;ZHz**JJ~r* +x((JJ~r* )( +*(((s   B.C.B>	C	c                    \         P                  ! 4       p\        P                  ! \        P                  ! R R7      R7      pR\        P                  ! ^R7      .pV P	                  VP                  RW#4      R4       R# )baz)r9   r8   N)quxz{.foo.bar:{[1].qux}}zbaz r%   r;   typesSimpleNamespacer$   r<   )r   r@   	namespacewidthss   &   r   test_auto_numbering_lookup%ModuleTest.test_auto_numbering_lookupq   s`     ))e.C.C.NO	--!45JJ-yA6	Kr   c                     ! R  R\         P                  4      pV! 4       p\        P                  ! RR7      pV P	                  VP                  RV^4      R4       R# )c                   2   a a ] tR t^yt oV 3R ltRtVtV ;t# )JModuleTest.test_auto_numbering_reenterability.<locals>.ReenteringFormatterc                   < VP                  4       '       d4   \        V4      ^ 8  d$   V P                  RV\        V4      ^,
          4      # \        SV `  W4      # )r   z{:{}}!)isdigitintr<   superformat_field)r   valueformat_spec	__class__s   &&&r   r   WModuleTest.test_auto_numbering_reenterability.<locals>.ReenteringFormatter.format_fieldz   sK    &&((S-=-A;;xK8H18LMM 7/CCr   r   )r   r   r   r   r   r   r   __classcell__r   r   s   @@r   ReenteringFormatterr   y   s     D Dr   r   rN   )az{.a:{}}zX!!!Nrv   )r   r   r@   rf   s   &   r   "test_auto_numbering_reenterability-ModuleTest.test_auto_numbering_reenterabilityx   sM    	D&"2"2 	D "#!!C(Iq!4f=r   c                     ! R  R\         P                  4      pV! RR/4      pV P                  VP                  R4      R4       R# )c                   2   a  ] tR t^t o / 3R ltR tRtV tR# )>ModuleTest.test_override_get_value.<locals>.NamespaceFormatterc                P    \         P                  P                  V 4       Wn        R # r^   )r%   r;   __init__ry   )r   ry   s   &&r   r   GModuleTest.test_override_get_value.<locals>.NamespaceFormatter.__init__   s      ))$/!*r   c                    \        V\        4      '       d
    W1,          # \        P
                  P                  WV4       R #   \         d    T P                  T,          u # i ; ir^   )
isinstancestrrH   ry   r%   r;   	get_value)r   keyargskwdss   &&&&r   r   HModuleTest.test_override_get_value.<locals>.NamespaceFormatter.get_value   sT    c3''3#y( $$..s$? $ 3#~~c223s   A A#"A#)ry   N)r   r   r   r   r   r   r   r   r   s   @r   NamespaceFormatterr      s     )+ +@ @r   r   greetinghelloz{greeting}, world!zhello, world!Nr%   r;   r$   r<   )r   r   r@   s   &  r   test_override_get_value"ModuleTest.test_override_get_value   sA    	@!1!1 	@ !*W!56$89?Kr   c                     ! R  R\         P                  4      pV! 4       pV P                  VP                  RR 4      R4       R# )c                   &   a  ] tR t^t o R tRtV tR# )<ModuleTest.test_override_format_field.<locals>.CallFormatterc                $    \        V! 4       V4      # r^   )r<   )r   r   r   s   &&&r   r   IModuleTest.test_override_format_field.<locals>.CallFormatter.format_field   s    eg{33r   r   N)r   r   r   r   r   r   r   r   s   @r   CallFormatterr      s     4 4r   r   z*{0}*c                      R # )resultr   r   r   r   <lambda>7ModuleTest.test_override_format_field.<locals>.<lambda>   s    hr   z*result*Nr   )r   r   r@   s   &  r   test_override_format_field%ModuleTest.test_override_format_field   s9    	4F,, 	4 oG->?Lr   c                     ! R  R\         P                  4      pV! 4       pV P                  VP                  RRR4      R4       R# )c                   2   a a ] tR t^t oV 3R ltRtVtV ;t# ):ModuleTest.test_override_convert_field.<locals>.XFormatterc                4   < VR 8X  d   R# \         SV `  W4      # )rf   N)r   convert_field)r   r   
conversionr   s   &&&r   r   HModuleTest.test_override_convert_field.<locals>.XFormatter.convert_field   s    $w,U??r   r   )r   r   r   r   r   r   r   r   r   s   @@r   
XFormatterr      s     @ @r   r   z{0!r}:{0!x}r8   z
'foo':NoneNr   )r   r   r@   s   &  r   test_override_convert_field&ModuleTest.test_override_convert_field   s<    	@)) 	@ lM5%@,Or   c                     ! R  R\         P                  4      pV! 4       pV P                  VP                  RR4      R4       R# )c                   &   a  ] tR t^t o R tRtV tR# )4ModuleTest.test_override_parse.<locals>.BarFormatterc              3     "   VP                  R 4       F=  pV^ ,          R8X  d%   VR,          P                  R4      w  r4pRW5R3x  K5  VRRR3x  K?  	  R# 5i)|+:   NN:rd   N)split	partition)r   rG   field
field_name_r   s   &&    r   parse:ModuleTest.test_override_parse.<locals>.BarFormatter.parse   sZ     *005EQx35:2Y5H5H5M2
{ *4??#T455 6s   AAr   N)r   r   r   r   r   r   r   r   s   @r   BarFormatterr      s     6 6r   r   z*|+0:^10s|*r8   z*   foo    *Nr   )r   r   r@   s   &  r   test_override_parseModuleTest.test_override_parse   s8    
	66++ 
	6 nM59>Jr   c           
     B    ! R  R\         P                  4      pV! 4       pV P                  VP                  R^
4      R4       V P                  VP                  R^
^dR7      R4       V P                  VP                  R^
^^dR7      R4       V P	                  \
        VP                  R^
^^d^ R	7       V P	                  \
        VP                  R^
^4       V P	                  \
        VP                  R^
^^dR7       V P	                  \
        VP                  R
^
^^dR7       R# )c                   &   a  ] tR t^t o R tRtV tR# )@ModuleTest.test_check_unused_args.<locals>.CheckAllUsedFormatterc                    \        VP                  4       4      pVP                  \        ^ \	        V4      4      4       V F  pVP                  V4       K  	  V'       d   \        R4      hR# )r   zunused argumentsN)setkeysupdaterangelenremoverQ   )r   	used_argsr   kwargsunused_argsrF   s   &&&&  r   check_unused_argsRModuleTest.test_check_unused_args.<locals>.CheckAllUsedFormatter.check_unused_args   sY    !&++-0""5CI#67$C&&s+ % $%788 r   r   N)r   r   r   r   r   r   r   r   s   @r   CheckAllUsedFormatterr      s     	9 	9r   r   z{0}10z{0}{i}i10100z	{0}{i}{1}1010020)r   j{i}NrP   )r   r   r@   s   &  r   test_check_unused_args!ModuleTest.test_check_unused_args   s    
	9F$4$4 
	9 $%E2.5HbC8'BKR3?K*cjj+r2PQR*cjj%R@*cjj%R3G*cjj%R3Gr   c           	     @   \         P                  ! 4       pRp\        ^dR7      pV P                  \        4      ;_uu_ 4       pVP                  RW#\        4       R4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)d   r   r   N	recursionr   )
r%   r;   dictr=   rQ   _vformatr   assertInr   	exception)r   r@   r   r   errs   &    r   test_vformat_recursion_limit'ModuleTest.test_vformat_recursion_limit   sj     z**cLLceR8 +k3s}}#56 +*s   BB	r   N)r   r   r   r   r/   r5   rA   rJ   rR   rX   rg   rp   r{   r   r   r   r   r   r   r   r   r   r   s   @r   r   r      sc     U	P>
<-&
F1+K	>L(MPK H,7 7r   r   c                       ] tR t^tRtR# )Bagr   N)r   r   r   r   r   r   r   r   r   r      s    r   r   c                   &   a  ] tR t^t o R tRtV tR# )Mappingc                    T pVP                  R 4       F  p \        W#4      pK  	  V#   \         d    \        T4      hi ; i).)r   getattrre   rH   )r   nameobjparts   &&  r   __getitem__Mapping.__getitem__   sJ    JJsOD%c( $
 
 " %tn$%s	   )A r   N)r   r   r   r   r   r   r   r   s   @r   r   r      s      r   r   c                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )TestTemplatec           	        \        R 4      pV P                  VP                  \        RRR7      4      R4       V P	                  \
        VP                  \        RR7      4       V P	                  \        \         P                  4       R# )z,$who likes to eat a bag of $what worth $$100timhamwhowhat(tim likes to eat a bag of ham worth $100r  N)r   r$   
substituter   r=   rH   r>   )r   ss   & r   test_regular_templates#TestTemplate.test_regular_templates   sa    CDdu5&ABC	E(ALL$5/B)X%8%89r   c           	         \        R 4      p\        RRRR7      pV P                  VP                  V4      R4       V P	                  \
        VP                  \        RRR7      4       R# )$who likes ${what} for ${meal}r   r   dinnerr  r  mealtim likes ham for dinnerr   N)r   r   r$   r  r=   rH   r   r  ds   &  r   "test_regular_templates_with_braces/TestTemplate.test_regular_templates_with_braces   sT    56UX6a*DE(ALL5u5	7r   c                z    \        R 4      p\        RRRR7      pV P                  VP                  V4      R4       R# )z$WHO likes ${WHAT} for ${MEAL}r   r   r  )WHOWHATMEALr  Nr   r   r$   r  r  s   &  r   &test_regular_templates_with_upper_case3TestTemplate.test_regular_templates_with_upper_case   s4    56UX6a*DEr   c                z    \        R 4      p\        RRRR7      pV P                  VP                  V4      R4       R# )z%$_wh0_ likes ${_w_h_a_t_} for ${mea1}r   r   r  )_wh0_	_w_h_a_t_mea1r  Nr  r  s   &  r   'test_regular_templates_with_non_letters4TestTemplate.test_regular_templates_with_non_letters   s4    <=uH=a*DEr   c           	         V P                   p\        R 4      pV! VP                  \        RRR7      4      R4       \        R4      pV! VP                  \        RRR7      4      R4       R# )z-$who likes to eat a bag of $$what worth $$100r   r   r   z*tim likes to eat a bag of $what worth $100z$who likes $$ztim likes $Nr$   r   r  r   r   eqr  s   &  r   test_escapesTestTemplate.test_escapes  sY    DE
1<<U347	9_%
1<<U34mDr   c                    V P                   p\        R 4      p\        RR7      pV! VP                  V4      R4       V! VP	                  V4      R4       R# )z%(foo)s $foo ${foo}rs   rt   z%(foo)s baz bazNr$   r   r   r  safe_substituter   r#  r  r  s   &   r   test_percentsTestTemplate.test_percents  sJ    *+UO
1<<?-.
1Q!23r   c                    V P                   p\        R 4      p\        ^R7      pV! VP                  V4      R4       V! VP	                  V4      R4       \        R4      pV! VP                  V4      R4       R# )z&tim has eaten $count bags of ham today)countz!tim has eaten 7 bags of ham todayz(tim has eaten ${count} bags of ham todayNr'  r)  s   &   r   test_stringification!TestTemplate.test_stringification  sh    =>qM
1<<??@
1Q!DE?@
1<<??@r   c                    V P                   p\        R 4      p\        RRR7      pV! VP                  V4      R4       V! VP	                  V4      R4       R# )z$who ate ${meal})r  r  z'('tim', 'fred') ate ('ham', 'kung pao')N)r   fred)r   kung paor'  r)  s   &   r   test_tupleargsTestTemplate.test_tupleargs  sN    '(_+>?
1<<?EF
1Q!JKr   c           
        V P                   p\        R 4      pV! VP                  \        RR7      4      R4       V! VP                  \        RR7      4      R4       V! VP                  \        RRR7      4      R	4       V! VP                  \        RRR
7      4      R4       V! VP                  \        RRRR7      4      R4       R# )r
  r   r  ztim likes ${what} for ${meal}r   r  z$who likes ham for ${meal}r  )r  r  z$who likes ham for dinnerr   ztim likes ham for ${meal}r  r  N)r$   r   r(  r   r"  s   &  r   test_SafeTemplateTestTemplate.test_SafeTemplate"  s    56
1Te_-/NO
1Tu-.0LM
1Tu8<=&	(
1Te%89&	(
1Te%hGH%	'r   c                   V P                   p\        R 4      pV! \        VP                  \	        RR7      4       \        R4      pV! \        VP                  \	        RR7      4       \        R4      pV! \        VP                  \	        RR7      4       \        R4      pV! \        VP                  \	        RR7      4       \        R4      pV! \        VP                  \	        RR7      4       R# )z$who likes $r   r  z$who likes ${what)z$who likes $100u   $who likes $ıu   $who likes $İN)r=   r   rQ   r  r   )r   raisesr  s   &  r   test_invalid_placeholders&TestTemplate.test_invalid_placeholders.  s    ""^$z1<<%9)*z1<<%9&'z1<<%9 )*z1<<%9)*z1<<%9r   c                2    ! R  R\         4      p\        4       p\        4       Vn        \        4       VP                  n        RVP                  P                  n        RVP                  n        V! R4      pV P                  VP                  V4      R4       R# )c                       ] tR tRtRtRtR# )9TestTemplate.test_idpattern_override.<locals>.PathPatterni>  z[_a-z][._a-z0-9]*r   N)r   r   r   r   	idpatternr   r   r   r   PathPatternr?  >  s    ,Ir   rA  r   r   z,$bag.foo.who likes to eat a bag of $bag.whattim likes to eat a bag of hamN)	r   r   r   bagr8   r  r  r$   r  )r   rA  mr  s   &   r   test_idpattern_override$TestTemplate.test_idpattern_override=  si    	-( 	-IE			
FGa*IJr   c                     ! R  R\         4      pV! R4      p\        RRRRR7      pV P                  \        VP                  V4       V P                  VP                  V4      R4       R	# )
c                       ] tR tRt^ tRtR# )3TestTemplate.test_flags_override.<locals>.MyPatterniI  r   N)r   r   r   r   flagsr   r   r   r   	MyPatternrI  I  s    Er   rK  z$wHO likes ${WHAT} for ${meal}r   r   r  r1  )wHOr  r  wzfredHO likes ${WHAT} for dinnerN)r   r   r=   rQ   r  r$   r(  )r   rK  r  r  s   &   r   test_flags_override TestTemplate.test_flags_overrideH  s[    	 	67UX@*allA6**1-/PQr   c                     ! R  R\         4      p\        RRR7      pV! R4      pV P                  VP                  V4      R4       R# )c                   "    ] tR tRtRtRt^ tRtR# )FTestTemplate.test_idpattern_override_inside_outside.<locals>.MyPatterniS  [a-z]+[A-Z]+r   Nr   r   r   r   r@  braceidpatternrJ  r   r   r   r   rK  rR  S      !I&NEr   rK  r8   BARr8   rX  z$foo ${BAR}zfoo BARNr  r   rK  rD  r  s   &   r   &test_idpattern_override_inside_outside3TestTemplate.test_idpattern_override_inside_outsideP  s>    	 	 U&m$a)4r   c                     ! R  R\         4      p\        RRR7      pV! R4      pV P                  \        VP                  V4       V! R4      pV P                  \        VP                  V4       R# )c                   "    ] tR tRtRtRt^ tRtR# )WTestTemplate.test_idpattern_override_inside_outside_invalid_unbraced.<locals>.MyPatterni^  rS  rT  r   NrU  r   r   r   rK  r_  ^  rW  r   rK  r8   rX  rY  z$FOOz${bar}N)r   r   r=   rQ   r  rZ  s   &   r   7test_idpattern_override_inside_outside_invalid_unbracedDTestTemplate.test_idpattern_override_inside_outside_invalid_unbraced[  s\    	 	 U&f*allA6h*allA6r   c                    ! R  R\         4      p\        4       p\        4       Vn        \        4       VP                  n        RVP                  P                  n        RVP                  n        V! R4      pV P                  VP                  V4      R4        ! R R\         4      pV! R4      pV P                  \        VP                  / 4       V P                  \        VP                  / 4       R# )	c                       ] tR tRtRtRtR# )5TestTemplate.test_pattern_override.<locals>.MyPatternii  z
            (?P<escaped>@{2})                   |
            @(?P<named>[_a-z][._a-z0-9]*)       |
            @{(?P<braced>[_a-z][._a-z0-9]*)}    |
            (?P<invalid>@)
            r   Nr   r   r   r   patternr   r   r   r   rK  rd  i  s	    Gr   rK  r   r   ,@bag.foo.who likes to eat a bag of @bag.whatrB  c                       ] tR tRtRtRtR# )6TestTemplate.test_pattern_override.<locals>.BadPatternix  a  
            (?P<badname>.*)                     |
            (?P<escaped>@{2})                   |
            @(?P<named>[_a-z][._a-z0-9]*)       |
            @{(?P<braced>[_a-z][._a-z0-9]*)}    |
            (?P<invalid>@)                      |
            r   Nre  r   r   r   
BadPatternri  x  	    Gr   rj  N)r   r   r   rC  r8   r  r  r$   r  r=   rQ   r(  )r   rK  rD  r  rj  s   &    r   test_pattern_override"TestTemplate.test_pattern_overrideh  s    	 	 IE			
DEa*IJ	 	 EF*allB7*a&7&7<r   c                     ! R  R\         4      pRpV! V4      pV P                  \        VP                  / 4       VP                  RR/4      pV P	                  VR4       R# )c                       ] tR tRtRtRtR# )5TestTemplate.test_braced_override.<locals>.MyTemplatei  
            \$(?:
              (?P<escaped>$)                     |
              (?P<named>[_a-z][_a-z0-9]*)        |
              @@(?P<braced>[_a-z][_a-z0-9]*)@@   |
              (?P<invalid>)                      |
           )
           r   Nre  r   r   r   
MyTemplaterp    	    Gr   rr  PyCon in $@@location@@location	ClevelandPyCon in ClevelandN)r   r=   rH   r  r$   r   rr  tmpltvals   &    r   test_braced_override!TestTemplate.test_braced_override  sY    	 	 (t(ALL"5llJ4523r   c                     ! R  R\         4      pRpV! V4      pV P                  VP                  4       V4       VP                  RR/4      pV P                  VR4       R# )c                       ] tR tRtRtRtR# ):TestTemplate.test_braced_override_safe.<locals>.MyTemplatei  rq  r   Nre  r   r   r   rr  r    rs  r   rr  rt  ru  rv  rw  N)r   r$   r(  rx  s   &    r   test_braced_override_safe&TestTemplate.test_braced_override_safe  s^    	 	 (t**,d3[ 9:23r   c                    ! R  R\         4      pV! R4      pV P                  \        4      ;_uu_ 4       pVP                  / 4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                       ] tR tRtRtRtR# );TestTemplate.test_invalid_with_no_lines.<locals>.MyTemplatei  z
              (?P<invalid>) |
              unreachable(
                (?P<named>)   |
                (?P<braced>)  |
                (?P<escaped>)
              )
            r   Nre  r   r   r   rr  r    s	    Gr   rr  rd   Nzline 1, col 1)r   r=   rQ   r  r   r   r   )r   rr  r  r   s   &   r   test_invalid_with_no_lines'TestTemplate.test_invalid_with_no_lines  s]    	 	 rNz**cLL +os3=='9: +*s   A66B	c                x    \        R 4      p\        RRR7      pV P                  VP                  V4      R4       R# )$who likes $whatu   tÿmu   fþedr   u   tÿm likes fþedNr  r  s   &  r   test_unicode_values TestTemplate.test_unicode_values  s2    '(XK0a*DEr   c           	        V P                   p\        R 4      pV! VP                  RRR7      R4       V! VP                  \        RR7      RR7      R4       V! VP                  \        RRR7      RRR7      R4       \        R	4      pV! VP                  \        R
R7      RR7      R4       V! VP                  \        RR7      RR7      R4       \        R4      pV! VP                  RR7      R4       R# r  r   r   r   ztim likes hamr  r6  r1  r2  zthe mapping is $mappingnonert   bozo)mappingzthe mapping is bozoonetwozthe mapping is twozthe self is $selfr   zthe self is bozoNr!  r"  s   &  r   test_keyword_arguments#TestTemplate.test_keyword_arguments  s    '(
1<<E<.@
1<<e<4oF
1<<j9!  /	 ./
1<<(&<9 	"
1<<U+U<;	! ()
1<<V<$&89r   c           	     ~   V P                   pV P                  p\        R 4      pV! VP                  RRR7      R4       V! VP                  \	        RR7      RR7      R4       V! VP                  \	        RRR7      RRR7      R4       \        R	4      pV! VP                  \	        R
R7      RR7      R4       V! VP                  \	        RR7      RR7      R4       \	        RR7      pV! \
        VP                  V/ 4       V! \
        VP                  V/ 4       \        R4      pV! VP                  RR7      R4       R# r  )r$   r=   r   r(  r   r>   r  )r   r#  r:  r  r  s   &    r   test_keyword_arguments_safe(TestTemplate.test_keyword_arguments_safe  s+   ""'(
1U3_E
1Te_59?K
1Tf:>!  /	 ./
1Tf-v> 	"
1T%0%@	!y!,,2.y!++Q3()
1&)+=>r   c           	     2   V P                   pV P                  p ! R  R\        4      pV! R4      pV! VP                  RRR7      R4       V! \        VP                  4       V! VP                  RRR7      R4       V! VP                  4       R4       V! R4      pV! \        VP                  \        RRR7      4       V! VP                  4       R4        ! R R	\        4      pV! R
4      pV P                  VP                  \        RRR7      4      R4       R# )c                       ] tR tRtRtRtR# )?TestTemplate.test_delimiter_override.<locals>.AmpersandTemplatei  &r   Nr   r   r   r   	delimiterr   r   r   r   AmpersandTemplater        Ir   r  zthis &gift is for &{who} &&budyou)giftr  zthis bud is for you &zthis &gift is for &{who} &c                       ] tR tRtRtRtR# )7TestTemplate.test_delimiter_override.<locals>.PieDelimsi  @r   Nr  r   r   r   	PieDelimsr    r  r   r  z-@who likes to eat a bag of @{what} worth $100r   r   r   r  N)r$   r=   r   r  rH   r(  rQ   r   )r   r#  r:  r  r  r  s   &     r   test_delimiter_override$TestTemplate.test_delimiter_override  s    ""	 	;<
1<<U<.0GHx&
1%U35LM
1 <=:;z1<<5e)DE
1 <=	 	EFdu5&ABC	Er   c                4   V P                   p\        R 4      pV P                  VP                  4       4       \        R4      pV P	                  VP                  4       4        ! R R\        4      pV! R4      pV P                  \        VP                  4       R# ).$who likes to eat a bag of ${what} worth $$100-$who likes to eat a bag of ${what} worth $100c                       ] tR tRtRtRtR# ).TestTemplate.test_is_valid.<locals>.BadPatterni    
            (?P<badname>.*)                  |
            (?P<escaped>@{2})                   |
            @(?P<named>[_a-z][._a-z0-9]*)       |
            @{(?P<braced>[_a-z][._a-z0-9]*)}    |
            (?P<invalid>@)                      |
            r   Nre  r   r   r   rj  r    rk  r   rj  rg  N)r$   r   
assertTrueis_validassertFalser=   rQ   )r   r#  r  rj  s   &   r   test_is_validTestTemplate.test_is_valid  sv    EF

%DE&	 	 EF*ajj1r   c                   V P                   pV P                  p\        R 4      pVP                  4       pV! VRR.4       \        R4      pVP                  4       pV! VRR.4       \        R4      pVP                  4       pV! VRR.4        ! R R\        4      pV! R4      pV P                  \        VP                  4       R# )	r  r  r  z^$who likes to eat a bag of ${what} worth $$100; ${who} likes to eat a bag of $what worth $$100r  c                       ] tR tRtRtRtR# )5TestTemplate.test_get_identifiers.<locals>.BadPatterni!  r  r   Nre  r   r   r   rj  r  !  rk  r   rj  rg  N)r$   r=   r   get_identifiersrQ   )r   r#  r:  r  idsrj  s   &     r   test_get_identifiers!TestTemplate.test_get_identifiers  s    ""EF!
3  uv!
3  DE!
3 	 	 EF*a&7&78r   r   N)r   r   r   r   r  r  r  r  r$  r*  r.  r3  r7  r;  rE  rN  r[  r`  rl  r|  r  r  r  r  r  r  r  r  r   r   r   s   @r   r   r      s     :7F
F
E4AL
':	KR	57=84"4";(F
:"?*E(2*9 9r   r   __main__)unittestr%   r   rw   test.supportr   test.support.import_helperr   TestCaser   r   r   r   r   r   mainr   r   r   <module>r     s        % :=X&& =H7"" H7Z	 	 @98$$ @9F
 zMMO r   