
    hi96                    x   d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZmZmZ dd	lmZmZ dd
lmZmZmZmZ ddlmZmZmZmZm Z m!Z!m"Z"m#Z# ddl$m%Z% 	 ddl&Z&n# e'$ r dZ&Y nw xY wddl(Z( e d          Z)ej*        dk     re)+                    d           ej*        dk     re)+                    d           ej*        dk     re)+                    d           ej*        dk     re)+                    d           ej*        dk     re)+                    d            G d de          Z,dS )zType checker test cases    )annotationsN)Path)build)Graph)CompileError)BuildSourceFindModuleCacheSearchPaths)test_data_prefixtest_temp_dir)DataDrivenTestCase	DataSuiteFileOperationmodule_from_path)assert_module_equivalenceassert_string_arrays_equalassert_target_equivalencecheck_test_output_filesfind_test_filesnormalize_error_messagesparse_optionsperform_file_operations)update_testcase_outputzcheck-*.test)pattern)   
   zcheck-python310.test)r      zcheck-python311.test)r      zcheck-python312.test)r      zcheck-python313.test)r      zcheck-python314.testc                  \    e Zd ZeZd dZd!dZ	 	 d"d#dZd$dZd%dZ	d&dZ
d'dZ	 d(d)dZd	S )*TypeCheckSuitetestcaser   returnNonec                   t           j                            |j                  dk    rt	          j        dd          5 }t          |j                  }|                    |j        	                                          
                                st          j        d           d d d            n# 1 swxY w Y   t          <t           j                            |j                  dk    rt          j        d           d|j                                        v pd|j        v pd	|j        v }|r,t          d
gt!          |j                                                  z             }t          j        t           j                  D ]k\  }}}|D ]b}	t+          j        d|	          }
|
rIt/          |
                    d                    |k    r#t3          d                    |	|                    cl|                                }t9          d|dz             D ]A}|d
z
  }|t;          |          k     r|dk    r||         ng }|                     |||           Bd S |                     |           d S )Nzcheck-modules-case.testtest.)prefixdiru%   File system is not case‐insensitivezcheck-reports.testz$Cannot import lxml. Is it installed?incremental	serialize   z
\.([2-9])$   z7Output file {} exists though test case only has {} runsr   )ospathbasenamefiletempfileNamedTemporaryFiler   name	with_nameupperexistspytestskiplxmllowermaxlistoutput2keyswalkcurdirresearchintgroup
ValueErrorformat
find_stepsrangelenrun_case_once)selfr#   	temp_file	temp_pathr+   	num_stepsdndirsfilesr2   mstepsstepidxopss                  c/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/mypy/test/testcheck.pyrun_casezTypeCheckSuite.run_case9   s   7HM**.GGG,FDDD I	 00	 **9>+?+?+A+ABBIIKK IK GHHHI I I I I I I I I I I I I I I <BG,,X];;?SSSK>???X]00222 ,-,hm+ 	
  	) QC$x'7'<'<'>'>"?"??@@I#%729#5#5  D%!  D	-66A S__y88(U\\ $i    ''))EaQ// 8 8Qh$'#e**$4$4eCjjr""8S$77778 8
 x(((((s   A'B22B69B6a	list[str]c                   |j         }|j        r|t          |j                  k    rd S d	dd t	          fd|D                       D             t          |j        |d          fd          |j        |d <   d S )
N_msgstrr$   c                8    |                      d          d         S )N:r   )	partition)r^   s    rY   	_filenamez8TypeCheckSuite._sort_output_if_needed.<locals>._filenamea   s    >>#&&q))    c                    i | ]\  }}||	S  rf   ).0rW   r2   s      rY   
<dictcomp>z9TypeCheckSuite._sort_output_if_needed.<locals>.<dictcomp>d   s    ZZZic4cZZZrd   c              3  .   K   | ]} |          V  d S )Nrf   )rg   msgrc   s     rY   	<genexpr>z8TypeCheckSuite._sort_output_if_needed.<locals>.<genexpr>d   s,      <Y<YPSYYs^^<Y<Y<Y<Y<Y<Yrd   c                B                          |           d          S )N)get)rj   rc   file_weightss    rY   <lambda>z7TypeCheckSuite._sort_output_if_needed.<locals>.<lambda>f   s     <3C3CIIcNNTV3W3W rd   )key)r^   r_   r$   r_   )output_inline_startrS   rK   output	enumeratesorted)rM   r#   r[   rW   rc   ro   s       @@rY   _sort_output_if_neededz%TypeCheckSuite._sort_output_if_needed\   s    *~ 	HO(<(<!<!<F	* 	* 	* 	* [Z9<Y<Y<Y<YWX<Y<Y<Y3Y3YZZZ &OCDD!'W'W'W'W'W!
 !
 !
