Ë
    pPêjÁz  ã                  ó  — U 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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 dd	lmZmZmZmZmZ ddlZdd
lmZ ddlmZmZm Z m!Z! ejD                  jG                  e«      Z$ddgZ%de&d<    G d„ de«      Z' G d„ de«      Z(e'e(z  Z)de&d<   d8d„Z*d9d„Z+ G d„ dejX                  «      Z-d:d„Z.e G d„ d«      «       Z/d;d„Z0d<d„Z1d<d„Z2d=d „Z3d>d!„Z4d?d"„Z5d?d#„Z6d@d$„Z7dAd%„Z8 ejr                  d&¬'«      dBd(„«       Z:dCd)„Z; ejx                  d*«      Z=	 	 	 	 	 	 	 	 dDd-„Z> G d.„ d/ej~                  «      Z@ G d0„ d1e«      ZA G d2„ d+ej„                  «      ZCdEd3„ZDdFd4„ZEdFd5„ZFd:d6„ZG G d7„ d,«      ZHy)GzGUtilities for processing .test files containing test case descriptions.é    )ÚannotationsN)Úabstractmethod)ÚIterator)Ú	dataclass)ÚPath)ÚPattern)ÚAnyÚFinalÚ
NamedTupleÚNoReturnÚ	TypeAlias)Údefaults)ÚPREFIXÚmypyc_output_dirÚtest_data_prefixÚtest_temp_dirÚgdbÚlldbr
   ÚSUPPORTED_DEBUGGERSc                  ó,   — e Zd ZU ded<   ded<   ded<   y)Ú
UpdateFileÚstrÚmoduleÚcontentÚtarget_pathN©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úS/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/test/data.pyr   r   !   s   … ØƒKØƒLØÔr"   r   c                  ó"   — e Zd ZU ded<   ded<   y)Ú
DeleteFiler   r   ÚpathNr   r!   r"   r#   r%   r%   (   s   … ØƒKØ
„Ir"   r%   Ú
_TypeAliasÚFileOperationc                óº   — t         j                  j                  | «      \  } }| j                  d«      }|d   dk(  r|j	                  «        dj                  |«      S )Nú/éÿÿÿÿÚ__init__ú.)Úosr&   ÚsplitextÚsplitÚpopÚjoin)ÚfilenameÚ_Úpartss      r#   Ú_file_arg_to_moduler6   0   sK   € Ü—'‘'×"Ñ" 8Ó,�K€HˆaØ�N‰N˜3Ó€EØˆR�y�JÒØ�	‰	ŒØ�8‰8�E‹?Ðr"   ÚDataDrivenTestCasec                ó*  ‡ ‡-— t        ‰ j                  ‰ j                  «      }‰ j                  j                  }‰ j                  j
                  rt        j                  j                  }nt        j                  }‰ j                  j                  }g }g }g }i }i }	i }
i }g }i }g }dAˆ fd„}|d   xŠ-}|j                  d«       |dd D �]z  Š-dAˆ ˆ-fd„}‰-j                  dv �r‰-j                  €J ‚t        dj                  ‰-j                  «      «      } ||‰-j                  «      }‰-j                  d	k7  r$|j                  t        ‰-j                  «      «       ‰-j                  d
v r|j                  ||f«       Œ´‰-j                  dk(  rE|j                  |t!        j"                  |j%                  «       t         j&                  «      f«       �Œ‰-j                  dk(  s�Œ|j                  ||f«       �Œ.‰-j                  dk(  rˆ‰-j                  €J ‚ |t        j                  j)                  ‰ j*                  «      ‰-j                  «      }t-        |d¬«      5 }|j                   ||d«      |j/                  «       f«       ddd«       �ŒÅ‰-j                  dk(  rˆ‰-j                  €J ‚ |t        j                  j)                  ‰ j*                  «      ‰-j                  «      }t-        |d¬«      5 }|j                   ||d«      |j/                  «       f«       ddd«       �Œ\‰-j                  dk(  rˆ‰-j                  €J ‚ |t        j                  j)                  ‰ j*                  «      ‰-j                  «      }t-        |d¬«      5 }|j                   ||d«      |j/                  «       f«       ddd«       �Œót!        j0                  d‰-j                  «      r�‰-j                  dk(  rdn t3        ‰-j                  t5        d«      d «      }|dkD  sJ ‚‰-j                  €
t7        «       n6‰-j                  j9                  d«      D �ch c]  }|j;                  «       ’Œ c}}||
|<   �Œ t!        j0                  d‰-j                  «      r�‰-j                  dk(  rdn t3        ‰-j                  t5        d«      d «      }|dkD  sJ ‚‰-j                  €
t7        «       n6‰-j                  j9                  d«      D �ch c]  }|j;                  «       ’Œ c}}|||<   �ŒMt!        j0                  d‰-j                  «      r…‰-j                  dk(  rdn t3        ‰-j                  t5        d«      d «      }|dkD  sJ ‚‰-j                  €g n6‰-j                  j9                  d«      D �cg c]  }|j;                  «       ‘Œ c}}|||<   �Œò‰-j                  dk(  r²‰-j                  €J ‚t!        j0                  d‰-j                  «      }|€ |d‰-j                  ›�«       t3        |j=                  d«      «      }|dk  r |d |› �«        |||j=                  d«      «      }|	j?                  |t7        «       «      jA                  |«       �Œ³t!        j0                  d!‰-j                  «      �r<‰-j                  €g }n‰-j                  j9                  d«      }d"}|D �]Q  } | jC                  d#«      sŒ| d$d% }!|!d&vr |d'«       | d%d }"	 tE        d(„ |"j9                  d)«      D «       «      }#|!d+k(  rB#tH        jJ                  k  r || › d,tH        jJ                  › �«       tL        jN                  |#k\  }Œ•|!d-k(  rp#tH        jJ                  k  r || › d.tH        jJ                  › �«       dt5        |#«      cxk  rd/k  sn  |d0|"›�«       tL        jN                  dt5        |#«       |#k(  }�Œ
|!d1k(  s�Œ#tH        jJ                  k  r || › d.tH        jJ                  › �«       tL        jN                  |#k  }�ŒT |s�Œ[‰-j                  D �$cg c]  }$t        |$«      ‘Œ }%}$t        j                  jP                  d2k(  r$‰ jR                  r|%D �$cg c]  }$tU        |$«      ‘Œ }%}$‰-j                  d3k(  s‰-j                  d4k(  r|%}n-t3        ‰-j                  t5        d3«      d «      }|dkD  sJ ‚|%||<   d5}�Œ‰-j                  d6k(  r‰-j                  €‰-j                  }�Œ9‰-j                  ‰-j                  rd7‰-j                  › �nd8z   }& |d9|&› d:‰ j                  ›�«       �Œ} |r |d;‰ j                  ›�«       |
jW                  «       D ]<  }||vr|
|   ||<   ||
v sŒ||v sŒ|
|   jY                  ||   «      rŒ1 |d<|› d=�«       Œ> t5        |«      }'|j                  }(t[        |(|d>«       |D ]!  \  })}t[        |j9                  d«      ||)«       Œ# t7        «       }*|D ]&  \  }+},|+|*v r |d?|+› d@�«       |*jA                  |+«       Œ( |(‰ _.        |‰ _/        |'‰ _0        |‰ _1        ‰ jd                  ‰-jd                  z   t5        ‰-j                  «      z   dz
  ‰ _3        |‰ _4        |‰ _5        |
