Ë
    pPêjÌ;  ã                  ó¼  — 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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"m#Z# ddl$m%Z% 	 ejL                  dk\  r e' ejP                  d«      «      rdZ)nddl)Z)ddl+Z+ ed¬«      Z,ejL                  dk  re,j[                  d«       ejL                  dk  re,j[                  d«       ejL                  dk  re,j[                  d«       ejL                  dk  re,j[                  d«       ejL                  dk  re,j[                  d«        G d„ de«      Z.y# e*$ r dZ)Y ŒÂw xY w)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Úremove_typevar_ids)Úupdate_testcase_output)é   é   ÚPy_GIL_DISABLEDzcheck-*.test)Úpattern)r   é   zcheck-python311.test)r   é   zcheck-python312.test)r   é   zcheck-python313.testzcheck-python314.test)r   é   zcheck-python315.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d„Zy)ÚTypeCheckSuitec                ó¾  — t         j                  j                  |j                  «      dk(  r�t	        j
                  dd¬«      5 }t        |j                  «      }|j                  |j                  j                  «       «      j                  «       st        j                  d«       d d d «       t        €At         j                  j                  |j                  «      dk(  rt        j                  d«       d|j                  j                  «       v xs d|j                  v xs d	|j                  v }|�rt        d
gt!        |j"                  j%                  «       «      z   «      }t        j&                  t         j(                  «      D ]^  \  }}}|D ]S  }	t+        j,                  d|	«      }
|
sŒt/        |
j1                  d«      «      |kD  sŒ:t3        dj5                  |	|«      «      ‚ Œ` |j7                  «       }t9        d|dz   «      D ]5  }|d
z
  }|t;        |«      k  r
|dk\  r||   ng }| j=                  |||d«       Œ7 y | j=                  |«       y # 1 sw Y   �Œ®xY w)Nzcheck-modules-case.testÚtestú.)ÚprefixÚdirz#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   T)Ú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)ÚselfÚtestcaseÚ	temp_fileÚ	temp_pathr)   Ú	num_stepsÚdnÚdirsÚfilesr0   ÚmÚstepsÚstepÚidxÚopss                  úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/test/testcheck.pyÚrun_casezTypeCheckSuite.run_case>   s	  € Ü�7‰7×Ñ˜HŸM™MÓ*Ð.GÒGÜ×,Ñ,°FÀÔDð GÈ	Ü  §¡Ó0�	Ø ×*Ñ*¨9¯>©>×+?Ñ+?Ó+AÓB×IÑIÔKÜ—K‘KÐ EÔF÷Gô ˆ<œBŸG™G×,Ñ,¨X¯]©]Ó;Ð?SÒSÜ�K‰KÐ>Ô?à˜XŸ]™]×0Ñ0Ó2Ð2ò ,Ø §¡Ð-ò,à˜hŸm™mÐ+ð 	ò
 ô ˜Q˜C¤$ x×'7Ñ'7×'<Ñ'<Ó'>Ó"?Ñ?Ó@ˆIä#%§7¡7¬2¯9©9Ó#5ò ‘��D˜%Ø!ò �DÜŸ	™	 -°Ó6�AÚœS §¡¨£›_¨yÓ8Ü(ØU×\Ñ\Ø $ ióóð ñðð ×'Ñ'Ó)ˆEÜ˜a ¨Q¡Ó/ò >�Ø˜Q‘h�Ø$'¬#¨e«*Ò$4¸Àº�e˜C’jÀr�Ø×"Ñ" 8¨S°$¸Õ=ñ>ð
 ×Ñ˜xÕ(÷?Gñ Gús   ÁA"IÉIc                ó$  ‡‡— |j                   }|j                  r|t        |j                  «      k(  ry dd„Št	        ˆfd„|D «       «      D ��ci c]  \  }}||“Œ
 c}}Št        |j                  d  ˆˆfd„¬«      |j                  |d  y c c}}w )Nc                ó*   — | j                  d«      d   S )Nú:r   )Ú	partition)Ú_msgs    rX   Ú	_filenamez8TypeCheckSuite._sort_output_if_needed.<locals>._filenamef   s   € Ø—>‘> #Ó& qÑ)Ð)ó    c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­w©N© )Ú.0Úmsgr_   s     €rX   ú	<genexpr>z8TypeCheckSuite._sort_output_if_needed.<locals>.<genexpr>i   s   øè ø€ Ò<YÐPS¹YÀs¿^Ñ<Yùs   ƒc                ó4   •— ‰j                   ‰| «      d«      S )Néÿÿÿÿ)Úget)re   r_   Úfile_weightss    €€rX   ú<lambda>z7TypeCheckSuite._sort_output_if_needed.<locals>.<lambda>k   s   ø€ °<×3CÑ3CÁIÈcÃNÐTVÓ3W€ r`   )Úkey)r^   ÚstrÚreturnrm   )Úoutput_inline_startrR   rI   ÚoutputÚ	enumerateÚsorted)rK   rL   ÚarV   r0   r_   rj   s        @@rX   Ú_sort_output_if_neededz%TypeCheckSuite._sort_output_if_neededa   s   ù€ Ø×*Ñ*ˆØ�~Š~ ¬¨H¯O©OÓ(<Ò!<Øó	*ô 4=Ó<YÐWXÔ<YÓ3Y×Z¡i c¨4˜˜c™	ÓZˆÜ &Ø�O‰O˜C˜DÐ!Ô'Wô!
ˆ�‰˜˜Ñùó [s   ÁBNc                ó  — |€g }dj                  |j                  «      }| j                  ||«      }|j                  D ]F  \  }}t	        |«      }	|	j                  d«      sŒ#|	t        j                  v sŒ6t        j                  |	= ŒH |dk(  s|dk(  r;|D ]5  \  }
}}|
dk(  sŒt        |dd¬«      5 }|j                  |«       d d d «        n n|dkD  rt        |«       t        |||«      }d	|_        d	|_        |j                  j                  d
«       |_        |j                   r_d	|_        d	|_        |j&                  rt)        j*                  d«      ‚|j                  j                  d«      rEt)        j*                  d«      ‚|j                  j                  d«      rt)        j*                  d«      ‚|j                  j                  d«      rd|_        d|j,                  v rd	|_        d|j,                  v rd|_        d|j,                  vr!|j                  j                  d«       |_        |r|j4                  s|j                   dkD  rd	|_        n(d|_        |j6                  st8        j:                  |_        g }|D ]&  \  }
}}|j?                  tA        ||
|rd n|«      «       Œ( t8        jB                  j                  tD        d«      }d }|j                   dkD  r­t8        jF                  jI                  «       }t8        jB                  jK                  t8        jB                  jK                  t8        jB                  jK                  tL        «      «      «      }t8        jN                  j                  ||g«      |d<   ||d<   tP        |d<   t        jB                  jS                  d|«       d }d}	 tU        jT                  ||tP        |¬«      }|jV                  }t        jB                  d   |k(  sJ ‚t        jB                  d= |j\                  rt_        |«      }|dk  r0|dk(  rd}n	|dk(  sJ ‚d}| ja                  ||«       |jb                  }n$d|› �dz   }|jd                  jg                  |g «      }||k7  r*|jh                  jk                  d d«      rtm        |||¬!«       d}|j                   dkD  r|}to        |«      }to        |«      }tq        |||js                  |j,                  |jt                  «      |¬"«       |�rˆ|j<                  t8        j:                  k7  r| jw                  ||jx                  ||«       d#}|r|t{        |dz   «      z  }|j|                  jg                  |dz   «      }|jx                  j~                  D �	�cg c]  \  }	}|	|j€                  v r|‘Œ }}	}|j                   dk(  r|�tƒ        |||«       |dkD  r�|dk(  rd$nt{        |dz
  «      }|j„                  jg                  |dz
  «      }|�$t‡        d%|z   ||jx                  jˆ                  «       |jŠ                  jg                  |dz
  «      } | �$t‡        d&|z   | |jx                  jŒ                  «       |jx                  jŽ                  j‘                  «        |j&                  rt“        ||d'¬(«       y y # 1 sw Y   �ŒåxY w# tX        $ r}|jZ                  }d	}Y d }~�Œõd }~ww xY w# t        jB                  d   |k(  sJ ‚t        jB                  d= w xY wc c}}	w ))Nú
