
    h                     ^    S SK r S SKrS SKrSSKJr  SSKJr   " S S\R                  5      rg)    N   )open_source_file   )strip_string_literalsc                   @    \ rS rSrSr\S 5       rS rS rS r	S r
Srg)	TestStripLiterals	   Nc                 >   ^ U4S jn[         R                  " SX 5      $ )Nc                 *   > TU R                  5          $ N)group)matchliteralss    ^/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Build/Tests/TestStripLiterals.pylookup1TestStripLiterals._rebuild_string.<locals>.lookup   s    EKKM**    z__Pyx_L[0-9]+_)resub)strippedr   r   s    ` r   _rebuild_string!TestStripLiterals._rebuild_string   s    	+ vv&99r   c           "        ^  U 4S jn/ SQnU Vs/ s H  o3U4PM     snSSSSSSS	S
SSSSSSSSSSSSSSSSSSR                  [        SS5       Vs/ s H	  nSU S 3PM     sn5      -   S!-   4/-   nU H  u  p6T R                  US"9   U" X65        S S S 5        UR                  5       nUR                  5       nT R                  US"9   U" X65        S S S 5        US#-  nUS#-  nT R                  US"9   U" X65        S S S 5        M     U" S$S%5        g s  snf s  snf ! , (       d  f       N= f! , (       d  f       Na= f! , (       d  f       M  = f)&Nc                    > [        U 5      u  p#TR                  X5        TR                  X#5      nTR                  X5        g r   )r   assertEqualr   )sexpectedr   r   	recoveredselfs        r   strip_equalsBTestStripLiterals.test_strip_string_literals.<locals>.strip_equals   s<    !6q!9HX0,,X@IQ*r   ) abc123z	func(123)z '' z '''''''''''' z '''''''''''''' )z"x"z"__Pyx_L1_")z'x''__Pyx_L1_')z	 '"' "'" z '__Pyx_L1_' "__Pyx_L2_" )z
 '''' '''  '''__Pyx_L1_''' )z
 """" """ z """__Pyx_L1_""" )z
 '''a
''' r&   )z'a\'b'r%   )z'a\\'r%   )z'a\\\'b'r%   )zu'abc'zu'__Pyx_L1_')zr'abc\\'zr'__Pyx_L1_')z	ru'abc\\'zru'__Pyx_L1_')z	abc # fooabc #__Pyx_L1_)z	abc # 'x'r'   )z'abc#'r%   )z include 'a.pxi' # something herezinclude '__Pyx_L1_' #__Pyx_L2_)z!cdef extern from 'a.h': # commentz(cdef extern from '__Pyx_L1_': #__Pyx_L2_)z4 func('xyz') + " " + "" '' # '' | "" "123" 'xyz' "' z3 func('__Pyx_L1_') + "__Pyx_L2_" + "" '' #__Pyx_L3_)z f'f' z f'__Pyx_L1_' )z f'a{123}b' z f'__Pyx_L1_{123}__Pyx_L2_' )z f'{1}{f'xyz'}' z f'{1}{f'__Pyx_L1_'}' )z f'{f'''xyz{f"""abc"""}'''}' z) f'{f'''__Pyx_L1_{f"""__Pyx_L2_"""}'''}' )z* f'{{{{{"abc"}}}}}{{}}{{' == '{{abc}}{}{' z3 f'__Pyx_L1_{"__Pyx_L2_"}__Pyx_L3_' == '__Pyx_L4_' a  f'{x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x} {x:{width}} 'zf'r"         z
{x}__Pyx_L_z{x:{width}}__Pyx_L251_')code
z( print("Say something: %s' % something) z print("__Pyx_L1_)joinrangesubTeststrip)r   r    	unchangedr+   ntestsr   s   `      r   test_strip_string_literals,TestStripLiterals.test_strip_string_literals   s   	+
	 +44)$)4.&&"/9H#1+@H 5BGG%3-H-Q|A3a0-HIILeegAB8
 B
H $ND4(T, )::<D~~'H4(T, )DLDH4(T, )( $ 	:#	
c 5B I )( )( )(s/   DD<	D	D+1	D<
D(	+
D9	<
E	c           	         [         R                  " S5      R                  n[        U5       H  nU R	                  [        UR                  U5      5      S9   [        [        U5      5       nUR                  5       nS S S 5        [        W5      u  pxU" U5      n	U	(       aN  [        U	R                  S5      5      S:w  a0  U	R                  5       S-   n
U R                  SXzS-
  U
S-    < 35        U R                  Xx5      nU R                  Xk5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       GM  = f)Nz[^_'"}](['"]+)[^_'"{])filer(   r   zLeftover string found:    )r   compilesearchsortedr/   strrelative_tor   readr   lenr   startfailr   r   )r   base_dir
file_paths_find_leftover_string	file_pathfr+   r   r   r   	match_posr   s               r   _test_all_files!TestStripLiterals._test_all_files{   s     "

+G H O O
+I3y'<'<X'F#GH%c)n5668D 6%:4%@"-h7SQ0A5 % 1III 7RR[^`R`8a7def 00D	  1 IH ,55 IHs%   D.+D<BD.
D+'D..
D>	c                     [         R                  " [        5      R                  5       R                  S   nUR
                  S:X  d   eUR                  nU R                  X!R                  S5      5        g )Nr   Cython*.py)	pathlibPath__file__absoluteparentsnameparentrH   rglob)r   package_dirrB   s      r   #test_strip_string_literals_py_files5TestStripLiterals.test_strip_string_literals_py_files   s\    ll8,557??B8+++%%X'8'8'@Ar   c                    [         R                  " [        5      R                  5       R                  S   nUS-  n/ nUR                  5        Hl  nUR                  5       (       d  M  UR                  S:w  d  M,  UR                  UR                  S5      5        UR                  UR                  S5      5        Mn     U R                  X5        g )Nr   r3   errorsrL   z*.pyx)rM   rN   rO   rP   rQ   iterdiris_dirrR   extendrT   rH   )r   rB   	tests_dir
test_filestest_subdirs        r   %test_strip_string_literals_test_files7TestStripLiterals.test_strip_string_literals_test_files   s    <<)224<<Q?w&	
$,,.K!!##(8(8H(D!!+"3"3F";<!!+"3"3G"<= / 	X2r    )__name__
__module____qualname____firstlineno__maxDiffstaticmethodr   r4   rH   rV   r`   __static_attributes__rb   r   r   r   r   	   s0    G: :f
P2 B	3r   r   )	rM   r   unittestUtilsr   Dependenciesr   TestCaser   rb   r   r   <module>rn      s(     	  % 0R3)) R3r   