
    mi|3                    l   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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)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                  T    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(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filesr1   mstepsstepidxopss                  k/var/www/html/bestrading.cuttalo.com/scripts/kaggle-env/lib/python3.11/site-packages/mypy/test/testcheck.pyrun_casezTypeCheckSuite.run_case8   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    rX   	_filenamez8TypeCheckSuite._sort_output_if_needed.<locals>._filename`   s    >>#&&q))    c                    i | ]\  }}||	S  re   ).0rV   r1   s      rX   
<dictcomp>z9TypeCheckSuite._sort_output_if_needed.<locals>.<dictcomp>c   s    ZZZic4cZZZrc   c              3  .   K   | ]} |          V  d S )Nre   )rf   msgrb   s     rX   	<genexpr>z8TypeCheckSuite._sort_output_if_needed.<locals>.<genexpr>c   s,      <Y<YPSYYs^^<Y<Y<Y<Y<Y<Yrc   c                B                          |           d          S )N)get)ri   rb   file_weightss    rX   <lambda>z7TypeCheckSuite._sort_output_if_needed.<locals>.<lambda>e   s     <3C3CIIcNNTV3W3W rc   )key)r]   r^   r#   r^   )output_inline_startrR   rJ   output	enumeratesorted)rL   r"   rZ   rV   rb   rn   s       @@rX   _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!
 !
 !
rc   Nr   
operationslist[FileOperation] | Noneincremental_steprD   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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 }d}	 t=          j        ||t>                    }|j         }n # tB          $ r}|j"        }d	}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.                             |r-|j        t,          j        k    r| /                    ||j0        ||           d}|r|tc          |dz             z  }j2        (                    |dz             }fd|j0        j3        D             }|ti          |||           |dk    r|dk    rdntc          |dz
            }j5        (                    |dz
            }|tm          d|z   ||j0        j7                   j8        (                    |dz
            }|tm          d|z   ||j0        j9                   j:        rtw          |d            d S d S )!N
_pluginr   r-   __main__wutf8encodingTcolumns
errorcodesFabstract	_no_emptyzunion-errorPep604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)rx   targetsc                ,    g | ]\  }}|j         v |S re   )test_modules)rf   moduletargetr"   s      rX   
<listcomp>z0TypeCheckSuite.run_case_once.<locals>.<listcomp>   s5       "FFX222 222rc    	recheckedstaleztmp/)strip_prefix)<joininputparse_modulerR   r   endswithsysmodulesopenwriter   r   use_builtins_fixturesshow_tracebackr1   show_column_numbershide_error_codesr4   allow_empty_bodiesforce_union_syntaxr*   writescacher.   devnull	cache_dirappendr   r/   r
   insertr   r   errorsr   messagesnormalize_outputr   ru   rr   r>   rm   config	getoptionr   r   rG   lineverify_cachemanagerr^   expected_fine_grained_targetsprocessed_targetsr   expected_rechecked_modulesr   rechecked_modulesexpected_stale_modulesstale_modulesoutput_filesr   )rL   r"   rv   rx   original_program_textmodule_datar1   _r   module_nameprogram_pathprogram_textfr   r   
plugin_dirresblockerrZ   eri   rr   r4   expectedactualsuffixexpected_recheckedexpected_stales    `                          rX   rK   zTypeCheckSuite.run_case_onceh   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&--((-2O2O)-G& 	/ 3 	/"&G"'G' /$&J!7B 	 	3K|NNL+?O7attUabb    W\\"2I>>
:&&&	+gw][[[C
AA 	 	 	
AGGGGGG	 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..!!+s{GEUVVV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	"#I J 
I#	IJ I##J 'J3r   list[tuple[str, str, str]]r   build.BuildManagerr   boolrU   c                   |sa|                      |          }|                    d |D                        |                     ||          }|r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                    i | ]	\  }}}||
S re   re   )rf   r   r/   texts       rX   rg   z/TypeCheckSuite.verify_cache.<locals>.<dictcomp>   s!    YYY2I+tTKYYYrc   zcache data missing for z on run z
.gitignorezCACHEDIR.TAGz+Signature: 8a477f597d28d172789f06886806bc55)find_module_filesupdatefind_missing_cache_filesAssertionErrorr.   r/   isfiler   r   r   r   read
startswith)	rL   r   r   r   rU   r   missing_pathscachedir_tagr   s	            rX   r   zTypeCheckSuite.verify_cache   s     	^ ,,W55GNNYY[YYYZZZ 99'7KKM ^$%\}%\%\VZ%\%\]]]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   *D??EEdict[str, str]c                H    d |j                                         D             S )Nc                $    i | ]\  }}||j         S re   )r/   )rf   idr   s      rX   rg   z4TypeCheckSuite.find_module_files.<locals>.<dictcomp>   s     JJJJBFKJJJrc   )r   items)rL   r   s     rX   r   z TypeCheckSuite.find_module_files   s$    JJ'/2G2G2I2IJJJJrc   r   set[str]c                    d}i }|                                 D ]8\  }}t          j        |||          }t          j        |||||          s|||<   9t	          |                                          S )NT)r   r   find_cache_metavalidate_metasetvalues)rL   r   r   ignore_errorsmissingr   r/   metas           rX   r   z'TypeCheckSuite.find_missing_cache_files  sz      	# 	#HB(T7;;D&tR}gNN #"7>>##$$$rc   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_. ]+)$Nre   )fscacher    zCan't find ad hoc case file: r~   r   r|   main)rB   rC   	MULTILINErE   r	   r   r   splitfind_module
isinstancer^   r   r   r   )rL   r   rx   rS   	alt_regexalt_mmodule_namesoutsearch_pathscacher   r/   r   s                rX   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   rZ   r[   r#   r$   )Nr   )r"   r   rv   rw   rx   rD   r#   r$   )
r   r   r   r   r   r   rU   rD   r#   r$   )r   r   r#   r   )r   r   r   r   r#   r   )r   )r   r^   rx   rD   r#   r   )__name__
__module____qualname__typecheck_filesrR   rY   ru   rK   r   r   r   r   re   rc   rX   r!   r!   5   s        E!) !) !) !)F
 
 
 
  26 !	~U ~U ~U ~U ~U@V V V V,K K K K	% 	% 	% 	% :;+8 +8 +8 +8 +8 +8 +8rc   r!   )+__doc__
__future__r   r.   rB   r   r2   pathlibr   mypyr   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:   ImportErrorr8   r   version_inforemover!   re   rc   rX   <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B8 B8 B8 B8 B8Y B8 B8 B8 B8 B8s   $A) )A32A3