Ú_pluginr   r,   Ú__main__ÚwÚutf8©ÚencodingTÚ_no_verbose_revealz*Reports are not supported in parallel modeÚ_no_parallelz'Test not supported in parallel mode yetÚ_parallel_onlyzTest is only for parallel modeÚ_old_parserFÚcolumnsÚ
errorcodesÚabstractÚ	_no_emptyÚpluginsÚ
PYTHONPATHÚMYPY_TEST_PREFIXÚMYPY_ALT_LIB_PATH)ÚsourcesÚoptionsÚalt_lib_pathÚ
worker_envr+   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)Úincremental_step)Úignore_modules_orderÚtargetsÚ Ú	recheckedÚstaleztmp/)Ústrip_prefix)JÚjoinÚinputÚparse_modulerR   r   ÚendswithÚsysÚmodulesÚopenÚwriter   r   Úuse_builtins_fixturesÚshow_tracebackr3   Úreveal_verbose_typesÚnum_workersÚfixed_format_cacheÚnative_parserÚoutput_filesr7   r8   r0   Úshow_column_numbersÚhide_error_codesÚallow_empty_bodiesr)   Úwritescacher-   ÚdevnullÚ	cache_dirÚappendr   r.   r
   ÚenvironÚcopyÚdirnameÚ__file__Úpathsepr   Úinsertr   Úerrorsr   ÚmessagesÚnormalize_outputr   rt   rp   r=   ri   ÚconfigÚ	getoptionr   r   r   rF   ÚlineÚverify_cacheÚmanagerrm   Úexpected_fine_grained_targetsÚprocessed_targetsÚtest_modulesr   Úexpected_rechecked_modulesr   Úrechecked_modulesÚexpected_stale_modulesÚstale_modulesÚ	metastoreÚcloser   )!rK   rL   Ú