rd   Nr   
operationslist[FileOperation] | Noneincremental_steprE   c                	   |g }d                     j                  }|                     ||          }j        D ]D\  }}t	          |          }|                    d          r|t          j        v rt          j        |= E|dk    s|dk    rQ|D ]M\  }	}
}|	dk    rAt          |
dd          5 }|	                    |           d d d            n# 1 swxY w Y    nNn|dk    rt          |           t          ||          }d	|_        d	|_        d
j        v rd	|_        dj        v rd|_        dj        vr j                            d           |_        dj        vrd	|_        |r|j        rd	|_        nd|_        j        st,          j        |_        g }|D ].\  }	}
}|                    t5          |
|	|rd n|                     /t,          j                             t8          d          }t          j                            d|           d }	 t=          j        ||t>                    }|j         }n# tB          $ r}|j"        }Y d }~nd }~ww xY wt          j        d         |k    sJ t          j        d= n*# t          j        d         |k    sJ t          j        d= w xY wj#        rtI          |          }|dk     r1|dk    rd}n
|dk    sJ d}| %                    |           j&        }n#d| dz   }j'        (                    |g           }||k    r-j)        *                    dd          rtW          ||           tY          |||-                    j        j.                             |r7|j        t,          j        k    r'| /                    ||j         |j0        |j1                   d}|r|te          |dz             z  }j3        (                    |dz             }fd|j0        j4        D             }|tk          |||           |dk    r|dk    rdnte          |dz
            }j6        (                    |dz
            }|to          d|z   ||j0        j8                   j9        (                    |dz
            }|to          d|z   ||j0        j:                   j;        rty          |d           d S d S ) N
_pluginr   r.   __main__wutf8encodingTcolumns
errorcodesFabstract	_no_emptyzunion-errorplugins)sourcesoptionsalt_lib_pathr-   zBUnexpected type checker output in incremental, run 1 ({}, line {})z,Unexpected type checker output ({}, line {})z3Unexpected type checker output in incremental, run z ({}, line {})z--update-data)ry   targetsc                ,    g | ]\  }}|j         v |S rf   )test_modules)rg   moduletargetr#   s      rY   
<listcomp>z0TypeCheckSuite.run_case_once.<locals>.<listcomp>   s5       "FFX222 222rd    	recheckedstaleztmp/)strip_prefix)=joininputparse_modulerS   r   endswithsysmodulesopenwriter   r   use_builtins_fixturesshow_tracebackr2   show_column_numbershide_error_codesr5   allow_empty_bodiesforce_union_syntaxr+   writescacher/   devnull	cache_dirappendr   r0   r   insertr   r   errorsr   messagesnormalize_outputr   rv   rs   r?   rn   config	getoptionr   r   rH   lineverify_cachemanagergraphr_   expected_fine_grained_targetsprocessed_targetsr   expected_rechecked_modulesr   rechecked_modulesexpected_stale_modulesstale_modulesoutput_filesr   )rM   r#   rw   ry   original_program_textmodule_datar2   _r   module_nameprogram_pathprogram_textfr   r   
plugin_dirresr[   erj   rs   r5   expectedactualsuffixexpected_recheckedexpected_stales    `                         rY   rL   zTypeCheckSuite.run_case_oncei   s    J $		(. 9 9''(=?OPP  ~ 	( 	(GD!%d++Fy)) (f.C.CK'q  $4$9$9;F  7\<*,,lC&AAA .Q---. . . . . . . . . . . . . . .E - !!#J///   5xAQRR(,%!% %%*.G'8=((',G$X]**-5]-C-CK-P-P)PG&--)-G& 	/ 3 	/"&G"'G' /$&J!7B 	 	3K|NNL+?O7attUabb    W\\"2I>>
:&&&	+gw][[[C
AA 	 	 	
AAAAAA	 8A;*,,,, 8A;*,,,,OOOO$ 	,(++A a1$$Z'1,,,,D''!444_FF YFVXX"#  %))*:B??FQ;;8?44_eLL;"8QAQRRRR"61cjj.V.VWWW 	 BJ..!!+sz3;	RRRD 2,q0111=AABRUVBVWWH   &)k&C  F
 #)$&AAA!##/144#>NQR>R:S:S%-%H%L%LM]`aMa%b%b"%1-#f,.@#+B_   "*!@!D!DEUXYEY!Z!Z!--&(.#+:S     	U#H.>VTTTTTT	U 	UsB   .CC	C	#H; :I? ;
III? II? ?'J&r   list[tuple[str, str, str]]r   build.BuildManagerr   r   c                .   |                      |          }fd|j                                        D             }|                     |          }|                    d |D                        |                     ||          }|s|r
J d            ||k    st          d| d|           t          j        	                    t          j        
                    |j        j        d                    sJ t          j        
                    |j        j        d          }	t          j        	                    |	          sJ t          |	          5 }
|
                                                    d          sJ 	 d d d            d S # 1 swxY w Y   d S )	Nc                >    h | ]\  }}|         j         |j        S rf   )transitive_errorr0   )rg   idrT   r   s      rY   	<setcomp>z.TypeCheckSuite.verify_cache.<locals>.<setcomp>   s+    bbb52quRyGabbbbrd   c                    i | ]	\  }}}||