‰ _6        |‰ _7        |	‰ _8        |xs g ‰ _9        |‰ _:        |‰ _;        y# 1 sw Y   �	ŒýxY w# 1 sw Y   �
Œ
xY w# 1 sw Y   �
ŒxY wc c}w c c}w c c}w # tF        $ r  ||"›d*�«       Y �Œðw xY wc c}$w c c}$w )Bz›Parse and prepare a single case from suite with test case descriptions.

    This method is part of the setup phase, just before the test case is run.
    c                ól   •— t        j                  ‰j                  › d‰j                  › d| › �d¬«       y )Nú:ú: F©Úpytrace)ÚpytestÚfailÚfileÚline)ÚmsgÚcases    €r#   Ú
_case_failz#parse_test_case.<locals>._case_failQ   s*   ø€ Ü�‰�t—y‘y�k  4§9¡9 +¨R°¨uÐ5¸uÖEr"   r   Ú__main__é   Nc                ó�   •— ‰j                   ‰j                   z   dz
  }t        j                  ‰j                  › d|› d| › �d¬«       y )Né   r:   r;   Fr<   )rA   r>   r?   r@   )rB   Úitem_abs_linerC   Úitems     €€r#   Ú
_item_failz#parse_test_case.<locals>._item_failZ   s=   ø€ Ø ŸI™I¨¯	©	Ñ1°AÑ5ˆMÜ�K‰K˜4Ÿ9™9˜+ Q } o°R¸°uÐ=ÀuÖMr"   >   r@   ÚfixtureÚoutfileú
outfile-reú
rL   >   r@   rL   rN   rM   ÚbuiltinsÚutf8©Úencodingúbuiltins.pyiÚtypingú
typing.pyiÚ	_typeshedú_typeshed.pyizstale[0-9]*$Ústaleú,zrechecked[0-9]*$Ú	recheckedztargets[0-9]*$ÚtargetsÚdeletez(.*)\.([0-9]+)$zInvalid delete section rH   zCan't delete during step z
out[0-9]*$TÚversioné   é	   >   ú< ú==ú>=z@Only `>=', `==', and `< ' version checks are currently supportedc              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úint)Ú.0Úxs     r#   ú	<genexpr>z"parse_test_case.<locals>.<genexpr>§   s   è ø€ Ò'O°1¬¨A¯Ñ'Oùs   ‚r-   z is not a valid python versionrc   z. always true since minimum runtime version is rb   z/ always false since minimum runtime version is é   zFOnly minor or patch version checks are currently supported with "==": ra   ú\ÚoutÚout1FÚ	triggeredú Ú zInvalid section header [z
] in case z*Required output section not found in case zStale modules after pass z& must be a subset of rechecked modulesÚmainzDuplicated filename z$. Did you include it multiple times?)rB   r   Úreturnr   )<Úparse_test_dataÚdataÚnameÚsuiteÚ	base_pathÚ
native_sepr.   r&   r2   Ú	posixpathÚrequired_out_sectionÚappendÚidÚargÚexpand_variablesr6   ÚreÚcompileÚrstripÚSÚdirnamer@   ÚopenÚreadÚmatchrf   ÚlenÚsetr0   ÚstripÚgroupÚ
setdefaultÚaddÚ
startswithÚtupleÚ
ValueErrorr   ÚPYTHON3_VERSIONÚsysÚversion_infoÚsepÚnormalize_outputÚfix_win_pathÚkeysÚissubsetÚexpand_errorsÚinputÚoutputÚoutput_inline_startÚoutput2rA   Ú	last_lineÚfilesÚoutput_filesÚexpected_stale_modulesÚexpected_rechecked_modulesÚdeleted_pathsrn   Úexpected_fine_grained_targetsÚtest_modules).rC   Ú
test_itemsrw   r2   Úout_section_missingrž   rŸ   rš   rœ   r¢   Ústale_modulesÚrechecked_modulesrn   r\   r¤   rD   Ú
first_itemrK   Úcontentsr&   ÚmpathÚfÚsrc_pathÚpassnumÚtÚmodulesÚreprocessedÚmÚnumÚfullÚargsÚversion_checkr}   Ú
compare_opÚversion_strr^   rA   Ú
tmp_outputÚsection_strr›   r™   Ú	file_pathÚ
seen_filesr@   r4   rJ   s.   `                                            @r#   Úparse_test_caser½   8   sé	  ù€ ô
 ! §¡¨D¯I©IÓ6€JØ—
‘
×$Ñ$€IØ‡z�z×ÒÜ�w‰w�|‰|‰ä�~‰~ˆàŸ*™*×9Ñ9Ðà#%€EØ9;€LØ€FØ$&€GØ)+€MØ)+€MØ-/ÐØ€IØ$&€GØ €LõFð
 # 1™Ð%€Dˆ:Ø×Ñ˜
Ô#Ø˜1˜2�ó wXˆö	Nð �7‰7ÐBÒBà—8‘8Ð'Ð'Ð'Ü'¨¯	©	°$·)±)Ó(<Ó=ˆHÙ˜	 4§8¡8Ó,ˆDØ�w‰w˜)Ò#Ø×#Ñ#Ô$7¸¿¹Ó$AÔBØ�w‰wÐ-Ñ-Ø—‘˜d HÐ-Õ.Ø—‘˜LÒ(Ø×#Ñ# T¬2¯:©:°h·o±oÓ6GÌÏÉÓ+NÐ$OÖPØ—‘˜IÔ%Ø×#Ñ# T¨8Ð$4Ö5Ø�W‰W˜
Ò"à—8‘8Ð'Ð'Ð'ÙœŸ™Ÿ™¨¯©Ó3°T·X±XÓ>ˆEÜ�e fÔ-ð J°Ø—‘™d 9¨nÓ=¸q¿v¹v»xÐHÔI÷Jñ Jà�W‰W˜Ò à—8‘8Ð'Ð'Ð'ÙœBŸG™GŸO™O¨D¯I©IÓ6¸¿¹ÓAˆHÜ�h¨Ô0ð H°AØ—‘™d 9¨lÓ;¸Q¿V¹V»XÐFÔG÷Hñ Hà�W‰W˜Ò#à—8‘8Ð'Ð'Ð'ÙœBŸG™GŸO™O¨D¯I©IÓ6¸¿¹ÓAˆHÜ�h¨Ô0ð K°AØ—‘™d 9¨oÓ>ÀÇÁÃÐIÔJ÷Kñ Kä�X‰X�o t§w¡wÔ/ØŸ7™7 gÒ-‘a´3°t·w±w¼sÀ7»|¸~Ð7NÓ3OˆGØ˜Q’;Ð�;Ø#Ÿx™xÐ/”c”eÈÏÉÏÉÐX[ÓI\Ö5]ÀA°a·g±gµiÒ5]ˆGØ%,ˆM˜'Ó"Ü�X‰XÐ)¨4¯7©7Ô3ØŸ7™7 kÒ1‘a´s¸4¿7¹7Ä3À{ÓCSÐCUÐ;VÓ7WˆGØ˜Q’;Ð�;Ø#Ÿx™xÐ/”c”eÈÏÉÏÉÐX[ÓI\Ö5]ÀA°a·g±gµiÒ5]ˆGØ)0Ð˜gÓ&Ü�X‰XÐ'¨¯©Ô1ØŸ7™7 iÒ/‘a´S¸¿¹ÄÀYÃÐAQÐ9RÓ5SˆGØ˜Q’;Ð�;Ø $§¡Ð 0™"È$Ï(É(Ï.É.ÐY\ÓJ]Ö6^ÀQ°q·w±wµyÒ6^ˆKØ*ˆG�GÓØ�W‰W˜Ò à—8‘8Ð'Ð'Ð'Ü—‘Ð+¨T¯X©XÓ6ˆAØˆyÙÐ4°T·X±X°LÐAÔBÜ�a—g‘g˜a“j“/ˆCØ�QŠwÙÐ6°s°eÐ<Ô=Ù˜	 1§7¡7¨1£:Ó.ˆDØ×$Ñ$ S¬#«%Ó0×4Ñ4°TÖ:Ü�X‰X�m T§W¡WÕ-Ø�x‰xÐØ‘à—x‘x—~‘~ cÓ*�à ˆMØó !C�Ø—>‘> )Õ,Ø!$ Q q �JØ!Ð);Ñ;Ù"Ø^ôð #& a b '�KðUÜ"'Ñ'O¸×8IÑ8IÈ#Ó8NÔ'OÓ"O˜ð " TÒ)Ø"¤h×&>Ñ&>Ò>Ù&Ø#& %Ð'UÔV^×VnÑVnÐUoÐ pôô ),×(8Ñ(8¸GÑ(C™Ø# tÒ+Ø"¤X×%=Ñ%=Ò=Ù&Ø#& %Ð'VÔW_×WoÑWoÐVpÐ qôð  !¤3 w£<Ô3°!Ô3Ù&Ø"hÐitÐhwÐ xôô ),×(8Ñ(8¸¼3¸w»<Ð(HÈGÑ(SšØ# tÔ+Ø"¤X×%=Ñ%=Ò=Ù&Ø#& %Ð'VÔW_×WoÑWoÐVpÐ qôô ),×(8Ñ(8¸7Ñ(BšðC!CóD ØAEÇÁÖK¸Ô.¨tÕ4ÐK�
ÐKÜ—7‘7—;‘; $Ò&¨4×+@Ò+@ØAKÖ!L¸¤,¨tÕ"4Ð!L�JÐ!LØ—7‘7˜eÒ# t§w¡w°&Ò'8Ø'‘Fä! $§'¡'¬#¨e«*¨,Ð"7Ó8�GØ" Qš;Ð&˜;Ø'1�G˜GÑ$Ø&+Ò#Ø�W‰W˜Ò#¨¯©Ð(8ØŸ	™	ŠIàŸ'™'°t·x²x q¨¯©¨
¡^ÀRÑHˆKÙÐ1°+°¸jÈÏÉÈÐVÖWðowXñr ÙÐ?ÀÇ	Á	¸}ÐMÔNà ×%Ñ%Ó'ò 
dˆØÐ+Ñ+ð *7°wÑ)?Ð˜gÑ&à�}Ò$ØÐ,Ò,Ø! 'Ñ*×3Ñ3Ð4EÀgÑ4NÕOáÐ2°7°)Ð;aÐbÕcð
dô ˜f›+ÐØ�O‰O€EÜ�%˜ Ô(Ø$ò ?Ñˆ	�8Ü�h—n‘n TÓ*¨F°IÕ>ð?ô “€JØò ‰ˆˆaØ�:ÑÙÐ-¨d¨VÐ3WÐXÔYà�‰�tÕð	ð €D„JØ€D„KØ2€DÔØ€D„LØ—Y‘Y §¡Ñ*¬S°·±«^Ñ;¸aÑ?€D„NØ€D„JØ$€DÔØ"/€DÔØ&7€DÔ#Ø&€DÔØ’_ "€D„NØ)0€DÔ&Ø$€DÕ÷UJñ Jú÷Hñ Hú÷Kñ Küò
 6^ùò
 6^ùò
 7_øô< &ò UÙ" k _Ð4RÐ#S×TðUüò2 Lùâ!LsT   É)j:Ë0)kÎ)kÑk!Ó3k&Ök+Û6!k0à0lá1lê:k	ëk	ëk	ë0lìlc                  ó6  ‡ — e Zd ZU dZded<   ded<   ded<   ded<   d	ed
<   dZdZded<   ded<   ded<   ded<   d	ed<   ded<   ded<   ded<   ded<   ded<   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d"ˆ fd„Zd#d„Zd#d„Z	d#d„Z
d$d„Z	 d%	 	 	 	 	 d&d „Zd'd!„Zˆ xZS )(r7   zNHolds parsed data-driven test cases, and handles directory setup and teardown.ÚDataFileCollectorÚparentú	list[str]r™   rš   rf   r›   zdict[int, list[str]]rœ   rp   r   zlist[tuple[str, str]]rž   r¤   zdict[int, set[str]]r    r¡   r£   Úboolr”   r�   z$list[tuple[str, str | Pattern[str]]]rŸ   r¢   rn   c       
        óH  •— t        |t        «      sJ ‚t        ‰| �  ||«       || _        || _        || _        || _        || _        |dk(  rt        j                  dk7  s|dk(  rt        j                  dk(  rd}	|	| _        |
| _        || _        || _        d | _        d | _        y )NÚwindowsÚwin32ÚposixT)Ú
isinstancer¿   Úsuperr,   rv   r@   ÚwritescacheÚ	only_whenr”   r‘   ÚplatformÚskipÚxfailrt   rA   Úold_cwdÚtmpdir)ÚselfrÀ   rv   r@   ru   rÉ   rÊ   r”   rË   rÌ   rÍ   rt   rA   Ú	__class__s                €r#   r,   zDataDrivenTestCase.__init__  sŸ   ø€ ô  ˜&Ô"3Ô4Ð4Ð4Ü‰Ñ˜˜vÔ&ØˆŒ
ØˆŒ	Ø&ˆÔØ"ˆŒØ 0ˆÔØ˜	Ò!¤c§l¡l°gÒ&=Ø˜Ò¤C§L¡L°GÒ$;àˆDØˆŒ	ØˆŒ
ØˆŒ	ØˆŒ	Ø#'ˆŒØ"&ˆ�r"   c                óª  — | j                   rt        j                   «        n5| j                  r)| j                  t        j                  j                  «       | j
                  D �cg c]  }|j                  «       sŒ|‘Œ c}sdd| j                  vrV| j                  D �cg c](  }t        j                  j                  |d   «      dvr|‘Œ* c}st        | j                  › d�«      ‚| j                  t        «      }|€J d«       ‚|j                  «       }|j!                  «        	 |j#                  | «       y c c}w c c}w # t$        $ �r | j&                  j)                  dd «      }|rç| j*                  €J ‚t        j                  j-                  |t        j                  j                  | j*                  «      «      }t/        d| j                  › d|› �«       t        j                  j1                  |«      s8| j2                  sJ ‚t        j                  j-                  | j2                  |«      }t5        j6                  | j*                  |«       ‚ w xY w)	NÚEmptyr   )rV   rX   rT   z
 is empty.zShould not happenú--save-failures-tozCopying data from test z to )rÌ   r>   rÍ   Ú
add_markerÚmarkr™   r‰   ru   rž   r.   r&   ÚbasenameÚAssertionErrorÚ	getparentÚDataSuiteCollectorÚobjÚsetupÚrun_caseÚ	ExceptionÚconfigÚ	getoptionrÏ   r2   ÚprintÚisabsrÎ   ÚshutilÚcopytree)rÐ   rA   r@   rÀ   rv   Úsave_dirÚ
target_dirs          r#   ÚruntestzDataDrivenTestCase.runtest?  s¼  € Ø�9Š9Ü�K‰K�Mà�ZŠZØ�O‰OœFŸK™K×-Ñ-Ô.ð #'§*¡*Ö=˜$°·
±
µ’Ó=Ø˜tŸy™yÑ(ð !ŸJ™Jöàä—7‘7×#Ñ# D¨¡GÓ,Ð4cÑcò óô ! D§I¡I ;¨jÐ!9Ó:Ð:à—‘Ô 2Ó3ˆØÐ!Ð6Ð#6Ó6Ð!Ø—
‘
“ˆØ�‰Œð	Ø�N‰N˜4Õ ùò! >ùòøô ó 	à#'§;¡;×#8Ñ#8Ð9MÈtÓ#TˆHÙØ—{‘{Ð.Ð.Ð.ÜŸW™WŸ\™\¨(´B·G±G×4DÑ4DÀTÇ[Á[Ó4QÓR�
ÜÐ/°·	±	¨{¸$¸z¸lÐKÔLÜ—w‘w—}‘} ZÔ0ØŸ<š<Ð'˜<Ü!#§¡§¡¨d¯l©l¸JÓ!G�JÜ—‘ §¡¨ZÔ8Øð	ús   Á%D7Á;D7Â-D<Ä%E ÅDIc                ót  — t        | ¬«       t        j                  «       | _        t	        j
                  d¬«      | _        t        j                  | j                  «       t        j                  t        «       i }| j                  D ]ö  \  }}t        j                  d|«      }|rrt        |j                  d«      «      }|dk\  sJ ‚t        j                  dd|«      }t!        |«      }t#        |||«      }|j%                  |g «      j'                  |«       Œ�t        j(                  j+                  |«      }	t        j,                  |	d	¬
«       t/        |dt1        |«      ¬«      5 }
|
j3                  |«       d d d «       Œø | j4                  j7                  «       D ]I  \  }}|dk\  sJ ‚|D ]8  }t!        |«      }|j%                  |g «      j'                  t9        ||«      «       Œ: ŒK |rt;        |«      nd}t=        d|dz   «      D �cg c]  }|j?                  |g «      ‘Œ c}| _         y # 1 sw Y   �Œ«xY wc c}w )N)rC   z
mypy-test-)Úprefixz.*\.([0-9]+)$rF   rH   z	\.[0-9]+$rp   T)Úexist_okÚwrR   )!r½   r.   ÚgetcwdrÎ   ÚtempfileÚmkdtemprÏ   ÚchdirÚmkdirr   rž   r   r†   rf   rŠ   ÚsubÚmodule_from_pathr   r‹   r{   r&   rƒ   Úmakedirsr„   Úchoose_file_encodingÚwriter¢   Úitemsr%   ÚmaxÚrangeÚgetÚsteps)rÐ   rú   r&   r   r²   r³   r   r   Ú	operationÚdirr¬   ÚpathsÚmax_steps                r#   rÜ   zDataDrivenTestCase.setupe  sà  € Ü˜TÕ"Ü—y‘y“{ˆŒÜ×&Ñ&¨lÔ;ˆŒÜ
�‰�—‘ÔÜ
�‰”Ôð 13ˆà!ŸZ™Zò 	%‰MˆD�'Ü—‘Ð)¨4Ó0ˆAÙô ˜!Ÿ'™' !›*“o�Ø˜a’x��xÜ Ÿf™f \°2°tÓ<�Ü)¨+Ó6�Ü& v¨w¸ÓD�	Ø× Ñ   bÓ)×0Ñ0°Õ;ô —g‘g—o‘o dÓ+�Ü—‘˜C¨$Õ/Ü˜$ Ô.BÀ4Ó.HÔIð %ÈQØ—G‘G˜GÔ$÷%ð %ð	%ð$ ×,Ñ,×2Ñ2Ó4ò 	K‰JˆC�Ø˜!’8ˆO�8Øò K�Ü)¨$Ó/�Ø× Ñ   bÓ)×0Ñ0´¸FÀDÓ1IÕJñKð	Kñ
 "'”3�u”:¨AˆÜ49¸!¸XÈ¹\Ó4JÖK¨S�e—i‘i  RÕ(ÒKˆ�
÷%ñ %üò Ls   Å$H(ÈH5È(H2	c                óÐ   — | j                   �t        j                  | j                   «       | j                  �!t	        j
                  | j                  d¬«       d | _         d | _        y )NT)Úignore_errors)rÎ   r.   rï   rÏ   rã   Úrmtree©rÐ   s    r#   ÚteardownzDataDrivenTestCase.teardown‰  sF   € Ø�<‰<Ð#Ü�H‰H�T—\‘\Ô"Ø�;‰;Ð"Ü�M‰M˜$Ÿ+™+°TÕ:ØˆŒØˆ�r"   c                óH   — | j                   | j                  | j                  fS re   )r@   rA   ru   r  s    r#   Ú
reportinfozDataDrivenTestCase.reportinfo‘  s   € Ø�y‰y˜$Ÿ)™) T§Y¡YÐ.Ð.r"   c                ó¤  — t        |j                  t        «      r|j                  «       }n‡t        |j                  t        j
                  j                  «      r'|j                  j                  s|j                  «       }n2| j                  j                  |«      |_
        |j                  d¬«      }d| j                  › d| j                  › d|› �S )NÚshort)Ústylezdata: r:   z:
)rÇ   ÚvalueÚ
SystemExitÚexconlyr>   r?   rÞ   r=   rÀ   Ú_traceback_filterÚ	tracebackÚgetreprr@   rA   )rÐ   Úexcinfor  Úexcreprs       r#   Úrepr_failurezDataDrivenTestCase.repr_failure”  s˜   € ô �g—m‘m¤ZÔ0ð
 —o‘oÓ'‰GÜ˜Ÿ™¤v§{¡{×'<Ñ'<Ô=ÀgÇmÁm×F[ÒF[Ø—o‘oÓ'‰Gà $§¡× =Ñ =¸gÓ FˆGÔØ—o‘o¨G�oÓ4ˆGà˜Ÿ	™	�{ ! D§I¡I ;¨c°'°Ð;Ð;r"   c                ó   — | j                   S )ax  Return a list of descriptions of file operations for each incremental step.

        The first list item corresponds to the first incremental step, the second for the
        second step, etc. Each operation can either be a file modification/creation (UpdateFile)
        or deletion (DeleteFile).

        Defaults to having two steps if there aren't any operations.
        )rú   r  s    r#   Ú
find_stepszDataDrivenTestCase.find_steps¦  s   € ð �z‰zÐr"   )rÀ   r¿   rv   Ú	DataSuiter@   r   ru   r   rÉ   rÂ   rÊ   r   r”   rÂ   rË   ú
str | NonerÌ   rÂ   rÍ   rÂ   rt   r   rA   rf   rr   ÚNone©rr   r  )rr   ztuple[str, int, str]re   )r  z#pytest.ExceptionInfo[BaseException]r  ú
Any | Nonerr   r   )rr   zlist[list[FileOperation]])r   r   r   Ú__doc__r    r@   rA   r,   rç   rÜ   r  r  r  r  Ú__classcell__©rÑ   s   @r#   r7   r7   ü   s9  ø… ÙXð ÓàÓØÓØÓØ!Ó!ð €DØ€Dð !Ó àÓØ/Ó/Ø 3Ó3Ø#7Ó7ð Óð ƒNØ6Ó6Ø&Ó&ØÓð 'à!ð 'ð ð 'ð
 ð 'ð ð 'ð ð 'ð ð 'ð ð 'ð ð 'ð ð 'ð ð 'ð ð 'ð ð 'ð 
õ 'óD$óL"LóHó/ð QUð<Ø:ð<ØCMð<à	ó<÷$	r"   c                ó¶   — t        j                  dd| «      } t        j                  d| «      }|d= dj                  |«      }t        j                  dd|«      }|S )Nz\.pyi?$rp   z[/\\]r   r-   z\.__init__$)r   rñ   r0   r2   )r&   r5   r   s      r#   rò   rò   ²  sO   € Ü�6‰6�*˜b $Ó'€Dä�H‰H�X˜tÓ$€EØˆaˆØ�X‰X�e‹_€FÜ�V‰V�N B¨Ó/€FØ€Mr"   c                  óV   — e Zd ZU dZded<   ded<   ded<   ded	<   ded
<   edd„«       Zy)ÚTestItemzVParsed test caseitem.

    An item is of the form
      [id arg]
      .. data ..
    r   r|   r  r}   rÁ   rt   rf   rA   Úend_linec                ó`   — | j                   | j                  z
  t        | j                  «      z
  S re   )r  rA   r‡   rt   r  s    r#   Útrimmed_newlineszTestItem.trimmed_newlinesÎ  s"   € à�}‰}˜tŸy™yÑ(¬3¨t¯y©y«>Ñ9Ð9r"   N)rr   rf   )r   r   r   r  r    Úpropertyr!  r!   r"   r#   r  r  ¼  s4   … ñð 	ƒGØ	ƒOà