operationsr�   Úis_incrementalÚoriginal_program_textÚmodule_datar0   Ú_ÚmoduleÚmodule_nameÚprogram_pathÚprogram_textÚfrŠ   r‰   Ú
plugin_dirrŒ   Úroot_dirÚresÚblockerrs   Úere   rp   rŽ   r3   ÚexpectedÚtargetÚactualÚsuffixÚexpected_recheckedÚexpected_stales!                                    rX   rJ   zTypeCheckSuite.run_case_oncen   sy  € ð ÐØˆJØ $§	¡	¨(¯.©.Ó 9ÐØ×'Ñ'Ð(=Ð?OÓPˆð  —~‘~ò 	(‰GˆD�!Ü% dÓ+ˆFØ�‰˜yÕ)¨f¼¿¹Ò.CÜ—K‘K Ñ'ð	(ð ˜qÒ Ð$4¸Ò$9à;Fò Ñ7�˜\¨<Ø *Ó,Ü˜l¨C¸&ÔAð .ÀQØŸ™ Ô-÷.áñ	ð
  Ò!ä# JÔ/ô  Ð 5°xÐAQÓRˆØ(,ˆÔ%Ø!%ˆÔØ+3¯=©=×+AÑ+AÐBVÓ+WÐ'WˆÔ$à×ÒØ)-ˆGÔ&Ø$(ˆGÔ!Ø×$Ò$Ü—k‘kÐ"NÓOÐOà�}‰}×%Ñ% nÔ5Ü—k‘kÐ"KÓLÐLà�}‰}×%Ñ%Ð&6Ô7Ü—k‘kÐ"BÓCÐCà�=‰=×!Ñ! -Ô0à$)ˆGÔ!ð ˜Ÿ™Ñ%Ø*.ˆGÔ'Ø˜8Ÿ=™=Ñ(Ø',ˆGÔ$Ø˜XŸ]™]Ñ*Ø-5¯]©]×-CÑ-CÀKÓ-PÐ)PˆGÔ&á × 3Ò 3°w×7JÑ7JÈQÒ7Nà"&ˆGÕà"'ˆGÔà×'Ò'Ü$&§J¡J�Ô!àˆØ7Bò 	Ñ3ˆK˜ |à�N‰NÜ˜L¨+Ñ?O±tÐUaÓbõð	ô —W‘W—\‘\Ô"2°IÓ>ˆ
àˆ
Ø×Ñ Ò"ÜŸ™Ÿ™Ó*ˆJô —w‘w—‘¤r§w¡w§¡´r·w±w·±ÄxÓ7PÓ'QÓRˆHÜ')§z¡z§¡¸À*Ð7MÓ'NˆJ�|Ñ$Ø-5ˆJÐ)Ñ*Ü.;ˆJÐ*Ñ+ä�‰�‰˜˜:Ô&ØˆØˆð
	Ü—+‘+Ø¨¼}ÐYcôˆCð —
‘
ˆAô
 —8‘8˜A‘; *Ò,Ð,Ð,Ü—‘˜�à×$Ò$Ü(¨Ó+ˆAð ˜aÒØ 1Ò$ØZ‘à'¨1Ò,Ð,Ð,ØD�Ø×'Ñ'¨°!Ô4Ø—_‘_‰Fð FÐFVÐEWÐXØ"ñ#ð ð ×%Ñ%×)Ñ)Ð*:¸BÓ?ˆFà�QŠ;˜8Ÿ?™?×4Ñ4°_ÀeÔLÜ" 8¨QÐAQÕRà$ÐØ×Ñ Ò"Ø#1Ð ä" 1Ó%ˆAÜ'¨Ó/ˆFÜ"ØØØ�J‰J�x—}‘} h§m¡mÓ4Ø!5õ		
ò Ø× Ñ ¤B§J¡JÒ.Ø×!Ñ! +¨s¯{©{¸GÐEUÔVàˆDÙØœÐ,¨qÑ0Ó1Ñ1�Ø×=Ñ=×AÑAÐBRÐUVÑBVÓWˆHð '*§k¡k×&CÑ&C÷á"�F˜FØ˜X×2Ñ2Ñ2ò ðˆFñ ð ×"Ñ" aÒ'¨HÐ,@Ü)¨$°¸&ÔAØ !Ò#Ø/°1Ò4™¼#Ð>NÐQRÑ>RÓ:S�Ø%-×%HÑ%H×%LÑ%LÐM]Ð`aÑMaÓ%bÐ"Ø%Ð1Ü-Ø# fÑ,Ð.@À#Ç+Á+×B_ÑB_ôð "*×!@Ñ!@×!DÑ!DÐEUÐXYÑEYÓ!Z�Ø!Ð-Ü-Ø &Ñ(¨.¸#¿+¹+×:SÑ:Sôð �K‰K×!Ñ!×'Ñ'Ô)à× Ò Ü# HÐ.>ÈVÖTð !÷c.ñ .ûôR ò 	Ø—
‘
ˆAØŽGûð	ûô —8‘8˜A‘; *Ò,Ð,Ð,Ü—‘˜‘üóZs<   Â.Z#Î/)Z0 Ö\Ú#Z-	Ú0	[Ú9[Û[ Û[Û[ Û+\ c           
     ó¦  — |s^| j                  |«      }|j                  |D ���ci c]	  \  }}}||“Œ c}}}«       | j                  ||«      }	|	rt        d|	› d|› �«      ‚t        j
                  j                  t        j
                  j                  |j                  j                  d«      «      sJ ‚t        j
                  j                  |j                  j                  d«      }