S rf   rf   )rg   r   r0   texts       rY   rh   z/TypeCheckSuite.verify_cache.<locals>.<dictcomp>   s!    UUU.Ek4TUUUrd   z-Some modules reported error despite no errorszcache data discrepancy z != z
.gitignorezCACHEDIR.TAGz+Signature: 8a477f597d28d172789f06886806bc55)find_error_message_pathsr   itemsfind_module_filesupdatefind_missing_cache_filesAssertionErrorr/   r0   isfiler   r   r   r   read
startswith)rM   r   r[   r   r   error_pathsbusted_pathsr   missing_pathscachedir_tagr   s       `      rY   r   zTypeCheckSuite.verify_cache   s    33A66bbbbGO,A,A,C,Cbbb((11UUUUUVVV55gwGG
 _,__0____,, !\=!\!\l!\!\]]]w~~bgll7?+DlSSTTTTTw||GO$=~NNw~~l+++++, 	V16688&&'TUUUUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	Vs   *F

FFset[str]c                    t                      }|D ]C}t          j        d|          }|r*|                    d          }|                    |           D|S )Nz.([^\s:]+):(\d+:)?(\d+:)? (error|warning|note):r.   )setrC   matchrF   add)rM   r[   hitsr   rT   ps         rY   r   z'TypeCheckSuite.find_error_message_paths  sX    uu 	 	DJDQQA GGAJJrd   dict[str, str]c                H    d |j                                         D             S )Nc                $    i | ]\  }}||j         S rf   )r0   )rg   r   r   s      rY   rh   z4TypeCheckSuite.find_module_files.<locals>.<dictcomp>  s     JJJJBFKJJJrd   )r   r   )rM   r   s     rY   r   z TypeCheckSuite.find_module_files  s$    JJ'/2G2G2I2IJJJJrd   r   c                    d}i }|                                 D ]8\  }}t          j        |||          }t          j        |||||          s|||<   9t	          |                                          S )NT)r   r   find_cache_metavalidate_metar   values)rM   r   r   ignore_errorsmissingr   r0   metas           rY   r   z'TypeCheckSuite.find_missing_cache_files  sz      	# 	#HB(T7;;D&tR}gNN #"7>>##$$$rd   r   r_   c                   t          j        d|t           j                  }|dk    r+d| d}t          j        ||t           j                  }||}|r|                    d          }g }t	          t
          fddd          }t          |dd          }	|                    d	          D ]}
|	                    |
          }t          |t                    sJ d
|
             t          |d          5 }|                                }ddd           n# 1 swxY w Y   |                    |
||f           |S dd|fgS )a+  Return the module and program names for a test case.

        Normally, the unit tests will parse the default ('__main__')
        module and follow all the imports listed there. You can override
        this behavior and instruct the tests to check multiple modules
        by using a comment like this in the test case input:

          # cmd: mypy -m foo.bar foo.baz

        You can also use `# cmdN:` to have a different cmd for incremental
        step N (2, 3, ...).

        Return a list of tuples (module name, file name, program text).
        z!# cmd: mypy -m ([a-zA-Z0-9_. ]+)$)flagsr.   z# cmdz: mypy -m ([a-zA-Z0-9_. ]+)$Nrf   )fscacher    zCan't find ad hoc case file: r   r   r}   main)rC   rD   	MULTILINErF   r
   r   r	   splitfind_module
isinstancer_   r   r   r   )rM   r   ry   rT   	alt_regexalt_mmodule_namesoutsearch_pathscacher   r0   r   s                rY   r   zTypeCheckSuite.parse_module  s   " I9<r|\\\aN 0NNNIIiR\JJJE   	8 771::LC&'7RDDL#L$MMME+11#66 > >((55!$,,[[.[k.[.[[[[$000 ,A#$6688L, , , , , , , , , , , , , , ,

K|<====J677s   5DD	D	)r#   r   r$   r%   )r#   r   r[   r\   r$   r%   )Nr   )r#   r   rw   rx   ry   rE   r$   r%   )
r   r   r[   r\   r   r   r   r   r$   r%   )r[   r\   r$   r   )r   r   r$   r   )r   r   r   r   r$   r   )r   )r   r_   ry   rE   r$   r   )__name__
__module____qualname__typecheck_filesrS   rZ   rv   rL   r   r   r   r   r   rf   rd   rY   r"   r"   6   s        E!) !) !) !)F
 
 
 
  26 !	|U |U |U |U |U|V V V V8   K K K K	% 	% 	% 	% :;+8 +8 +8 +8 +8 +8 +8rd   r"   )-__doc__
__future__r   r/   rC   r   r3   pathlibr   mypyr   
mypy.buildr   mypy.errorsr   mypy.modulefinderr   r	   r
   mypy.test.configr   r   mypy.test.datar   r   r   r   mypy.test.helpersr   r   r   r   r   r   r   r   mypy.test.update_datar   r;   ImportErrorr9   r   version_inforemover"   rf   rd   rY   <module>r     s     " " " " " " 				 				 



                    $ $ $ $ $ $ G G G G G G G G G G < < < < < < < < Y Y Y Y Y Y Y Y Y Y Y Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9 8 8 8 8 8KKKK   DDD  "/.999 g1222g1222g1222g1222g1222O8 O8 O8 O8 O8Y O8 O8 O8 O8 O8s   *A/ /A98A9