ƒOà
ƒIàƒMàò:ó ñ:r"   r  c           
     ón  — dd|z   dz   g| j                  d«      z   }g }g }d}d}d}d}|t        |«      k  �rA||   j                  «       }	||   j                  d«      r…|	j	                  d«      rt|r7t        |«      }t        |«      }|j                  t        ||||dz   |«      «       |}|	dd	 }d}d
|v r+||j                  d
«      dz   d }|d|j                  d
«       }g }n€||   j                  d«      r|j                  ||   dd «       nT||   j                  d«      s|j                  ||   «       n+||   j                  d«      r|j                  ||   dd «       |dz  }|t        |«      k  r�ŒA|r:t        |«      }t        |«      }|j                  t        ||||dz   |dz
  «      «       |S )z>Parse a list of lines that represent a sequence of test items.rp   z[case ú]rO   Nr   ú[rF   r+   ro   z\[z--z----rH   )
r0   r‡   r‰   r�   ÚendswithÚcollapse_line_continuationÚ
strip_listr{   r  Úindex)
Úraw_dataru   ÚlinesÚretrt   r|   r}   ÚiÚi0Úss
             r#   rs   rs   Ó  sÄ  € ð �˜D‘ 3Ñ&Ð'¨(¯.©.¸Ó*>Ñ>€EØ€CØ€Dà€BØ€Cà	€AØ	