t        j
                  j                  |
«      sJ ‚t        |
«      5 }|j                  «       j                  d«      sJ ‚	 d d d «       y c c}}}w # 1 sw Y   y xY w)Nz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)rK   rÄ   r·   rÎ   rU   r™   rÇ   r.   ÚtextÚmissing_pathsÚcachedir_tagrÊ   s               rX   r¶   zTypeCheckSuite.verify_cache  s  € ñ ð ×,Ñ,¨WÓ5ˆGØ�N‰NÈ[×YÐYÑ2I°+¸tÀT˜K¨Ñ-ÔYÔZØ ×9Ñ9¸'À7ÓKˆMÙÜ$Ð'>¸}¸oÈXÐVZÐU[Ð%\Ó]Ð]Ü�w‰w�~‰~œbŸg™gŸl™l¨7¯?©?×+DÑ+DÀlÓSÔTÐTÐTÜ—w‘w—|‘| G§O¡O×$=Ñ$=¸~ÓNˆÜ�w‰w�~‰~˜lÔ+Ð+Ð+Ü�,Óð 	V 1Ø—6‘6“8×&Ñ&Ð'TÔUÐUÑU÷	Vð 	Vùô Z÷	Vð 	Vús   ¥E Ä"EÅEc                ó~   — |j                   j                  «       D ��ci c]  \  }}||j                  “Œ c}}S c c}}w rb   )r™   Úitemsr.   )rK   r·   ÚidrÆ   s       rX   r×   z TypeCheckSuite.find_module_files-  s/   € Ø29·/±/×2GÑ2GÓ2I×J¡J B¨��F—K‘K‘ÓJÐJùÓJs   ž9c                óî   — d}i }|j                  «       D ]F  \  }}t        j                  |||«      }|€|||<   Œ%t        j                  |d   ||||«      rŒB|||<   ŒH t	        |j                  «       «      S )NTr   )râ   r   Úfind_cache_metaÚvalidate_metaÚsetÚvalues)rK   r™   r·   Úignore_errorsÚmissingrã   r.   Ú	meta_pairs           rX   rÙ   z'TypeCheckSuite.find_missing_cache_files0  s‚   € ð ˆØˆØŸ™›ò 	#‰HˆB�Ü×-Ñ-¨b°$¸Ó@ˆIØÐ Ø"�˜’Ü×(Ñ(¨°1©°r¸4ÀÐPWÕXØ"�˜’ð	#ô �7—>‘>Ó#Ó$Ð$r`   c                óB  — t        j                  d|t         j                  ¬«      }|dkD  r0d|› d�}t        j                  ||t         j                  ¬«      }|�|}|r±|j                  d«      }g }t	        t
        fddd«      }t        |dd¬«      }	|j                  d	«      D ]g  }
