Ë
    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 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 ddlmZ ej>                  dd„«       Z  G d„ de«      Z!y)zåEnsure the argparse parser and Options class are in sync.

In particular, verify that the argparse defaults are the same as the Options
defaults, and that argparse doesn't assign any new members to the Options
object it creates.
é    )ÚannotationsN)ÚIterator)ÚStringIO)ÚPath)ÚAnyÚcast)Úmock)Úutil)Úparse_num_workers)Úinfer_python_executableÚmainÚprocess_options)ÚOptions)ÚSuitec              #  ó‚   K  — t         j                  }| t         _        	 d –— |t         _        y # |t         _        w xY w­w)N)r
   Ú_AVAILABLE_THREADS)ÚvalueÚpreviouss     úW/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/test/testargs.pyÚ_available_threadsr      s1   è ø€ ä×&Ñ&€HØ#„DÔð+Ûà"*ŒÕø (ŒÕüs   ‚?Ÿ/ £?¯<¼?c                  óL   — e Zd Zd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd
d„Z	d
d„Z
y	)ÚArgSuitec                óæ  — t        d«      5  t        d«      dk(  sJ ‚	 d d d «       t        d«      5  t        d«      dk(  sJ ‚	 d d d «       t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d	«      d
k(  sJ ‚t        d«      dk(  sJ ‚| j                  t        j                  «      5  t        d«       d d d «       y # 1 sw Y   Œ²xY w# 1 sw Y   Œ™xY w# 1 sw Y   y xY w)Né   Úautoé    é   é   Ú12Ú0r   Ú1é   z-1éÿÿÿÿÚ	automatic)r   r   ÚassertRaisesÚargparseÚArgumentTypeError)Úselfs    r   Útest_parse_num_workerszArgSuite.test_parse_num_workers'   sù   € Ü Ó"ñ 	2Ü$ VÓ,°Ò1Ð1Ñ1÷	2ä Ó#ñ 	2Ü$ VÓ,°Ò1Ð1Ñ1÷	2ô ! Ó$¨Ò*Ð*Ð*Ü  Ó&¨"Ò,Ð,Ð,ä  Ó%¨Ò*Ð*Ð*Ü  Ó%¨Ò*Ð*Ð*ä  Ó&¨"Ò,Ð,Ð,Ø×Ñœx×9Ñ9Ó:ñ 	+Ü˜kÔ*÷	+ð 	+÷	2ð 	2ú÷	2ð 	2ú÷	+ð 	+ús"   ŒC±CÂ:C'ÃCÃC$Ã'C0c                óâ  — t        d«      5  t        j                  j                  t        j
                  ddi«      5  t        ddgd¬«      \  }}d d d «       t        j                  j                  t        j
                  ddi«      5  t        dgd¬«      \  }}d d d «       d d d «       j                  dk(  sJ ‚j                  dk(  sJ ‚y # 1 sw Y   Œ~xY w# 1 sw Y   Œ@xY w# 1 sw Y   ŒDxY w)	Né   ÚMYPY_NUM_WORKERSÚ ú--config-file=ú--num-workers=autoF©Úrequire_targetsr   )r   r	   ÚpatchÚdictÚosÚenvironr   Únum_workers)r(   Ú_Úcli_optionsÚenv_optionss       r   Ú7test_num_workers_auto_from_command_line_and_environmentz@ArgSuite.test_num_workers_auto_from_command_line_and_environment7   sã   € Ü Ó"ñ 	\Ü—‘—‘¤§¡Ð.@À"Ð-EÓFñ Ü!0Ø%Ð';Ð<Èeô"‘��;÷ô —‘—‘¤§¡Ð.@À&Ð-IÓJñ \Ü!0Ð2BÐ1CÐUZÔ![‘��;÷\÷	\ð ×&Ñ&¨!Ò+Ð+Ð+Ø×&Ñ&¨!Ò+Ð+Ñ+÷ð ú÷\ð \ú÷	\ð 	\ús:   Œ1C%½CÁ8C%ÂCÂC%ÃC	ÃC%ÃC"	ÃC%Ã%C.c                ó„  — t        «       }t        j                  j                  t        j
                  ddi«      5  | j                  t        «      5 }t        dgdt        «       |¬«       d d d «       d d d «       j                  j                  dk(  sJ ‚d|j                  «       v sJ ‚y # 1 sw Y   ŒAxY w# 1 sw Y   ŒExY w)Nr,   r$   r.   F)r1   ÚstdoutÚstderré   z7MYPY_NUM_WORKERS: Invalid number of workers 'automatic')r   r	   r2   r3   r4   r5   r%   Ú
SystemExitr   Ú	exceptionÚcodeÚgetvalue)r(   r=   Úcontexts      r   Ú$test_invalid_num_workers_environmentz-ArgSuite.test_invalid_num_workers_environmentC   s§   € Ü“ˆÜ�Z‰Z�_‰_œRŸZ™ZÐ*<¸kÐ)JÓKñ 	Ø×"Ñ"¤:Ó.ð °'ÜØ%Ð&¸ÄhÃjÐY_õ÷÷	ð × Ñ ×%Ñ%¨Ò*Ð*Ð*ØHÈFÏOÉOÓL]Ñ]Ð]Ñ]÷ð ú÷	ð 	ús#   »B6ÁB*Á*B6Â*B3	Â/B6Â6B?c           
     óÞ  — d}t        j                  «       5 }t        d«      5  |D ]�  \  }}t        |«      |z  }|j	                  |d¬«       t
        j                  j                  t        j                  ddi«      5  t        dt        |«      gd¬	«      \  }}d d d «       j                  dk(  rŒ‹J |«       ‚ 	 d d d «       d d d «       y # 1 sw Y   Œ3xY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)
N))úmypy.iniz[mypy]
num_workers = auto
)zpyproject.tomlz![tool.mypy]
num_workers = "auto"
r+   úutf-8©Úencodingr,   r-   ú--config-fileFr0   )ÚtempfileÚTemporaryDirectoryr   r   Ú
write_textr	   r2   r3   r4   r5   r   Ústrr6   )r(   ÚconfigsÚtemp_dirÚfilenameÚcontentsÚconfigr7   Úoptionss           r   Ú!test_num_workers_auto_from_configz*ArgSuite.test_num_workers_auto_from_configN   sí   € ð
ˆô ×(Ñ(Ó*ð 		>¨hÜ# AÓ&ñ >Ø*1ò >Ñ&�H˜hÜ! (›^¨hÑ6�FØ×%Ñ% h¸Ð%ÔAÜŸ™Ÿ™¬¯©Ð6HÈ"Ð5MÓNñ Ü%4Ø,¬c°&«kÐ:ÈEô&™
˜˜7÷ð #×.Ñ.°!Ó3Ð=°XÓ=Ð3ñ>÷>÷		>ð 		>÷
ð ú÷	>ð >ú÷		>ð 		>úsA   —C#£ACÁ=C	ÂCÂ1CÂ:C#ÃCÃCÃC 	ÃC#Ã#C,c           	     óö  — t        j                  «       5 }t        |«      dz  }|j                  dd¬«       t	        d«      5  t
        j                  j                  t        j                  ddi«      5  t        dt        |«      gd	¬
«      \  }}d d d «       t
        j                  j                  t        j                  ddi«      5  t        dt        |«      gd	¬
«      \  }}t        dt        |«      dgd	¬
«      \  }}d d d «       d d d «       d d d «       j                  dk(  sJ ‚j                  dk(  sJ ‚j                  dk(  sJ ‚y # 1 sw Y   Œ½xY w# 1 sw Y   ŒYxY w# 1 sw Y   Œ]xY w# 1 sw Y   ŒaxY w)NrF   z[mypy]
num_workers = 2
rG   rH   r   r,   r-   rJ   Fr0   Ú7r/   r>   é   )rK   rL   r   rM   r   r	   r2   r3   r4   r5   r   rN   r6   )r(   rP   rS   r7   Úconfig_optionsr9   r8   s          r   Útest_num_workers_precedencez$ArgSuite.test_num_workers_precedence^   sa  € Ü×(Ñ(Ó*ð 	¨hÜ˜(“^ jÑ0ˆFØ×ÑÐ9ÀGÐÔLä# AÓ&ñ Ü—Z‘Z—_‘_¤R§Z¡ZÐ2DÀbÐ1IÓJñ Ü(7Ø(¬#¨f«+Ð6Èô)Ñ%�A�~÷ô
 —Z‘Z—_‘_¤R§Z¡ZÐ2DÀcÐ1JÓKñ Ü%4Ø(¬#¨f«+Ð6Èô&‘N�A�{ô &5Ø(¬#¨f«+Ð7KÐLÐ^cô&‘N�A�{÷÷÷		ð& ×)Ñ)¨QÒ.Ð.Ð.Ø×&Ñ&¨!Ò+Ð+Ð+Ø×&Ñ&¨!Ò+Ð+Ñ+÷!ð ú÷
ð ú÷ð ú÷		ð 	úsS   •-E/Á1E#Á3EÂ8E#Ã8EÃ?E#ÄE/ÅEÅE#ÅE ÅE#Å#E,	Å(E/Å/E8c                ó  — t        j                  «       5 }t        «       }t        «       }t        dddddd|› �ddg||d	¬
«       |j	                  «       d|› d�k(  sJ ‚|j	                  «       dk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr.   z--num-workers=1z--no-incrementalú--no-site-packagesz--no-error-summaryz--cache-dir=z-cÚpassT)Úargsr<   r=   Ú
clean_exitzdWarning: disabling incremental mode may severely reduce performance
If this is intentional, delete 'z' to suppress this warning
r-   )rK   rL   r   r   rB   )r(   Ú	cache_dirr<   r=   s       r   Ú2test_parallel_mode_warns_when_incremental_disabledz;ArgSuite.test_parallel_mode_warns_when_incremental_disabledv   s¯   € Ü×(Ñ(Ó*ð 	+¨iÜ“ZˆFÜ“ZˆFÜà$Ø%Ø&Ø(Ø(Ø" 9 +Ð.ØØð	ð ØØõð  —?‘?Ó$ð3Ø3<°+Ð=Yð[òð ð ð —?‘?Ó$¨Ò*Ð*Ñ*÷/	+÷ 	+ñ 	+ús   •AA<Á<Bc                ó    — t        «       }t        g d¬«      \  }}|j                  |_        |j                  «       |j                  «       k(  sJ ‚y )NFr0   )r   r   Úconfig_fileÚsnapshot)r(   rT   r7   Úparsed_optionss       r   Útest_coherencezArgSuite.test_coherence�   sH   € Ü“)ˆÜ+¨BÀÔFÑˆˆ>à,×8Ñ8ˆÔØ×ÑÓ! ^×%<Ñ%<Ó%>Ò>Ð>Ñ>ó    c                ó\  — dj                  t        j                  ¬«      }dg}|d|› �gz   }t        |«      \  }}|j                  t        j                  dd k(  sJ ‚|j
                  t        j                  k(  sJ ‚|dt        j                  › �gz   }t        |«      \  }}|j                  t        j                  dd k(  sJ ‚|j
                  t        j                  k(  sJ ‚|d|› �dt        j                  › �gz   }t        |«      \  }}|j                  t        j                  dd k(  sJ ‚|j
                  t        j                  k(  sJ ‚|d|› �dgz   }t        |«      \  }}|j                  t        j                  dd k(  sJ ‚|j
                  �J ‚t        j                  «       }d|_        d|_        d|_	        t        «       }t        t        d«      |_        t        j                  dd |_        t        ||«       |j                  t        j                  dd k(  sJ ‚|j
                  t        j                  k(  sJ ‚t        «       }t        j                  |_        t        ||«       |j                  t        j                  dd k(  sJ ‚|j
                  t        j                  k(  sJ ‚y)	z7Test the --python-executable flag with --python-versionz{ver.major}.{ver.minor})Úverzfile.pyz--python-version=Nr>   z--python-executable=r\   )ÚformatÚsysÚversion_infor   Úpython_versionÚpython_executableÚ
executabler&   Ú	NamespaceÚno_executabler   r   r   r   )r(   Úsys_ver_strÚbaseÚmatching_versionr7   rT   Úspecial_optss          r   Útest_executable_inferencez"ArgSuite.test_executable_inference—   s¦  € à/×6Ñ6¼3×;KÑ;KÐ6ÓLˆàˆ{ˆð  Ð%6°{°mÐ#DÐ"EÑEÐÜ$Ð%5Ó6‰
ˆˆ7Ø×%Ñ%¬×)9Ñ)9¸"¸1Ð)=Ò=Ð=Ð=Ø×(Ñ(¬C¯N©NÒ:Ð:Ð:àÐ%9¼#¿.¹.Ð9IÐ#JÐ"KÑKÐÜ$Ð%5Ó6‰
ˆˆ7Ø×%Ñ%¬×)9Ñ)9¸"¸1Ð)=Ò=Ð=Ð=Ø×(Ñ(¬C¯N©NÒ:Ð:Ð:ð  Ø ˜}Ð-Ø"¤3§>¡>Ð"2Ð3ð#
ñ 
Ðô %Ð%5Ó6‰
ˆˆ7Ø×%Ñ%¬×)9Ñ)9¸"¸1Ð)=Ò=Ð=Ð=Ø×(Ñ(¬C¯N©NÒ:Ð:Ð:ð  Ð%6°{°mÐ#DÐFZÐ"[Ñ[ÐÜ$Ð%5Ó6‰
ˆˆ7Ø×%Ñ%¬×)9Ñ)9¸"¸1Ð)=Ò=Ð=Ð=Ø×(Ñ(Ð0Ð0Ð0ô  ×)Ñ)Ó+ˆØ)-ˆÔ&Ø&*ˆÔ#Ø%)ˆÔ"ô “)ˆÜ$(¬¨d£OˆÔ!Ü!$×!1Ñ!1°"°1Ð!5ˆÔÜ ¨Ô6Ø×%Ñ%¬×)9Ñ)9¸"¸1Ð)=Ò=Ð=Ð=Ø×(Ñ(¬C¯N©NÒ:Ð:Ð:ô “)ˆÜ$'§N¡NˆÔ!Ü ¨Ô6Ø×%Ñ%¬×)9Ñ)9¸"¸1Ð)=Ò=Ð=Ð=Ø×(Ñ(¬C¯N©NÒ:Ð:Ñ:rg   N)ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r)   r:   rD   rU   rZ   ra   rf   rv   © rg   r   r   r   &   s+   „ ó+ó 
,ó	^ó>ó ,ó0+ó4?ô3;rg   r   )r   Úintrw   zIterator[None])"Ú__doc__Ú
__future__r   r&   Ú
contextlibr4   rk   rK   Úcollections.abcr   Úior   Úpathlibr   Útypingr   r   Úunittestr	   Úmypyr
   Úmypy.config_parserr   Ú	mypy.mainr   r   r   Úmypy.optionsr   Úmypy.test.helpersr   Úcontextmanagerr   r   r|   rg   r   ú<module>rŒ      sg   ðñõ #ã Û Û 	Û 
Û Ý $Ý Ý ß Ý å Ý 0ß DÑ DÝ  Ý #ð ×Ñò+ó ð+ôd;ˆuõ d;rg   