€BØ
Œc�%‹j‹.Ø�!‰H�N‰NÓˆà�‰8×Ñ˜sÔ#¨¯
©
°3¬ÙÜ1°$Ó7�Ü! $Ó'�Ø—
‘
œ8 B¨¨T°2¸±6¸1Ó=Ô>àˆBØ�1�R�ˆBØˆCØ�b‰yØ˜Ÿ™ #›¨Ñ*Ð,Ð-�Ø˜˜"Ÿ(™( 3›-Ð(�Ø‰DØ�1‰X× Ñ  Ô'Ø�K‰K˜˜a™  ˜Õ%Ø�q‘×$Ñ$ TÔ*Ø�K‰K˜˜a™Õ!Ø�1‰X× Ñ  Ô(Ø�K‰K˜˜a™  ˜Ô%Ø	ˆQ‰ˆð- Œc�%‹jŒ.ñ2 
Ü)¨$Ó/ˆÜ˜$ÓˆØ�
‰
”8˜B  T¨2°©6°1°q±5Ó9Ô:à€Jr"   c                ó®   — g }| D ](  }|j                  t        j                  dd|«      «       Œ* |r#|d   dk(  r|j                  «        |r	|d   dk(  rŒ|S )z‰Return a stripped copy of l.

    Strip whitespace at the end of all lines, and strip all empty
    lines from the end of the array.
    z\s+$rp   r+   )r{   r   rñ   r1   )ÚlÚrr/  s      r#   r(  r(     s_   € ð €AØò )ˆà	�‰”—‘˜  QÓ'Õ(ð)ñ ��"‘˜’Ø	�‰Œñ ��"‘˜“ð €Hr"   c           	     óØ   — g }d}| D ]`  }t        j                  dd|«      }|r#|dxx   t        j                  dd|«      z  cc<   n|j                  |«       |j                  d«      }Œb |S )NFz\\$rp   r+   z^ +rk   )r   rñ   r{   r&  )r1  r2  Úcontr/  Ússs        r#   r'  r'    sk   € Ø€AØ€DØò  ˆÜ�V‰V�F˜B Ó"ˆÙØˆb‹E”R—V‘V˜E 2 rÓ*Ñ*ŒEà�H‰H�RŒLØ�z‰z˜$Ó‰ð ð €Hr"   c                ó.   — | j                  dt        «      S )Nz<ROOT>)ÚreplaceÚroot_dir)r/  s    r#   r~   r~     s   € Ø�9‰9�XœxÓ(Ð(r"   c                ó8  — t        t        | «      «      D �]  }| |   j                  d«      dd D ]å  }t        j                  d|j                  «       «      }|sŒ*|j                  d«      dk(  rd}n-|j                  d«      dk(  rd}n|j                  d«      d	k(  rd
}|j                  d«      }|j                  d«      }|j                  dd«      }|€ |j                  |› d|dz   › d› d|› �«       ŒÄ|j                  |› d|dz   › d|› d› d|› �	«       Œç �Œ y)z‹Transform comments such as '# E: message' or
    '# E:3: message' in input.

    The result is lines like 'fnam:line: error: message'.
    z # rF   Nz*^([ENW]):((?P<col>\d+):)? (?P<message>.*)$ÚEÚerrorÚNÚnoteÚWÚwarningÚcolÚmessagez\#ú#r:   r;   )	rø   r‡   r0   r   Úsearchr‰   rŠ   r7  r{   )	r™   rš   Úfnamr-  Úpossible_err_commentr²   Úseverityr@  rA  s	            r#   r˜   r˜   #  s)  € ô ”3�u“:Óó Rˆà$)¨!¡H§N¡N°5Ó$9¸!¸"Ð$=ò 	RÐ Ü—	‘	Ø=Ð?S×?YÑ?YÓ?[óˆAò Ø—7‘7˜1“: Ò$Ø&‘HØ—W‘W˜Q“Z 3Ò&Ø%‘HØ—W‘W˜Q“Z 3Ò&Ø(�HØ—g‘g˜e“n�ØŸ'™' )Ó,�Ø!Ÿ/™/¨%°Ó5�Ø�;Ø—M‘M T F¨!¨A°©E¨7°"°X°J¸bÀÀ	Ð"JÕKà—M‘M T F¨!¨A°©E¨7°!°C°5¸¸8¸*ÀBÀwÀiÐ"PÕQò#	RñRr"   c                ó   — | j                  t        t        j                  dd«      «      } t        j                  d| «      }|s| S |j	                  «       \  }}}dj                  |j                  dd«      |xs d|«      S )z`Changes Windows paths to Linux paths in error messages.

    E.g. foo\bar.py -> foo/bar.py.
    rk   r*   z^([\S/]+):(\d+:)?(\s+.*)z{}:{}{}rp   )r7  r8  r   r†   ÚgroupsÚformat)rA   r²   r3   ÚlinenorA  s        r#   r•   r•   @  sr   € ð
 �<‰<œ¤(×"2Ñ"2°4¸Ó"=Ó>€DÜ
�‰Ð,¨dÓ3€AÙØˆà$%§H¡H£JÑ!ˆ�&˜'Ø×Ñ × 0Ñ 0°°sÓ ;¸Vº\ÀrÈ7ÓSÐSr"   c                óâ   — t        j                  d| «      }|s| S dj                  | d|j                  d«       |j	                  d«      j                  dd«      | |j                  d«      d «      S )z‰Changes filename paths to Linux paths in Cobertura output files.

    E.g. filename="pkg\subpkg\a.py" -> filename="pkg/subpkg/a.py".
    z&<class .* filename="(?P<filename>.*?)"z{}{}{}NrF   r3   rk   r*   )r   rC  rI  ÚstartrŠ   r7  Úend)rA   r²   s     r#   Úfix_cobertura_filenamerN  N  si   € ô
 	�	‰	Ð;¸TÓB€AÙØˆØ�?‰?Øˆ\ˆq�w‰w�q‹zÐ˜AŸG™G JÓ/×7Ñ7¸¸cÓBÀDÈÏÉÈqËÈÐDTóð r"   c                ó~   — t         j                  j                  t        «      rt	        j
                  t        «       y y re   )r.   r&   Úisdirr   rã   r  )Úsessions    r#   Úpytest_sessionstartrR  b  s'   € ô 