|	j                  |
«      }t        |t        «      s
J d
|
› �«       ‚t        |d¬«      5 }|j                  «       }ddd«       |j                  |
||f«       Œi |S dd|fgS # 1 sw Y   Œ'xY w)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_. ]+)$Nrc   )ÚfscacherŠ   ú zCan't find ad hoc case file: rz   r{   rx   Úmain)rA   rB   Ú	MULTILINErD   r	   r   r   ÚsplitÚfind_moduleÚ
isinstancerm   rš   rÜ   r©   )rK   rÉ   r�   rS   Ú	alt_regexÚalt_mÚmodule_namesÚoutÚsearch_pathsÚcacherÇ   r.   rÊ   s                rX   r–   zTypeCheckSuite.parse_module=  s,  € ô" �I‰IÐ9¸<ÌrÏ|É|Ô\ˆØ˜aÒØÐ 0Ð1Ð1MÐNˆIÜ—I‘I˜i¨¼R¿\¹\ÔJˆEØÐ ð �áð Ÿ7™7 1›:ˆLØˆCÜ&¬Ð'7¸¸RÀÓDˆLÜ# L¸$ÈÔMˆEØ+×1Ñ1°#Ó6ò >�Ø×(Ñ(¨Ó5�Ü! $¬Ô,Ð[Ð0MÈkÈ]Ð.[Ó[Ð,Ü˜$¨Ô0ð ,°AØ#$§6¡6£8�L÷,à—
‘
˜K¨¨|Ð<Õ=ð>ð ˆJà ¨Ð6Ð7Ð7÷,ð ,ús   ÃDÄD	)rL   r   rn   ÚNone)rL   r   rs   z	list[str]rn   rû   )Nr   F)
rL   r   rÁ   zlist[FileOperation] | Noner�   rC   rÂ   Úboolrn   rû   )
rÄ   úlist[tuple[str, str, str]]r·   úbuild.BuildManagerrÎ   rü   rU   rC   rn   rû   )r·   rþ   rn   údict[str, str])r™   rÿ   r·   rþ   rn   zset[str])r   )rÉ   rm   r�   rC   rn   rý   )Ú__name__Ú
__module__Ú__qualname__Útypecheck_filesrR   rY   rt   rJ   r¶   r×   rÙ   r–   rc   r`   rX   r#   r#   ;   sß   „ Ø€Eó!)óF
ð  26Ø !Ø$ðgUà$ðgUð /ðgUð ð	gUð
 ðgUð 
ógUðRVà/ðVð $ðVð ð	Vð
 ðVð 
óVó,Kð%Ø%ð%Ø0Bð%à	ó%ð :;ð+8Øð+8Ø36ð+8à	#ô+8r`   r#   )/Ú__doc__Ú
__future__r   r-   rA   r˜   Ú	sysconfigr1   Ú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   r   Úmypy.test.update_datar   Úversion_inforü   Úget_config_varr9   ÚImportErrorr7   r  Úremover#   rc   r`   rX   ú<module>r     s?  ðÙ å "ã 	Û 	Û 
Û Û Ý å Ý $ß GÑ Gß <ß YÓ Y÷
÷ 
õ 
õ 9ðØ
×Ñ˜7Ò"¡tÐ,D¨I×,DÑ,DÐEVÓ,WÔ'Xà‰ãó
 ñ "¨.Ô9€ð ×Ñ�gÒØ×ÑÐ1Ô2Ø×Ñ�gÒØ×ÑÐ1Ô2Ø×Ñ�gÒØ×ÑÐ1Ô2Ø×Ñ�gÒØ×ÑÐ1Ô2Ø×Ñ�gÒØ×ÑÐ1Ô2ôm8�Yõ m8øð/ ò Ø‚Dðús   Á*.E ÅEÅE