‡w�w‡}�}Ô%Ô&Ü�‰Ô&Õ'ð 'r"   c                ó0  — | j                  d«      }|j                  dddd¬«       |j                  dt        dd	¬
«       |j                  dd d¬«       |j                  ddd¬«       |j                  dddd¬«       |j                  dd dt        d¬«       y )NÚmypyú--update-dataÚ
store_trueFzLUpdate test data to reflect actual output (supported only for certain tests))ÚactionÚdefaultÚhelpz--mypy-num-workersr   z<Run tests using multiple worker processes for each test case)ÚtyperX  rY  rÔ   zBCopy the temp directories from failing tests to a target directory)rX  rY  z--mypy-verboseÚcountz/Set the verbose flag when creating mypy Options)rW  rY  z--mypyc-showcz%Display C code on mypyc test failuresz--mypyc-debugÚdebuggerz8Run the first mypyc run test with the specified debugger)rX  ÚdestÚchoicesrY  )ÚgetgroupÚ	addoptionrf   r   )ÚparserrŠ   s     r#   Úpytest_addoptionrb  k  sÄ   € Ø�O‰O˜FÓ#€EØ	‡O�OØØØØ[ð	 ô ð 
‡O�OØÜØØKð	 ô ð 
‡O�OØØØQð ô ð
 
‡O�OØ Ð/`ð ô ð 
‡O�OØØØØ4ð	 ô ð 
‡O�OØØØÜ#ØGð õ r"   T)Útryfirstc                ón   — | j                  d«      ry | j                  d«      rd| j                  _        y y )Nz--collectonlyrU  r   )rà   ÚoptionÚnumprocesses)rß   s    r#   Úpytest_cmdline_mainrg  �  s2   € à×Ñ˜Ô(Øà×Ñ˜Ô(Ø%&ˆ�‰Õ"ð )r"   c                ó‚   — t        |t        «      r/t        |t        «      r|t        urt        j                  | |¬«      S y)z“Called by pytest on each object in modules configured in conftest.py files.

    collector is pytest.Collector, returns Optional[pytest.Class]
    ©rÀ   ru   N)rÇ   rZ  Ú
issubclassr  rÚ   Úfrom_parent)Ú	collectorru   rÛ   s      r#   Úpytest_pycollect_makeitemrm  ›  s:   € ô
 �#”tÔä�cœ9Ô%¨#´YÑ*>ô &×1Ñ1¸ÈÐ1ÓNÐNØr"   zß(?P<name>[a-zA-Z_0-9]+)(?P<writescache>-writescache)?(?P<only_when>-only_when_cache|-only_when_nocache)?(?P<skip_path_normalization>-skip_path_normalization)?(-(?P<platform>posix|windows))?(?P<skip>-skip)?(?P<xfail>-xfail)?r¿   r  c              #  óØ  K  — t        |d¬«      5 }|j                  «       }ddd«       t        j                  dt        j                  t        j
                  z  ¬«      }t        |«      }t        |«      j                  d«      dz   }t        «       }|D �]D  }	t        |«      }t        j                  |	«      }
|
st        d|	›�«      ‚|
j                  d	«      }||v r&t        d
j                  || j                  |«      «      ‚t         j#                  | ||t%        ||j&                  «      t)        |
j                  d«      «      |
j                  d«      |
j                  d«      t)        |
j                  d«      «      t)        |
j                  d«      «      |
j                  d«       ||¬«      –— ||j                  d«      dz   z  }|j+                  |h«       �ŒG y# 1 sw Y   �Œ¾xY w­w)zíIterate over raw test cases in file, at collection time, ignoring sub items.

    The collection phase is slow, so any heavy processing should be deferred to after
    uninteresting tests are filtered (when using -k PATTERN switch).
    úutf-8rR   Nz^\[case ([^]+)]+)\][ \t]*$\n)ÚflagsrO   rF   zInvalid testcase id ru   z1Found a duplicate test name "{}" in {} on line {}rÉ   rÊ   rË   rÌ   rÍ   Úskip_path_normalization)rÀ   rv   r@   ru   rÉ   rÊ   rË   rÌ   rÍ   r”   rt   rA   )r„   r…   r   r0   ÚDOTALLÚ	MULTILINEÚiterÚnextr[  rˆ   Ú_case_name_patternÚ	fullmatchÚRuntimeErrorrŠ   rI  ru   r7   rk  Úadd_test_name_suffixÚtest_name_suffixrÂ   Úupdate)rÀ   rv   r@   r¬   rt   ÚcasesÚ
cases_iterÚline_noÚ
test_namesÚcase_idr²   ru   s               r#   Úsplit_test_casesr�  µ  s¶  è ø€ ô 
ˆd˜WÔ	%ð ¨Ø�v‰v‹xˆ÷ä�H‰HÐ4°dÄ"Ç)Á)ÌbÏlÉlÑBZÔ[€EÜ�e“€JÜ�:Ó×$Ñ$ TÓ*¨QÑ.€GÜ“€JØó "ˆÜ�JÓˆä×(Ñ(¨Ó1ˆÙÜÐ!5°g°[ÐAÓBÐBØ�w‰w�v‹ˆØ�:ÑÜØC×JÑJØ˜&Ÿ+™+ wóóð ô
 !×,Ñ,ØØØÜ% d¨E×,BÑ,BÓCÜ˜QŸW™W ]Ó3Ó4Ø—g‘g˜kÓ*Ø—W‘W˜ZÓ(Ü�a—g‘g˜f“oÓ&Ü�q—w‘w˜wÓ'Ó(Ø!"§¡Ð)BÓ!CÐCØØð -ó 
ò 	
ð 	�4—:‘:˜dÓ# aÑ'Ñ'ˆð 	×Ñ˜4˜&Ö!ñ="÷ñ üs   ‚G*�G¡F<G*ÇG'Ç"G*c                  ó   — e Zd Zdd„Zy)rÚ   c              #  óô   K  — | j                   }t        j                  j                  |j                  «      sJ d|j                  › d�«       ‚|j
                  D ]  }t        j                  | |¬«      –— Œ y­w)zNCalled by pytest on each of the object returned from pytest_pycollect_makeitemzTest data prefix (z) not set correctlyri  N)rÛ   r.   r&   rP  Údata_prefixrž   r¿   rk  )rÐ   rv   Ú	data_files      r#   ÚcollectzDataSuiteCollector.collectå  s|   è ø€ ð  Ÿ8™8ˆä�w‰w�}‰}Ø×Ñô
ð 	Gà × 1Ñ 1Ð2Ð2EÐFó	Gð 
ð Ÿ™ò 	MˆIÜ#×/Ñ/°tÀ)Ð/ÓLÓLñ	Mùs   ‚A6A8N)rr   zIterator[DataFileCollector])r   r   r   r†  r!   r"   r#   rÚ   rÚ   ä  s   „ ôMr"   rÚ   c                  ó,   — e Zd ZU ded<   ded<   ded<   y)ÚDataFileFixrf   rJ  Ú
end_linenorÁ   r+  Nr   r!   r"   r#   rˆ  rˆ  ó  s   … ØƒKØƒOØÔr"   rˆ  c                  ó€   ‡ — e Zd ZU dZded<   ded<   e	 	 	 	 	 	 dˆ fd„«       Zdd„Zdˆ fd„Zdˆ fd	„Z	dd
„Z
dd„Zˆ xZS )r¿   zvRepresents a single `.test` data driven test file.

    More context: https://github.com/python/mypy/issues/11662
    rÚ   rÀ   zlist[DataFileFix]Ú_fixesc               óN   •— t         ‰| �  ||¬«      }t        |t        «      sJ ‚|S )N)ru   )rÈ   rk  rÇ   r¿   )ÚclsrÀ   ru   rl  rÑ   s       €r#   rk  zDataFileCollector.from_parent  s0   ø€ ô ‘GÑ'¨°TÐ'Ó:ˆ	Ü˜)Ô%6Ô7Ð7Ð7ØÐr"   c              #  óð   K  — t        | | j                  j                  t        j                  j                  | j                  j                  j                  | j                  «      ¬«      E d {  –—†  y 7 Œ­w)N)rÀ   rv   r@   )r�  rÀ   rÛ   r.   r&   r2   r„  ru   r  s    r#   r†  zDataFileCollector.collect  sJ   è ø€ Ü#ØØ—+‘+—/‘/Ü—‘—‘˜dŸk™kŸo™o×9Ñ9¸4¿9¹9ÓEô
÷ 	
ò 	
ús   ‚A,A6Á.A4Á/A6c                ó0   •— t         ‰| �  «        g | _        y re   )rÈ   rÜ   r‹  ©rÐ   rÑ   s    €r#   rÜ   zDataFileCollector.setup  s   ø€ Ü‰‰ŒØˆ�r"   c                óB   •— t         ‰| �  «        | j                  «        y re   )rÈ   r  Ú_apply_fixesr�  s    €r#   r  zDataFileCollector.teardown  s   ø€ Ü‰ÑÔØ×ÑÕr"   c                ó:   — | j                   j                  |«       y re   )r‹  r{   )rÐ   Úfixs     r#   Úenqueue_fixzDataFileCollector.enqueue_fix  s   € Ø�‰×Ñ˜3Õr"   c                ó’  — | j                   sy t        | j                  j                  j                  «      | j
                  z  }|j                  «       j                  d«      }t        | j                   d¬«      D ]+  }|j                  ||j                  dz
  |j                  dz
   Œ- |j                  dj                  |«      «       y )NrO   T)ÚreverserF   )r‹  r   rÀ   rÛ   r„  ru   Ú	read_textr0   Úsortedr+  rJ  r‰  Ú
write_textr2   )rÐ   Ú	data_pathr+  r”  s       r#   r’  zDataFileCollector._apply_fixes  sš   € Ø�{Š{ØÜ˜Ÿ™Ÿ™×4Ñ4Ó5¸¿	¹	ÑAˆ	Ø×#Ñ#Ó%×+Ñ+¨DÓ1ˆä˜$Ÿ+™+¨tÔ4ò 	CˆCØ9<¿¹ˆE�#—*‘*˜q‘. 3§>¡>°AÑ#5Ñ6ð	Cà×Ñ˜TŸY™Y uÓ-Õ.r"   )rÀ   rÚ   ru   r   rr   r¿   )rr   úIterator[DataDrivenTestCase]r  )r”  rˆ  rr   r  )r   r   r   r  r    Úclassmethodrk  r†  rÜ   r  r•  r’  r  r  s   @r#   r¿   r¿   ù  sY   ø… ñð
 ÓàÓàðØ'ðØ25ðà	ôó ðó
õõó ÷/r"   c                óˆ   — t        j                  d| «      }|r&|j                  d«      }| d t        |«        |z   |z   S | |z   S )Nz-[-A-Za-z0-9]+$r   )r   rC  rŠ   r‡   )ru   Úsuffixr²   Úmagic_suffixs       r#   ry  ry  (  sO   € ä
�	‰	Ð$ dÓ+€AÙð —w‘w˜q“zˆØÐ(”s˜<Ó(Ð(Ð)¨FÑ2°\ÑAÐAà�f‰}Ðr"   c                óZ   — d| j                   j                  «       v xs d| j                  v S )NÚincremental)ru   Úlowerr@   )Útestcases    r#   Úis_incrementalr¥  5  s(   € Ø˜HŸM™M×/Ñ/Ó1Ð1ÒS°]ÀhÇmÁmÐ5SÐSr"   c                óÆ   — t        d„ | j                  D «       «      ry| j                  D ]5  \  }}t        j                  j                  |«      j                  d«      sŒ5 y y)Nc              3  óH   K  — | ]  }t        j                  d |«      –— Œ y­w)z# flags[2-9]:N)r   r†   )rg   rA   s     r#   ri   z#has_stable_flags.<locals>.<genexpr>:  s   è ø€ Ò
G°Œ2�8‰8Ð$ d×+Ñ
Gùs   ‚ "Fz	mypy.ini.T)Úanyr™   rž   r.   r&   r×   r�   )r¤  r3   rª   s      r#   Úhas_stable_flagsr©  9  sT   € Ü
Ñ
G¸¿¹Ô
GÔGØØ&Ÿn™nò Ñˆ�(Ü�7‰7×Ñ˜HÓ%×0Ñ0°Õ=Ùðð r"   c                ól   — t         j                  j                  | «      \  }}|j                  d«      ryy)NÚ_latin1zlatin-1ro  )r.   r&   r/   r&  )r&   Ú	base_namer4   s      r#   rô   rô   B  s.   € Ü—7‘7×#Ñ# DÓ)�L€IˆqØ×Ñ˜)Ô$Øàr"   c                  óF   — e Zd ZU ded<   eZeZdZdZ	dZ
dd„Zed	d„«       Zy)
r  rÁ   rž   Frp   c                 ó   — y)zSetup fixtures (ad-hoc)Nr!   r  s    r#   rÜ   zDataSuite.setup[  s   � r"   c                ó   — t         ‚re   )ÚNotImplementedError)rÐ   r¤  s     r#   rÝ   zDataSuite.run_case^  s   € ä!Ð!r"   Nr  )r¤  r7   rr   r  )r   r   r   r    r   rw   r   r„  rz   rx   rz  rÜ   r   rÝ   r!   r"   r#   r  r  J  s@   … àÓà€Ið #€Kà Ðà€Jð Ðó&ð ò"ó ñ"r"   )r3   r   rr   r   )rC   r7   rr   r  )r&   r   rr   r   )r*  r   ru   r   rr   zlist[TestItem])r1  rÁ   rr   rÁ   )r/  r   rr   r   )r™   rÁ   rš   rÁ   rD  r   rr   r  )rA   r   rr   r   )rQ  r	   rr   r  )ra  r	   rr   r  )rß   zpytest.Configrr   r  )rl  r	   ru   r   rÛ   Úobjectrr   r  )rÀ   r¿   rv   r  r@   r   rr   rœ  )ru   r   rŸ  r   rr   r   )r¤  r7   rr   rÂ   )Ir  Ú
__future__r   r.   Úos.pathry   r   rã   r‘   rí   Úabcr   Úcollections.abcr   Údataclassesr   Úpathlibr   r   rU   r	   r
   r   r   r   r'   r>   rT  r   Úmypy.test.configr   r   r   r   r&   Únormpathr8  r   r    r   r%   r(   r6   r½   ÚItemr7   rò   r  rs   r(  r'  r~   r˜   r•   rN  rR  rb  Úhookimplrg  rm  r€   rv  r�  ÚClassrÚ   rˆ  Ú	Collectorr¿   ry  r¥  r©  rô   r  r!   r"   r#   ú<module>r¾     s¯  ðÚ Må "ã 	Û Û Û 	Û Û 
Û Ý Ý $Ý !Ý Ý ß LÕ Lã å ß VÓ Và�7‰7×Ñ˜FÓ#€ð
 $ V˜_Ð �UÓ ,ô�ô ô�ô ð
 '¨Ñ3€ˆzÓ 3óóA%ôHs˜Ÿ™ô sólð ÷:ð :ó ð:ó,*óZó$
ó)óRó:Tó
ó((ó"ðJ €‡�˜$Ôò'ó  ð'óð  �R—Z‘ZðóÐ ð,"Øð,"Ø&/ð,"Ø7:ð,"à!ó,"ô^M˜Ÿ™ô Mô�*ô ô,/˜×(Ñ(ô ,/ó^
óTóó÷"ò "r"   