Ë
    pPêj î  ã                  óÖ  — 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Zd dlmZ d dl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mZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d d	l'm(Z(m)Z) d d
l*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7  G d„ de	jp                  «      Z9 G d„ de	jp                  «      Z: G d„ de	jp                  «      Z; G d„ de	jp                  «      Z< G d„ de3«      Z= ed¬«      Z> G d„ d«      Z? G d„ de?«      Z@ G d„ de	jp                  «      ZA G d„ d e	jp                  «      ZB G d!„ d"e	jp                  «      ZC G d#„ d$e	jp                  «      ZDd&d%„ZEy)'é    )ÚannotationsN)Ú
ModuleType)ÚAny)ÚCompileError)ÚInspectErrorÚModuleInspect)
ÚArgSigÚFunctionSigÚbuild_signatureÚfind_unique_signaturesÚ!infer_arg_sig_from_anon_docstringÚinfer_prop_type_from_docstringÚinfer_sig_from_docstringÚis_valid_typeÚparse_all_signaturesÚparse_signature)ÚOptionsÚcollect_build_targetsÚgenerate_stubsÚis_blacklisted_pathÚis_non_library_moduleÚmypy_optionsÚparse_options)ÚInspectionStubGeneratorÚinfer_c_method_args)Ú	ClassInfoÚFunctionContextÚcommon_dir_prefixÚinfer_method_ret_typeÚremove_misplaced_type_commentsÚwalk_packages)ÚDataDrivenTestCaseÚ	DataSuite)Úassert_equalÚassert_string_arrays_equalÚlocal_sys_path_setc                  ó  ‡ — e Zd ZdZ ej
                  ej                  dk(  d«      dd„«       Z ej
                  ej                  dk(  d«      dd„«       Z	 ej
                  ej                  dk(  d«      dd„«       Z
ddœdd	„Zddˆ fd
„Zˆ xZS )ÚStubgenCmdLineSuitezATest cases for processing command-line options and finding files.Úwin32úclean up fails on Windowsc           
     ó’  — t        j                  «       }t        j                  «       5 }	 t        j                  |«       t        j
                  d«       | j                  dd«       | j                  dd«       t        j
                  t         j                  j                  dd«      «       | j                  ddd«       t        dg«      }t        |t        |«      «      \  }}}t        |g «       t        |g «       |D �ch c]  }|j                  ’Œ }}t        |t         j                  j                  ddd«      t         j                  j                  dd«      t         j                  j                  dd«      h«       t        j                  |«       	 d d d «       y c c}w # t        j                  |«       w xY w# 1 sw Y   y xY w)NÚsubdirúa.pyúb.pyÚpackú__init__.py)ÚosÚgetcwdÚtempfileÚTemporaryDirectoryÚchdirÚmkdirÚ	make_fileÚpathÚjoinr   r   r   r$   ©	ÚselfÚcurrentÚtmpÚoptsÚpy_modsÚpyi_modsÚc_modsÚmodÚfiless	            úZ/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/test/teststubgen.pyÚtest_files_foundz$StubgenCmdLineSuite.test_files_found6   sS  € ä—)‘)“+ˆÜ×(Ñ(Ó*ð 	"¨cð"Ü—‘˜”Ü—‘˜Ô"Ø—‘˜x¨Ô0Ø—‘˜x¨Ô0Ü—‘œŸ™Ÿ™ h°Ó7Ô8Ø—‘˜x¨°Ô?Ü$ h ZÓ0�Ü,AÀ$ÌÐUYÓHZÓ,[Ñ)�˜ 6Ü˜X rÔ*Ü˜V RÔ(Ø-4Ö5 c˜Ÿ›Ð5�Ð5ÜØäŸ™Ÿ™ X¨v°}ÓEÜŸ™Ÿ™ X¨vÓ6ÜŸ™Ÿ™ X¨vÓ6ðôô —‘˜Õ!÷-	"ð 	"ùò 6øô —‘˜Õ!ú÷-	"ð 	"ús6   ©F=«CF#Ä FÄA,F#Å?F=ÆF#Æ#F:Æ:F=Æ=Gc           
     óp  — t        j                  «       }t        j                  «       5 }	 t        j                  |«       t        j
                  d«       | j                  ddd¬«       | j                  dd«       | j                  dd«       t        ddg«      }t        |t        |«      «      \  }}}t        |g «       t        |g «       |D �ch c]/  }t         j                  j                  |j                  xs d«      ’Œ1 }}t        |t         j                  j                  dd«      t         j                  j                  dd«      t         j                  j                  dd«      h«       t        j                  |«       	 d d d «       y c c}w # t        j                  |«       w xY w# 1 sw Y   y xY w)	Nr/   r0   zfrom . import a, b©Úcontentr-   r.   z-pÚFAIL)r1   r2   r3   r4   r5   r6   r7   r   r   r   r$   r8   Úrelpathr9   r:   s	            rD   Útest_packages_foundz'StubgenCmdLineSuite.test_packages_foundQ   sN  € ä—)‘)“+ˆÜ×(Ñ(Ó*ð 	"¨cð"Ü—‘˜”Ü—‘˜Ô Ø—‘˜v }Ð>R�ÔSØ—‘˜v vÔ.Ø—‘˜v vÔ.Ü$ d¨F ^Ó4�Ü,AÀ$ÌÐUYÓHZÓ,[Ñ)�˜ 6Ü˜X rÔ*Ü˜V RÔ(ØHOÖPÀœŸ™Ÿ™¨¯©Ò);°VÕ<ÐP�ÐPÜØäŸ™Ÿ™ V¨]Ó;ÜŸ™Ÿ™ V¨VÓ4ÜŸ™Ÿ™ V¨VÓ4ðôô —‘˜Õ!÷+	"ð 	"ùò Qøô —‘˜Õ!ú÷+	"ð 	"ús6   ©F,«B$FÃ4FÄA+FÅ.F,ÆFÆF)Æ)F,Æ,F5c                óD  — t        j                  «       }t        j                  «       }|t        _        t        j                  «       5 }	 t        j                  |«       | j                  |dd¬«       t        ddg«      }t        |t        |«      «       |j                  «       dk(  sJ ‚	 t        j                  t        _        t        j                  |«       	 d d d «       y # t        j                  t        _        t        j                  |«       w xY w# 1 sw Y   y xY w)Nzmymodule.pyzimport arG   ú-mÚmymoduleÚ )r1   r2   ÚioÚStringIOÚsysÚstdoutr3   r4   r5   r7   r   r   r   ÚgetvalueÚ
__stdout__)r;   r<   Úcaptured_outputr=   r>   s        rD   Útest_module_not_foundz)StubgenCmdLineSuite.test_module_not_foundk   sÐ   € ä—)‘)“+ˆÜŸ+™+›-ˆØ$ŒŒ
Ü×(Ñ(Ó*ð 		"¨cð"Ü—‘˜”Ø—‘˜s M¸:�ÔFÜ$ d¨JÐ%7Ó8�Ü% d¬L¸Ó,>Ô?Ø&×/Ñ/Ó1°RÒ7Ð7Ñ7ä Ÿ^™^””
Ü—‘˜Õ!÷		"ð 		"øô !Ÿ^™^””
Ü—‘˜Õ!ú÷		"ð 		"ús%   ÁDÁ
A C#Â+.DÃ#0DÄDÄDrO   rG   c               ó    — t        j                  j                  |Ž }t        |d«      5 }|j	                  |«       d d d «       y # 1 sw Y   y xY w)NÚw)r1   r8   r9   ÚopenÚwrite)r;   rH   r8   ÚfileÚfs        rD   r7   zStubgenCmdLineSuite.make_file{   s@   € Ü�w‰w�|‰|˜TÐ"ˆÜ�$˜‹_ð 	 Ø�G‰G�GÔ÷	÷ 	ñ 	ús   ©AÁAc                ób   •— t        «       5  t        ‰| �	  |«      cd d d «       S # 1 sw Y   y xY w©N)r&   ÚsuperÚrun)r;   ÚresultÚ	__class__s     €rD   ra   zStubgenCmdLineSuite.run€   s*   ø€ ÜÓ!ñ 	'Ü‘7‘;˜vÓ&÷	'÷ 	'ò 	'ús   Œ%¥.©ÚreturnÚNone)r8   ÚstrrH   rg   re   rf   r_   )rb   ú
Any | Nonere   rh   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚunittestÚskipIfrR   ÚplatformrE   rK   rW   r7   ra   Ú__classcell__)rc   s   @rD   r(   r(   3   sœ   ø„ ÙKà€X‡_�_�S—\‘\ WÑ,Ð.IÓJò"ó Kð"ð4 €X‡_�_�S—\‘\ WÑ,Ð.IÓJò"ó Kð"ð2 €X‡_�_�S—\‘\ WÑ,Ð.IÓJò"ó Kð"ð 46õ ÷
'ò 'ó    r(   c                  ó   — e Zd Zdd„Zy)ÚStubgenCliParseSuitec           
     ó:  — t        «       5 }t        t        t        |dg«      «      dh«       t        t        t        |ddg«      «      ddh«       t        t        |dg«      «      }| j	                  |j                  h d£«      «       d d d «       y # 1 sw Y   y xY w)Númypy.errorsúmypy.stubgenÚmypy>   ú	mypy.testúmypy.test.helpersrw   ru   rv   )r   r$   Úsetr!   Ú
assertTrueÚ
issuperset)r;   ÚmÚall_mypy_packagess      rD   Útest_walk_packagesz'StubgenCliParseSuite.test_walk_packages†   s�   € Ü‹_ð 	 Üœœ]¨1¨}¨oÓ>Ó?À-ÀÔQäÜ”M ! m°^Ð%DÓEÓFØ Ð/ôô
 !$¤M°!°f°XÓ$>Ó ?ÐØ�O‰OØ!×,Ñ,Ú]óô÷	÷ 	ñ 	ús   ‹A=BÂBNrd   )ri   rj   rk   r   © rq   rD   rs   rs   …   s   „ ôrq   rs   c                  óä  — e Zd 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d*d
„Zd)d„Zd)d„Zd)d„Zd)d„Zd)d„Zd)d„Zd)d„Zej*                  j-                  ed¬«      d)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 d)d„Z!d)d„Z"d)d„Z#d)d „Z$d)d!„Z% e&jN                  e(jR                  d"k(  d#«      d)d$„«       Z* e&jN                  e(jR                  d"k7  d%«      d)d&„«       Z+d)d'„Z,y()+ÚStubgenUtilSuitez)Unit tests for stubgen utility functions.c                ó.   — | j                  ddg g f«       y )Nzfunc()Úfunc©Úassert_parse_signature©r;   s    rD   Útest_parse_signaturez%StubgenUtilSuite.test_parse_signatureš   s   € Ø×#Ñ# H¨v°r¸2Ð.>Õ?rq   c                ó^   — | j                  dddgg f«       | j                  ddddgg f«       y )Nz	func(arg)r„   Úargzdo(arg, arg2)ÚdoÚarg2r…   r‡   s    rD   Útest_parse_signature_with_argsz/StubgenUtilSuite.test_parse_signature_with_args�   s6   € Ø×#Ñ# K°&¸5¸'À2Ð1FÔGØ×#Ñ# O°d¸UÀF¸OÈRÐ5PÕQrq   c                óŒ   — | j                  ddg dgf«       | j                  dddgdgf«       | j                  ddg ddgf«       y )Nzfunc([arg])r„   rŠ   zfunc(arg[, arg2])rŒ   zfunc([arg[, arg2]])r…   r‡   s    rD   Ú'test_parse_signature_with_optional_argsz8StubgenUtilSuite.test_parse_signature_with_optional_args¡   sT   € Ø×#Ñ# M°F¸BÀÀÐ3HÔIØ×#Ñ#Ð$7¸&À5À'ÈFÈ8Ð9TÔUØ×#Ñ#Ð$9¸FÀBÈÐPVÈÐ;XÕYrq   c                óŒ   — | j                  ddg dgf«       | j                  dddgdgf«       | j                  ddg ddgf«       y )Nzfunc(arg=None)r„   rŠ   zfunc(arg, arg2=None)rŒ   zfunc(arg=1, arg2="")r…   r‡   s    rD   Ú%test_parse_signature_with_default_argz6StubgenUtilSuite.test_parse_signature_with_default_arg¦   sU   € Ø×#Ñ#Ð$4°v¸rÀEÀ7Ð6KÔLØ×#Ñ#Ð$:¸VÀeÀWÈvÈhÐ<WÔXØ×#Ñ#Ð$:¸VÀRÈ%ÐQWÈÐ<YÕZrq   c                ó0   — | j                  dddgg f«       y )NzClassName.func(arg)r„   rŠ   r…   r‡   s    rD   Ú,test_parse_signature_with_qualified_functionz=StubgenUtilSuite.test_parse_signature_with_qualified_function«   s   € Ø×#Ñ#Ð$9¸FÀUÀGÈRÐ;PÕQrq   c                ó4   — | j                  ddddgdgf«       y )NzClassName.func(arg, *, arg2=1)r„   rŠ   Ú*rŒ   r…   r‡   s    rD   Ú%test_parse_signature_with_kw_only_argz6StubgenUtilSuite.test_parse_signature_with_kw_only_arg®   s"   € Ø×#Ñ#Ø,¨v¸¸s°|ÀfÀXÐ.Nõ	
rq   c                ó2   — | j                  ddddgg f«       y )NzClassName.func(arg, *args)r„   rŠ   ú*argsr…   r‡   s    rD   Ú"test_parse_signature_with_star_argz3StubgenUtilSuite.test_parse_signature_with_star_arg³   s!   € Ø×#Ñ#Ð$@À6ÈEÐSZÐK[Ð]_ÐB`Õarq   c                ó2   — | j                  ddddgg f«       y )NzClassName.func(arg, **args)r„   rŠ   z**argsr…   r‡   s    rD   Ú'test_parse_signature_with_star_star_argz8StubgenUtilSuite.test_parse_signature_with_star_star_arg¶   s!   € Ø×#Ñ#Ð$AÀFÈUÐT\ÐL]Ð_aÐCbÕcrq   c                ó.   — t        t        |«      |«       y r_   )r$   r   )r;   Úsigrb   s      rD   r†   z'StubgenUtilSuite.assert_parse_signature¹   s   € Ü”_ SÓ)¨6Õ2rq   c                óð   — t        t        g g «      d«       t        t        dgg «      d«       t        t        ddgg «      d«       t        t        dgdg«      d«       t        t        dgddg«      d«       y )	Nú()rŠ   ú(arg)rŒ   ú(arg, arg2)z(arg, arg2=...)z**xz(arg, arg2=..., **x))r$   r   r‡   s    rD   Útest_build_signaturez%StubgenUtilSuite.test_build_signature¼   si   € Ü”_ R¨Ó,¨dÔ3Ü”_ e W¨bÓ1°7Ô;Ü”_ e¨V _°bÓ9¸=ÔIÜ”_ e W¨v¨hÓ7Ð9JÔKÜ”_ e W¨v°u¨oÓ>Ð@VÕWrq   c                ó:   — t        t        g d¢«      ddgg f«       y )N)zrandom textz.. function:: fn(argz.. function:: fn()z  .. method:: fn2(arg))ÚfnrŸ   )Úfn2r    )r$   r   r‡   s    rD   Útest_parse_all_signaturesz*StubgenUtilSuite.test_parse_all_signaturesÃ   s'   € ÜÜ òóð Ð,Ð-¨rÐ2õ
	
rq   c                ó6   — t        t        g d¢«      ddg«       y )N)©r„   rŸ   r¨   )Úfunc2rŸ   )r©   r    ©Úfunc3r¡   r¨   rª   )r$   r   r‡   s    rD   Útest_find_unique_signaturesz,StubgenUtilSuite.test_find_unique_signaturesÐ   s"   € ÜÜ"òóð Ð5Ð6õ	
rq   c                ó&  — t        t        dd«      t        dt        d¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      t        d	d
¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      t        d	d
¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      t        d	d
¬«      gd¬«      g«       t        t        dd«      g «       t        t        dd«      g «       t        t        dd«      t        dt        dd
¬«      gd¬«      g«       t        t        dd«      g «       t        t        dd«      t        dt        dd¬«      gd¬«      g«       t        t        dd«      t        dt        ddd
¬«      gd¬«      g«       t        t        dd«      t        dt        dd d
¬«      gd¬«      g«       t        t        dd«      t        dg d¬«      g«       t        t        dd«      t        dt        ddd
¬«      gd¬«      g«       t        t        dd«      t        dt        ddd
¬«      gd¬«      g«       t        t        dd«      t        dt        dd¬«      gd¬«      g«       t        t        dd«      t        dt        dd¬«      t        d d¬«      gd¬«      g«       t        t        d!d«      t        dt        dd"¬«      gd¬«      g«       t        t        d#d«      t        dt        dd$d
¬«      gd¬«      g«       t        t        d%d«      t        dt        ddd
¬«      gd¬«      g«       t        t        d&d«      g «       t        t        d'd«      t        dt        dd ¬«      gd¬«      g«       t        t        d(d«      g «       t        t        d)d«      t        dt        ddd
¬«      gd¬«      g«       y )*Nz
func(x) - yr„   Úx©Únamer   ©r°   ÚargsÚret_typez
func(x)z
func(x, Y_a=None)ÚY_aT)r°   Údefaultz
func(x, Y_a=3)z
func(x, Y_a=[1, 2, 3])z
afunc(x) - yz

func(x, yz
func(x=z(y))z
func xz
func(x: int)Úint©r°   Útypez
func(x: int=3)©r°   r¸   rµ   z

func(x=3)z
func() -> intz
func(x: int=3) -> intz
func(x: int=3) -> int   
z 
func(x: Tuple[int, str]) -> strzTuple[int,str]rg   z9
func(x: Tuple[int, Tuple[str, int], str], y: int) -> strúTuple[int,Tuple[str,int],str]Úyz
func(x: foo.bar)úfoo.barz
func(x: list=[1,2,[3,4]])Úlistz
func(x: str="nasty[")z
func[(x: foo.bar, invalid]z&
func(x: invalid::type<with_template>)z
func(invalid::type)z
func(x: str="")©r$   r   r
   r	   r‡   s    rD   Útest_infer_sig_from_docstringz.StubgenUtilSuite.test_infer_sig_from_docstringÞ   s@  € ÜÜ$ _°fÓ=Ü˜f¬F¸Ô,<Ð+=ÈÔNÐOô	
ô 	Ü$ [°&Ó9Ü˜f¬F¸Ô,<Ð+=ÈÔNÐOô	
ô
 	Ü$Ð%:¸FÓCäØÜ  cÔ*¬F¸ÀtÔ,LÐMØ"ôðô		
ô 	Ü$Ð%7¸Ó@äØÜ  cÔ*¬F¸ÀtÔ,LÐMØ"ôðô		
ô 	Ü$Ð%?ÀÓHäØÜ  cÔ*¬F¸ÀtÔ,LÐMØ"ôðô		
ô 	Ô-Ð.>ÀÓGÈÔLÜÔ-¨m¸VÓDÀbÔIÜÜ$Ð%5°vÓ>Ü˜f¬F¸ÀTÔ,JÐ+KÐV[Ô\Ð]ô	
ô
 	Ô-¨j¸&ÓAÀ2ÔFäÜ$Ð%5°vÓ>Ü˜f¬F¸À%Ô,HÐ+IÐTYÔZÐ[ô	
ô 	Ü$Ð%7¸Ó@äØ¤v°3¸UÈDÔ'QÐ&RÐ]bôðô	
ô 	Ü$ ]°FÓ;äØ¤v°3¸TÈ4Ô'PÐ&QÐ\aôðô	
ô 	Ü$Ð%6¸Ó?Ü˜f¨2¸Ô>Ð?ô	
ô
 	Ü$Ð%>ÀÓGäØ¤v°3¸UÈDÔ'QÐ&RÐ]bôðô	
ô 	Ü$Ð%CÀVÓLäØ¤v°3¸UÈDÔ'QÐ&RÐ]bôðô	
ô 	Ü$Ð%HÈ&ÓQäØ¤v°3Ð=MÔ'NÐ&OÐZ_ôðô	
ô 	Ü$ØLÈfóô Øä CÐ.MÔNÜ C¨eÔ4ðð #ôð	ô		
ô  	Ü$Ð%9¸6ÓBÜ˜f¬F¸À)Ô,LÐ+MÐX]Ô^Ð_ô	
ô
 	Ü$Ð%BÀFÓKäØ¤v°3¸VÈTÔ'RÐ&SÐ^côðô	
ô 	Ü$Ð%>ÀÓGäØ¤v°3¸UÈDÔ'QÐ&RÐ]bôðô	
ô 	Ô-Ð.LÈfÓUÐWYÔZäÜ$Ð%NÐPVÓWÜ˜f¬F¸À$Ô,GÐ+HÐSXÔYÐZô	
ô
 	Ô-Ð.EÀvÓNÐPRÔSäÜ$Ð%8¸&ÓAäØ¤v°3¸UÈDÔ'QÐ&RÐ]bôðõ	
rq   c           
     óv   — t        t        dd«      t        dt        d¬«      t        d¬«      gd¬«      g«       y )Nz$
func(x, x) -> str
func(x, y) -> intr„   r®   r¯   r»   r¶   r±   r¾   r‡   s    rD   Ú,test_infer_sig_from_docstring_duplicate_argsz=StubgenUtilSuite.test_infer_sig_from_docstring_duplicate_args�  s4   € ÜÜ$Ð%MÈvÓVÜ˜f¬F¸Ô,<¼fÈ#Ô>NÐ+OÐZ_Ô`Ðaõ	
rq   c                ó0   — t        t        dd«      d «       y )Nz:
            x
              x
             x
            r„   ©r$   r   r‡   s    rD   Ú-test_infer_sig_from_docstring_bad_indentationz>StubgenUtilSuite.test_infer_sig_from_docstring_bad_indentation‡  s!   € ÜÜ$ðð
 óð õ
	
rq   c           
     ó.  — t        t        dd«      t        dt        d¬«      t        d¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      gd¬«      g«       t        t        d	d«      t        dt        d¬«      gd¬«      g«       y )
Nzfunc(*args, **kwargs) -> intr„   r˜   r¯   ú**kwargsr¶   r±   zfunc(*args) -> intzfunc(**kwargs) -> intr¾   r‡   s    rD   Ú)test_infer_sig_from_docstring_args_kwargsz:StubgenUtilSuite.test_infer_sig_from_docstring_args_kwargs”  s’   € ÜÜ$Ð%CÀVÓLäØÜ  gÔ.´¸JÔ0GÐHØ"ôðô		
ô 	Ü$Ð%9¸6ÓBÜ˜f¬F¸Ô,@Ð+AÈEÔRÐSô	
ô
 	Ü$Ð%<¸fÓEÜ˜f¬F¸
Ô,CÐ+DÈuÔUÐVõ	
rq   z6Arg and kwarg signature validation not implemented yet)ÚraisesÚreasonc                óˆ   — t        t        dd«      g «       t        t        dd«      g «       t        t        dd«      g «       y )Nzfunc(*args, *args2) -> intr„   zfunc(**kw, **kw2) -> intzfunc(**kwargs, *args) -> intrÃ   r‡   s    rD   Ú0test_infer_sig_from_docstring_args_kwargs_errorszAStubgenUtilSuite.test_infer_sig_from_docstring_args_kwargs_errorsª  sD   € ô
 	Ô-Ð.JÈFÓSÐUWÔXô 	Ô-Ð.HÈ&ÓQÐSUÔVô 	Ô-Ð.LÈfÓUÐWYÕZrq   c                ó>  — t        t        dd«      t        dt        d¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      t        d¬«      gd¬«      g«       t        t        d	d«      t        dt        d¬«      t        d
¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      t        d¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      t        d¬«      t        d¬«      gd¬«      g«       y )Nzfunc(self, /) -> strr„   r;   r¯   rg   r±   zfunc(self, x, /) -> strr®   zfunc(x, /, y) -> intr»   r¶   zfunc(x, /, *args) -> strr˜   z&func(x, /, *, kwonly, **kwargs) -> strÚkwonlyrÆ   r¾   r‡   s    rD   Ú7test_infer_sig_from_docstring_positional_only_argumentszHStubgenUtilSuite.test_infer_sig_from_docstring_positional_only_arguments·  s  € ÜÜ$Ð%;¸VÓDÜ˜f¬F¸Ô,?Ð+@È5ÔQÐRô	
ô
 	Ü$Ð%>ÀÓGäØ¤v°6Ô':¼FÈÔ<LÐ&MÐX]ôðô	
ô 	Ü$Ð%;¸VÓDÜ˜f¬F¸Ô,<¼fÈ#Ô>NÐ+OÐZ_Ô`Ðaô	
ô
 	Ü$Ð%?ÀÓHäØ¤v°3Ô'7¼ÀWÔ9MÐ&NÐY^ôðô	
ô 	Ü$Ð%MÈvÓVäØÜ  cÔ*¬F¸Ô,AÄ6ÈzÔCZÐ[Ø"ôðõ		
rq   c                óÊ  — t        t        dd«      t        dt        d¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      t        d¬«      gd¬«      g«       t        t        d	d«      t        dt        d¬«      t        d¬«      gd¬«      g«       t        t        d
d«      t        dt        d¬«      t        d¬«      t        d«      gd¬«      g«       y )Nzfunc(*, x) -> strr„   r®   r¯   rg   r±   zfunc(x, *, y) -> strr»   zfunc(*, x, y) -> strz#func(x, *, kwonly, **kwargs) -> strrÍ   rÆ   r¾   r‡   s    rD   Ú4test_infer_sig_from_docstring_keyword_only_argumentszEStubgenUtilSuite.test_infer_sig_from_docstring_keyword_only_argumentsß  sÕ   € ÜÜ$Ð%8¸&ÓAÜ˜f¬F¸Ô,<Ð+=ÈÔNÐOô	
ô
 	Ü$Ð%;¸VÓDÜ˜f¬F¸Ô,<¼fÈ#Ô>NÐ+OÐZ_Ô`Ðaô	
ô
 	Ü$Ð%;¸VÓDÜ˜f¬F¸Ô,<¼fÈ#Ô>NÐ+OÐZ_Ô`Ðaô	
ô
 	Ü$Ð%JÈFÓSäØÜ  cÔ*¬F¸Ô,AÄ6È*ÓCUÐVØ"ôðõ		
rq   c                óš  — t        t        dd«      t        dt        d¬«      t        d¬«      gd¬«      g«       t        t        dd«      t        dt        d¬«      t        d¬«      t        d	¬«      gd¬«      g«       t        t        d
d«      t        dt        d¬«      t        d¬«      t        d	¬«      t        d«      gd¬«      g«       y )Nzfunc(x, /, *, y) -> strr„   r®   r¯   r»   rg   r±   zfunc(x,  /, y,  *, z) -> strÚzz&func(x,  /, y,  *, z, **kwargs) -> strrÆ   r¾   r‡   s    rD   ÚAtest_infer_sig_from_docstring_pos_only_and_keyword_only_argumentszRStubgenUtilSuite.test_infer_sig_from_docstring_pos_only_and_keyword_only_argumentsú  sÄ   € ÜÜ$Ð%>ÀÓGÜ˜f¬F¸Ô,<¼fÈ#Ô>NÐ+OÐZ_Ô`Ðaô	
ô
 	Ü$Ð%CÀVÓLäØÜ  cÔ*¬F¸Ô,<¼fÈ#Ô>NÐOØ"ôðô		
ô 	Ü$Ð%MÈvÓVäØä CÔ(Ü CÔ(Ü CÔ(Ü˜zÓ*ð	ð #ô	ðõ	
rq   c                ód  — t        t        dd«      g «       t        t        dd«      g «       t        t        dd«      g «       t        t        dd«      g «       t        t        dd«      g «       t        t        dd«      g «       t        t        dd«      g «       t        t        d	d«      g «       y )
Nzfunc(/, x) -> strr„   zfunc(x, *) -> strzfunc(x, *, /,  y) -> strzfunc(x, /, /, *,  y) -> strzfunc(x, /, y,  /, *,  z) -> strzfunc(x, /, *, *,  y) -> strzfunc(x, /, *, y, *,  z) -> strzfunc(*args, *, kwonly) -> strrÃ   r‡   s    rD   ÚHtest_infer_sig_from_docstring_pos_only_and_keyword_only_arguments_errorszYStubgenUtilSuite.test_infer_sig_from_docstring_pos_only_and_keyword_only_arguments_errors  s¬   € äÔ-Ð.AÀ6ÓJÈBÔOô 	Ô-Ð.AÀ6ÓJÈBÔOô 	Ô-Ð.HÈ&ÓQÐSUÔVô 	Ô-Ð.KÈVÓTÐVXÔYäÔ-Ð.OÐQWÓXÐZ\Ô]ô 	Ô-Ð.KÈVÓTÐVXÔYäÔ-Ð.NÐPVÓWÐY[Ô\ô 	Ô-Ð.MÈvÓVÐXZÕ[rq   c           	     ó¸   — t        t        d«      t        d¬«      t        d¬«      g«       t        t        d«      t        ddd¬	«      t        d
dd¬	«      g«       y )Nz(*args, **kwargs)r˜   r¯   rÆ   zB(x: Tuple[int, Tuple[str, int], str]=(1, ('a', 2), 'y'), y: int=4)r®   rº   Tr¹   r»   r¶   )r$   r   r	   r‡   s    rD   Ú&test_infer_arg_sig_from_anon_docstringz7StubgenUtilSuite.test_infer_arg_sig_from_anon_docstring2  sZ   € ÜÜ-Ð.AÓBÜ˜Ô!¤6¨zÔ#:Ð;ô	
ô
 	Ü-ØTóô ˜CÐ&EÈtÔTÜ˜C e°TÔ:ðõ		
rq   c                ó¬   — t        t        d«      d«       t        t        d«      d«       t        t        d«      d«       t        t        d«      d «       y )Nzstr: A string.rg   zOptional[int]: An int.zOptional[int]zTuple[int, int]: A tuple.zTuple[int, int]z
str: A string.)r$   r   r‡   s    rD   Ú#test_infer_prop_type_from_docstringz4StubgenUtilSuite.test_infer_prop_type_from_docstringB  sK   € ÜÔ3Ð4DÓEÀuÔMÜÔ3Ð4LÓMÈÔ_ÜÜ*Ð+FÓGÐIZô	
ô 	Ô3Ð4FÓGÈÕNrq   c                ó&   — t        dd«      g k(  sJ ‚y )Nz*fetch_row([maxrows, how]) -- Fetches stuffÚ	fetch_row)r   r‡   s    rD   Ú-test_infer_sig_from_docstring_square_bracketsz>StubgenUtilSuite.test_infer_sig_from_docstring_square_bracketsJ  s    € ä$Ð%QÐS^Ó_Øòð	
ñrq   c                ó2   — d}t        t        |«      |«       y )Nu»   
        áˆ´
        def f(x):  # type: (int) -> int

        def g(x):
            # type: (int) -> int

        def h():

            # type: () int

        x = 1  # type: int
        ©r$   r    )r;   Úgoods     rD   Ú%test_remove_misplaced_type_comments_1z6StubgenUtilSuite.test_remove_misplaced_type_comments_1P  s   € ðˆô 	Ô3°DÓ9¸4Õ@rq   c                ó6   — d}d}t        t        |«      |«       y )Nz¨
        def f(x):
            # type: Callable[[int], int]
            pass

        #  type:  "foo"
        #  type:  'bar'
        x = 1
        # type: int
        z?
        def f(x):

            pass



        x = 1

        rÞ   ©r;   ÚbadÚ	bad_fixeds      rD   Ú%test_remove_misplaced_type_comments_2z6StubgenUtilSuite.test_remove_misplaced_type_comments_2a  ó"   € ð	ˆð	ˆ	ô 	Ô3°CÓ8¸)ÕDrq   c                ó6   — d}d}t        t        |«      |«       y )Nz×
        def f(x):
            """docstring"""
            # type: (int) -> int
            pass

        def g(x):
            """docstring
            """
            # type: (int) -> int
            pass
        z—
        def f(x):
            """docstring"""

            pass

        def g(x):
            """docstring
            """

            pass
        rÞ   râ   s      rD   Ú%test_remove_misplaced_type_comments_3z6StubgenUtilSuite.test_remove_misplaced_type_comments_3x  ó"   € ðˆðˆ	ô 	Ô3°CÓ8¸)ÕDrq   c                ó6   — d}d}t        t        |«      |«       y )Nz×
        def f(x):
            '''docstring'''
            # type: (int) -> int
            pass

        def g(x):
            '''docstring
            '''
            # type: (int) -> int
            pass
        z—
        def f(x):
            '''docstring'''

            pass

        def g(x):
            '''docstring
            '''

            pass
        rÞ   râ   s      rD   Ú%test_remove_misplaced_type_comments_4z6StubgenUtilSuite.test_remove_misplaced_type_comments_4“  ré   rq   c                ó6   — d}d}t        t        |«      |«       y )NzÃ
        def f(x):
            # type: (int, List[Any],
            #        float, bool) -> int
            pass

        def g(x):
            # type: (int, List[Any])
            pass
        z{
        def f(x):

            #        float, bool) -> int
            pass

        def g(x):

            pass
        rÞ   râ   s      rD   Ú%test_remove_misplaced_type_comments_5z6StubgenUtilSuite.test_remove_misplaced_type_comments_5®  ræ   rq   c                ó6   — d}d}t        t        |«      |«       y )Ns×   
        ¿
        def f(x):  # type: (int) -> int

        def g(x):
            # type: (int) -> int
            pass

        def h():
            # type: int
            pass

        x = 1  # type: int
        sÀ   
        ¿
        def f(x):  # type: (int) -> int

        def g(x):
            # type: (int) -> int
            pass

        def h():

            pass

        x = 1  # type: int
        rÞ   )r;   ÚoriginalÚdests      rD   Ú)test_remove_misplaced_type_comments_bytesz:StubgenUtilSuite.test_remove_misplaced_type_comments_bytesÅ  s"   € ðˆðˆô 	Ô3°HÓ=¸tÕDrq   r)   z0Tests building the paths common ancestor on *nixc                óÊ  — t        g «      dk(  sJ ‚t        dg«      dk(  sJ ‚t        dg«      dk(  sJ ‚t        dg«      dk(  sJ ‚t        ddg«      dk(  sJ ‚t        ddg«      dk(  sJ ‚t        d	dg«      dk(  sJ ‚t        d
dg«      dk(  sJ ‚t        d	dg«      dk(  sJ ‚t        d
dg«      dk(  sJ ‚t        ddg«      dk(  sJ ‚t        dg«      dk(  sJ ‚t        dg«      dk(  sJ ‚y )Nú.úx.pyiz./x.pyiúfoo/bar/x.pyizfoo/barzfoo/bar/y.pyiz	foo/y.pyiÚfooz	foo/x.pyizfoo/bar/zar/x.pyizfoo/bar/zar/y.pyiúfoo/bar\x.pyiúfoo\bar/x.pyiúfoo\bar©r   r‡   s    rD   Útest_common_dir_prefix_unixz,StubgenUtilSuite.test_common_dir_prefix_unixæ  s/  € ä  Ó$¨Ò+Ð+Ð+Ü  ' Ó+¨sÒ2Ð2Ð2Ü  ) Ó-°Ò4Ð4Ð4Ü  /Ð!2Ó3°yÒ@Ð@Ð@Ü  /°?Ð!CÓDÈ	ÒQÐQÐQÜ  /°;Ð!?Ó@ÀEÒIÐIÐIÜ  +¨Ð!?Ó@ÀEÒIÐIÐIÜ Ð"5°{Ð!CÓDÈÒMÐMÐMÜ  +Ð/BÐ!CÓDÈÒMÐMÐMÜ Ð"5°Ð!GÓHÈIÒUÐUÐUÜ  /Ð3FÐ!GÓHÈIÒUÐUÐUÜ Ð"2Ð!3Ó4¸Ò=Ð=Ð=Ü Ð"2Ð!3Ó4¸
ÒBÐBÑBrq   z3Tests building the paths common ancestor on Windowsc                óÌ  — t        dg«      dk(  sJ ‚t        dg«      dk(  sJ ‚t        dg«      dk(  sJ ‚t        ddg«      dk(  sJ ‚t        ddg«      dk(  sJ ‚t        d	dg«      dk(  sJ ‚t        d
dg«      dk(  sJ ‚t        d	dg«      dk(  sJ ‚t        d
dg«      dk(  sJ ‚t        ddg«      dk(  sJ ‚t        dg«      dk(  sJ ‚t        dg«      dk(  sJ ‚t        dg«      dk(  sJ ‚y )Nrô   ró   z.\x.pyizfoo\bar\x.pyirù   zfoo\bar\y.pyiz	foo\y.pyirö   z	foo\x.pyizfoo\bar\zar\x.pyizfoo\bar\zar\y.pyir÷   rø   rõ   rú   r‡   s    rD   Útest_common_dir_prefix_winz+StubgenUtilSuite.test_common_dir_prefix_winö  s<  € ô ! ' Ó+¨sÒ2Ð2Ð2Ü  * Ó.°#Ò5Ð5Ð5Ü Ð"2Ð!3Ó4¸
ÒBÐBÐBÜ Ð"2Ð4DÐ!EÓFÈ*ÒTÐTÐTÜ Ð"2°LÐ!AÓBÀeÒKÐKÐKÜ  ,Ð0@Ð!AÓBÀeÒKÐKÐKÜ Ð"6¸Ð!EÓFÈ%ÒOÐOÐOÜ  ,Ð0DÐ!EÓFÈ%ÒOÐOÐOÜ Ð"6Ð8HÐ!IÓJÈjÒXÐXÐXÜ Ð"2Ð4HÐ!IÓJÈjÒXÐXÐXÜ Ð"2Ð!3Ó4¸
ÒBÐBÐBÜ Ð"2Ð!3Ó4¸
ÒBÐBÐBÜ Ð"2Ð!3Ó4¸
ÒBÐBÑBrq   c                óp   — t        ddt        ddt        dd¬«      ¬«      ¬«      }|j                  d	k(  sJ ‚y )
NÚspanglerö   ÚNestedr;   ÚParent)r°   Úself_var)r°   r  Úparent)Úmodule_namer°   Ú
class_infozspangle.Parent.Nested.foo)r   r   Úfullname)r;   Úctxs     rD   Ú$test_function_context_nested_classesz5StubgenUtilSuite.test_function_context_nested_classes  s>   € ÜØ!ØÜ Ø¨´yÀhÐY_Ô7`ôô
ˆð �|‰|Ð:Ò:Ð:Ñ:rq   Nrd   )r�   rg   rb   z tuple[str, list[str], list[str]]re   rf   )-ri   rj   rk   rl   rˆ   r�   r�   r‘   r“   r–   r™   r›   r†   r¢   r¦   r¬   r¿   rÁ   rÄ   rÇ   ÚpytestÚmarkÚxfailÚAssertionErrorrË   rÎ   rÐ   rÓ   rÕ   r×   rÙ   rÜ   rà   rå   rè   rë   rí   rñ   rm   rn   rR   ro   rû   rý   r  r€   rq   rD   r‚   r‚   —   s>  „ Ù3ó@óRóZó
[ó
Ró
ó
bódó3óXó
ó
óa
óF
ó
ó
ð, ‡[�[×ÑØÐ&^ð ó ò[óð[ó&
óP
ó6
óB\ó.
ó Oó
óAó"Eó.Eó6Eó6Eó.EðB €X‡_�_�S—\‘\ WÑ,Ð.`ÓaòCó bðCð €X‡_�_Ø�‰˜ÑÐ!VóòCóðCô;rq   r‚   c                  ó   — e Zd Zdd„Zdd„Zy)ÚStubgenHelpersSuitec                óÔ   — t        d«      rJ ‚t        d«      rJ ‚t        d«      rJ ‚t        d«      rJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚y )	Nz
foo/bar.pyzfoo.pyzfoo/xvendor/bar.pyzfoo/vendorx/bar.pyzfoo/vendor/bar.pyzfoo/vendored/bar.pyzfoo/vendored/bar/thing.pyz
foo/six.py)r   r‡   s    rD   Útest_is_blacklisted_pathz,StubgenHelpersSuite.test_is_blacklisted_path  sw   € Ü& |Ô4Ð4Ð4Ü& xÔ0Ð0Ð0Ü&Ð';Ô<Ð<Ð<Ü&Ð';Ô<Ð<Ð<Ü"Ð#6Ô7Ð7Ð7Ü"Ð#8Ô9Ð9Ð9Ü"Ð#>Ô?Ð?Ð?Ü" <Ô0Ð0Ñ0rq   c                ó  — t        d«      rJ ‚t        d«      rJ ‚t        d«      rJ ‚t        d«      rJ ‚t        d«      rJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d	«      sJ ‚t        d
«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚y )Nrö   r¼   zfoo.bartestzfoo.bartestszfoo.testbarzfoo.testzfoo.test.fooz	foo.testszfoo.tests.foozfoo.testing.foozfoo.SelfTest.foozfoo.test_barzfoo.bar_testszfoo.testingzfoo.conftestzfoo.bar_test_utilzfoo.bar_test_utilszfoo.bar_test_basez	foo.setupzfoo.__main__)r   r‡   s    rD   Útest_is_non_library_modulez.StubgenHelpersSuite.test_is_non_library_module  s!  € Ü(¨Ô/Ð/Ð/Ü(¨Ô3Ð3Ð3ô )¨Ô7Ð7Ð7Ü(¨Ô8Ð8Ð8Ü(¨Ô7Ð7Ð7ä$ ZÔ0Ð0Ð0Ü$ ^Ô4Ð4Ð4Ü$ [Ô1Ð1Ð1Ü$ _Ô5Ð5Ð5Ü$Ð%6Ô7Ð7Ð7Ü$Ð%7Ô8Ð8Ð8ä$ ^Ô4Ð4Ð4Ü$ _Ô5Ð5Ð5Ü$ ]Ô3Ð3Ð3Ü$ ^Ô4Ð4Ð4Ü$Ð%8Ô9Ð9Ð9Ü$Ð%9Ô:Ð:Ð:Ü$Ð%8Ô9Ð9Ð9ä$ [Ô1Ð1Ð1ä$ ^Ô4Ð4Ñ4rq   Nrd   )ri   rj   rk   r  r  r€   rq   rD   r  r    s   „ ó1ô5rq   r  c                  óŒ   — e Zd ZdZdZdZdgZ ej                  e	j                  dk(  d«      dd„«       Zdd„Zdd	„Zdd
„Zdd„Zy)ÚStubgenPythonSuitea'  Data-driven end-to-end test cases that generate stub files.

    You can use these magic test case name suffixes:

    *_semanal
        Run semantic analysis (slow as this uses real stubs -- only use
        when necessary)
    *_import
        Import module and perform runtime introspection (in the current
        process!)

    You can use these magic comments:

    # flags: --some-stubgen-option ...
        Specify custom stubgen options

    # modules: module1 module2 ...
        Specify which modules to output (by default only 'main')
    Tró   zstubgen.testr)   r*   c                ód   — t        «       5  | j                  |«       d d d «       y # 1 sw Y   y xY wr_   )r&   Úrun_case_inner)r;   Útestcases     rD   Úrun_casezStubgenPythonSuite.run_caseU  s+   € äÓ!ñ 	*Ø×Ñ Ô)÷	*÷ 	*ñ 	*ús   ‹&¦/c           	     óT  — g }g }dj                  |j                  «      }|j                  d|fgz   D ]Ž  \  }}|dd j                  dd«      }|j	                  d«      r|j                  d«      \  }}}|j                  |«       d|vr|j                  d	|g«       t        |d
«      5 }	|	j                  |«       d d d «       Œ� | j                  ||«      }
t        j                  |
j                  k  rt        j                  «        | j!                  |«      }d}	 	 |j"                  j	                  d«      rd|
_        nD|j"                  j	                  d«      sd|
_        |j"                  j	                  d«      sd|
_        t+        |
«       g }|D ].  }t-        ||«      }| j/                  ||t1        |«      dkD  ¬«       Œ0 	 t7        |j8                  |d|j:                  › d|j<                  › d�«       |D ]&  }|t        j>                  v sŒt        j>                  |= Œ( tA        jB                  |«       y # 1 sw Y   �ŒxY w# t2        $ r}|j4                  }Y d }~Œšd }~ww xY w# |D ]&  }|t        j>                  v sŒt        j>                  |= Œ( tA        jB                  |«       w xY w)Nú
z	./main.pyé   éýÿÿÿú/ró   z	.__init__z-p rM   rY   ÚoutÚ_inspectTÚ_importÚ_semanalé   )ÚheaderzInvalid output (z, line ú))"r9   ÚinputrC   ÚreplaceÚendswithÚ
rpartitionÚappendÚextendrZ   r[   Úparse_flagsrR   Úversion_infoÚ	pyversionr	  ÚskipÚparse_modulesr°   ÚinspectÚ	no_importÚ
parse_onlyr   Úmodule_to_pathÚadd_fileÚlenr   Úmessagesr%   Úoutputr\   ÚlineÚmodulesÚshutilÚrmtree)r;   r  ÚextraÚmodsÚsourcer\   rH   rB   Ú_r]   Úoptionsr9  Úout_dirÚaÚmoduleÚfnamÚes                    rD   r  z!StubgenPythonSuite.run_case_innerZ  si  € ØˆØˆØ—‘˜8Ÿ>™>Ó*ˆØ%Ÿ^™^°¸VÐ/DÐ.EÑEò 		!‰MˆD�'à�q˜�*×$Ñ$ S¨#Ó.ˆCØ�|‰|˜KÔ(ØŸN™N¨3Ó/‘	��Q˜Ø�K‰K˜ÔØ˜FÑ"Ø—‘˜d C˜[Ô)Ü�d˜C“ð ! AØ—‘˜Ô ÷!ð !ð		!ð ×"Ñ" 6¨5Ó1ˆÜ×Ñ˜g×/Ñ/Ò/Ü�K‰KŒMØ×$Ñ$ VÓ,ˆØˆð	#ðØ—=‘=×)Ñ)¨*Ô5Ø&*�G•Oà#Ÿ=™=×1Ñ1°)Ô<Ø,0˜Ô)Ø#Ÿ=™=×1Ñ1°*Ô=Ø-1˜Ô*ä˜wÔ'Ø!�Ø%ò D�FÜ)¨'°6Ó:�DØ—M‘M $¨´#°g³,ÀÑ2B�MÕCñDô
 'Ø—‘ Ð&6°x·}±}°oÀWÈXÏ]É]ÈOÐ[\Ð$]ôð ò )�Øœ#Ÿ+™+Ò%ÜŸ™ CÑ(ð)ô �M‰M˜'Õ"÷A!ñ !ûô.  ò Ø—J‘J•ûðûð ò )�Øœ#Ÿ+™+Ò%ÜŸ™ CÑ(ð)ô �M‰M˜'Õ"úsC   Â'H6ÄB'I Ç3I% È6I 	É	I"ÉIÉI% ÉI"É"I% É%J'É>)J'c                óÂ  — t        j                  d|t         j                  ¬«      }d }|r^|j                  d«      j	                  «       }t        |«      D ]0  \  }}|j                  d«      sŒ|j	                  dd«      d   }||=  n ng }t        ||z   «      }|r0|j	                  dd«      \  }	}
t        |	«      t        |
«      f|_	        d|vr	d|_
        |S d|_        |S )	Nz# flags: (.*)$©Úflagsr"  z--python-version=ú=ró   z	--verboseT)ÚreÚsearchÚ	MULTILINEÚgroupÚsplitÚ	enumerateÚ
startswithr   r¶   r-  ÚquietÚverbose)r;   Úprogram_textr<  rH  r-  Ú	flag_listÚiÚflagr@  ÚmajorÚminors              rD   r+  zStubgenPythonSuite.parse_flagsˆ  sã   € Ü—	‘	Ð*¨LÄÇÁÔMˆØˆ	ÙØŸ™ A›×,Ñ,Ó.ˆIÜ$ YÓ/ò ‘��4Ø—?‘?Ð#6Õ7Ø $§
¡
¨3°Ó 2°1Ñ 5�IØ! !˜Ùñ	ð ˆIÜ 	¨EÑ 1Ó2ˆÙð %Ÿ?™?¨3°Ó2‰LˆE�5Ü!$ U£¬S°«ZÐ 8ˆGÔØ˜iÑ'Ø ˆGŒMð ˆð #ˆGŒOØˆrq   c                ó–   — t        j                  d|t         j                  ¬«      }|r|j                  d«      j	                  «       S dgS )Nz# modules: (.*)$rG  r"  Úmain)rJ  rK  rL  rM  rN  )r;   rS  r9  s      rD   r/  z StubgenPythonSuite.parse_modules   s;   € Ü—)‘)Ð.°ÄBÇLÁLÔQˆÙØ—=‘= Ó#×)Ñ)Ó+Ð+à�8ˆOrq   c                ó\  — t         j                  j                  |«      s%|j                  d|j	                  dd«      z  «       y |r|j                  d|dd  › �«       t        |d¬«      5 }|j                  |j                  «       j                  «       «       d d d «       y # 1 sw Y   y xY w)Nz<%s was not generated>ú\r  z# é   Úutf8)Úencoding)	r1   r8   Úexistsr)  r&  rZ   r*  ÚreadÚ
splitlines)r;   r8   rb   r#  r\   s        rD   r4  zStubgenPythonSuite.add_file§  s‰   € Ü�w‰w�~‰~˜dÔ#Ø�M‰MÐ2°T·\±\À$ÈÓ5LÑLÔMØÙØ�M‰M˜B˜t A B˜x˜j˜/Ô*Ü�$ Ô(ð 	4¨DØ�M‰M˜$Ÿ)™)›+×0Ñ0Ó2Ô3÷	4÷ 	4ñ 	4ús   Á+.B"Â"B+N)r  r"   re   rf   )rS  rg   r<  ú	list[str]re   r   )rS  rg   re   rc  )r8   rg   rb   rc  r#  Úboolre   rf   )ri   rj   rk   rl   Úrequired_out_sectionÚ	base_pathrC   rm   rn   rR   ro   r  r  r+  r/  r4  r€   rq   rD   r  r  <  s[   „ ñð(  ÐØ€IØÐ€Eà€X‡_�_�S—\‘\ WÑ,Ð.IÓJò*ó Kð*ó,#ó\ó0ô4rq   r  r;   r¯   c                  ó   — e Zd Zy)ÚTestBaseClassN©ri   rj   rk   r€   rq   rD   rh  rh  ´  ó   „ Ørq   rh  c                  ó   — e Zd Zy)Ú	TestClassNri  r€   rq   rD   rl  rl  ¸  rj  rq   rl  c                  ó8  — e Zd 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d(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d(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d(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&d(d%„Z'd(d&„Z(y'))ÚStubgencSuitezoUnit tests for stub generation from C modules using introspection.

    Note that these don't cover a lot!
    c                ób   — t        t        d«      t        g«       t        t        d«      d«       y )NÚ__hash__r¶   )r$   r   Úself_argr   r‡   s    rD   Útest_infer_hash_sigz!StubgencSuite.test_infer_hash_sigÂ  s$   € ÜÔ(¨Ó4´x°jÔAÜÔ*¨:Ó6¸Õ>rq   c                óN   — t        t        d«      t        t        d¬«      g«       y )NÚ__getitem__Úindexr¯   ©r$   r   rq  r	   r‡   s    rD   Útest_infer_getitem_sigz$StubgencSuite.test_infer_getitem_sigÆ  s   € ÜÔ(¨Ó7¼(ÄFÐPWÔDXÐ9YÕZrq   c                óŽ   — t        t        d«      t        t        d¬«      t        d¬«      g«       t        t	        d«      d«       y )NÚ__setitem__ru  r¯   Úobjectrf   )r$   r   rq  r	   r   r‡   s    rD   Útest_infer_setitem_sigz$StubgencSuite.test_infer_setitem_sigÉ  s8   € ÜÜ Ó.Ü”v 7Ô+¬V¸Ô-BÐCô	
ô 	Ô*¨=Ó9¸6ÕBrq   c           	     óf   — dD ],  }t        t        d|› d�«      t        t        dd¬«      g«       Œ. y )N)ÚeqÚneÚltÚleÚgtÚgeÚ__Úotherrz  r·   rv  ©r;   Úops     rD   Útest_infer_eq_op_sigz"StubgencSuite.test_infer_eq_op_sigÐ  s8   € Ø6ò 	ˆBÜÜ# b¨¨¨B KÓ0´8¼VÈÐW_Ô=`Ð2aõñ	rq   c                ód   — dD ]+  }t        t        d|› d�«      t        t        d¬«      g«       Œ- y )N)ÚaddÚraddÚsubÚrsubÚmulÚrmulrƒ  r„  r¯   rv  r…  s     rD   Útest_infer_binary_op_sigz&StubgencSuite.test_infer_binary_op_sigÖ  s6   € Ø?ò 	]ˆBÜÔ,¨r°"°°R¨[Ó9¼HÄfÐRYÔFZÐ;[Õ\ñ	]rq   c                óD   — dD ]  }t        t        d|› d�«      d«       Œ y )N)r}  r~  r  r€  r�  r‚  Úcontainsrƒ  rd  ©r$   r   r…  s     rD   Útest_infer_equality_op_sigz(StubgencSuite.test_infer_equality_op_sigÚ  s+   € ØBò 	EˆBÜÔ.°°B°4°r¨{Ó;¸VÕDñ	Erq   c                óN   — dD ]   }t        t        d|› d�«      t        g«       Œ" y )N)ÚnegÚposrƒ  )r$   r   rq  r…  s     rD   Útest_infer_unary_op_sigz%StubgencSuite.test_infer_unary_op_sigÞ  s-   € Ø ò 	GˆBÜÔ,¨r°"°°R¨[Ó9¼H¸:ÕFñ	Grq   c                óD   — dD ]  }t        t        d|› d�«      |«       Œ y )N)Úfloatrd  Úbytesr¶   rƒ  r’  r…  s     rD   Útest_infer_cast_sigz!StubgencSuite.test_infer_cast_sigâ  s+   € Ø3ò 	AˆBÜÔ.°°B°4°r¨{Ó;¸RÕ@ñ	Arq   c                ó  — g }t        dd«      }t        |j                  |j                  g|¬«      }|j                  dt        |«       t        |j                  «       j                  «       g «       t        |d   d«       y )NrC  rO   ©Úknown_modulesrC  Úaliasr   zclass alias:)r   r   ri   Úgenerate_class_stubrz  r$   Úget_importsrb  ©r;   r7  rB   Úgens       rD   Ú,test_generate_class_stub_no_crash_for_objectz:StubgencSuite.test_generate_class_stub_no_crash_for_objectæ  sf   € ØˆÜ˜ 2Ó&ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆà×Ñ ¬°Ô8Ü�S—_‘_Ó&×1Ñ1Ó3°RÔ8Ü�V˜A‘Y Õ/rq   c                ó  —  G d„ d«      }g }t        dd«      }t        |j                  |j                  g|¬«      }|j                  d||«       t	        |j                  «       j                  «       dg«       t	        |dd	g«       y )
Nc                  ó   — e Zd ZdZy)ú]StubgencSuite.test_generate_class_stub_variable_type_annotation.<locals>.TestClassVariableClsr"  N)ri   rj   rk   r®   r€   rq   rD   ÚTestClassVariableClsr§  ñ  s   „ Ø‰Arq   r¨  rC  rO   r�  ÚCzfrom typing import ClassVarzclass C:z    x: ClassVar[int] = ...)r   r   ri   r   r$   r¡  rb  )r;   r¨  r7  rB   r£  s        rD   Ú1test_generate_class_stub_variable_type_annotationz?StubgencSuite.test_generate_class_stub_variable_type_annotationï  sy   € ÷	ñ 	ð ˆÜ˜ 2Ó&ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×Ñ Ð%9¸6ÔBÜ�S—_‘_Ó&×1Ñ1Ó3Ð6SÐ5TÔUÜ�V˜jÐ*FÐGÕHrq   c                ó$  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }d|_        |j                  d|j                  |t        d|dt        |dd «      ¬	«      ¬
«       t        |dg«       y )Nc                  ó   — e Zd Zddd„Zy)úBStubgencSuite.test_generate_c_type_none_default.<locals>.TestClassNc                 ó   — y r_   r€   )r;   Úarg0Úarg1s      rD   ÚtestzGStubgencSuite.test_generate_c_type_none_default.<locals>.TestClass.testý  ó   € Ørq   )r"  Nrd   ©ri   rj   rk   r±  r€   rq   rD   rl  r­  ü  s   „ õrq   rl  rO   r�  Fr±  r;   rl   ©r  Úclsr°   Ú	docstring©r7  r  zKdef test(self, arg0: int = ..., arg1: Incomplete | None = ...) -> None: ...©
r   rj   r   ri   Úis_c_moduleÚgenerate_function_stubr±  r   Úgetattrr$   ©r;   rl  r7  rB   r£  s        rD   Ú!test_generate_c_type_none_defaultz/StubgencSuite.test_generate_c_type_none_defaultû  s•   € ÷	ñ 	ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØˆŒØ×"Ñ"ØØ�N‰NØÜ ØØØ Ü! )¨Y¸Ó=ô	ð	 	#ô 
	
ô 	ØÐbÐcõ	
rq   c                ó$  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }d|_        |j                  d|j                  |t        d|dt        |dd «      ¬	«      ¬
«       t        |dg«       y )Nc                  ó(   — e Zd Zddœ	 	 	 	 	 	 	 dd„Zy)úPStubgencSuite.test_non_c_generate_signature_with_kw_only_args.<locals>.TestClassé   )Úkeyword_only_with_defaultc                ó   — y r_   r€   )r;   r¯  Úkeyword_onlyrÂ  s       rD   r±  zUStubgencSuite.test_non_c_generate_signature_with_kw_only_args.<locals>.TestClass.test  s   € ð rq   N)r¯  rg   rÄ  rg   rÂ  r¶   re   rf   r³  r€   rq   rD   rl  rÀ    s*   „ àXYñØðØ25ðØRUðàôrq   rl  rO   r�  Fr±  r;   rl   r´  r·  zbdef test(self, arg0: str, *, keyword_only: str, keyword_only_with_default: int = ...) -> None: ...r¸  r¼  s        rD   Ú/test_non_c_generate_signature_with_kw_only_argsz=StubgencSuite.test_non_c_generate_signature_with_kw_only_args  s—   € ÷	ñ 	ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØˆŒØ×"Ñ"ØØ�N‰NØÜ ØØØ Ü! )¨Y¸Ó=ô	ð	 	#ô 
	
ô 	Øàtðõ	
rq   c                ó  —  G d„ dt         «      }g }t        d«      }t        |j                  |j                  g|¬«      }|j	                  d||«       t        |dg«       t        |j                  «       j                  «       g «       y )Nc                  ó   — e Zd Zy)úAStubgencSuite.test_generate_c_type_inheritance.<locals>.TestClassNri  r€   rq   rD   rl  rÈ  1  ó   „ Ørq   rl  zmodule, r�  r©  zclass C(KeyError): ...)ÚKeyErrorr   r   ri   r   r$   r¡  rb  r¼  s        rD   Ú test_generate_c_type_inheritancez.StubgencSuite.test_generate_c_type_inheritance0  sr   € ô	œô 	ð ˆÜ˜Ó$ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×Ñ  Y°Ô7Ü�VÐ6Ð7Ô8Ü�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c                ó  — g }t        t        j                  d«      }t        |j                  |j                  g|¬«      }|j                  dt        |«       t        |dg«       t        |j                  «       j                  «       g «       y )NrO   r�  r©  zclass C(TestBaseClass): ...)
r   rh  rj   r   ri   r   rl  r$   r¡  rb  r¢  s       rD   Ú,test_generate_c_type_inheritance_same_modulez:StubgencSuite.test_generate_c_type_inheritance_same_module;  sl   € ØˆÜœ×1Ñ1°2Ó6ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×Ñ ¤Y°Ô7Ü�VÐ;Ð<Ô=Ü�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c                ó*  — dd l } G d„ d|j                  «      }g }t        dd«      }t        |j                  |j                  g|¬«      }|j                  d||«       t        |dg«       t        |j                  «       j                  «       d	g«       y )
Nr   c                  ó   — e Zd Zy)úNStubgencSuite.test_generate_c_type_inheritance_other_module.<locals>.TestClassNri  r€   rq   rD   rl  rÐ  F  rÉ  rq   rl  rC  rO   r�  r©  zclass C(argparse.Action): ...úimport argparse)	ÚargparseÚActionr   r   ri   r   r$   r¡  rb  )r;   rÒ  rl  r7  rB   r£  s         rD   Ú-test_generate_c_type_inheritance_other_modulez;StubgencSuite.test_generate_c_type_inheritance_other_moduleC  s   € Ûô	˜Ÿ™ô 	ð ˆÜ˜ 2Ó&ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×Ñ  Y°Ô7Ü�VÐ=Ð>Ô?Ü�S—_‘_Ó&×1Ñ1Ó3Ð6GÐ5HÕIrq   c                ó  —  G d„ dt         «      }g }t        dd«      }t        |j                  |j                  g|¬«      }|j	                  d||«       t        |dg«       t        |j                  «       j                  «       g «       y )Nc                  ó   — e Zd Zy)úNStubgencSuite.test_generate_c_type_inheritance_builtin_type.<locals>.TestClassNri  r€   rq   rD   rl  r×  Q  rÉ  rq   rl  rC  rO   r�  r©  zclass C(type): ...)r¸   r   r   ri   r   r$   r¡  rb  r¼  s        rD   Ú-test_generate_c_type_inheritance_builtin_typez;StubgencSuite.test_generate_c_type_inheritance_builtin_typeP  st   € ô	œô 	ð ˆÜ˜ 2Ó&ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×Ñ  Y°Ô7Ü�VÐ2Ð3Ô4Ü�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c           
     óN  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |d	g«       t        |j                  «       j                  «       g «       y )
Nc                  ó   — e Zd Zdd„Zy)úDStubgencSuite.test_generate_c_type_with_docstring.<locals>.TestClassc                 ó   — y)zB
                test(self: TestClass, arg0: int)
                Nr€   ©r;   r¯  s     rD   r±  zIStubgencSuite.test_generate_c_type_with_docstring.<locals>.TestClass.test]  ó   � rq   N©r¯  rg   re   rf   r³  r€   rq   rD   rl  rÛ  \  ó   „ ôrq   rl  rO   r�  r±  r;   ©r  rµ  r°   r·  ú%def test(self, arg0: int) -> Any: ...©
r   rj   r   ri   rº  r±  r   r$   r¡  rb  r¼  s        rD   Ú#test_generate_c_type_with_docstringz1StubgencSuite.test_generate_c_type_with_docstring[  ó”   € ÷	ñ 	ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ�N‰NØÜ ¨&°iÀkÔRð	 	#ô 	
ô 	�VÐEÐFÔGÜ�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c           
     óN  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |d	g«       t        |j                  «       j                  «       g «       y )
Nc                  ó   — e Zd Zdd„Zy)úPStubgencSuite.test_generate_c_type_with_docstring_no_self_arg.<locals>.TestClassc                 ó   — y)z1
                test(arg0: int)
                Nr€   rÝ  s     rD   r±  zUStubgencSuite.test_generate_c_type_with_docstring_no_self_arg.<locals>.TestClass.testp  rÞ  rq   Nrß  r³  r€   rq   rD   rl  rè  o  rà  rq   rl  rO   r�  r±  r;   rá  r·  râ  rã  r¼  s        rD   Ú/test_generate_c_type_with_docstring_no_self_argz=StubgencSuite.test_generate_c_type_with_docstring_no_self_argn  rå  rq   c           
     óP  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |d	d
g«       t        |j                  «       j                  «       g «       y )Nc                  ó   — e Zd Zedd„«       Zy)úAStubgencSuite.test_generate_c_type_classmethod.<locals>.TestClassc                 ó   — y r_   r€   ©rµ  r¯  s     rD   r±  zFStubgencSuite.test_generate_c_type_classmethod.<locals>.TestClass.testƒ  s   € àrq   Nrß  ©ri   rj   rk   Úclassmethodr±  r€   rq   rD   rl  rí  ‚  s   „ Øòó ñrq   rl  rO   r�  r±  rµ  rá  r·  ú@classmethodz#def test(cls, *args, **kwargs): ...rã  r¼  s        rD   Ú test_generate_c_type_classmethodz.StubgencSuite.test_generate_c_type_classmethod�  s–   € ÷	ñ 	ð
 ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ�N‰NØÜ ¨%°YÀ[ÔQð	 	#ô 	
ô 	�V˜nÐ.SÐTÔUÜ�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c           
     óR  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |g d	¢«       t        |j                  «       j                  «       d
g«       y )Nc                  ó   — e Zd Zedd„«       Zy)úPStubgencSuite.test_generate_c_type_classmethod_with_overloads.<locals>.TestClassc                 ó   — y)z[
                test(cls, arg0: str)
                test(cls, arg0: int)
                Nr€   rï  s     rD   r±  zUStubgencSuite.test_generate_c_type_classmethod_with_overloads.<locals>.TestClass.test•  s   € ð rq   Nrß  rð  r€   rq   rD   rl  rö  ”  s   „ Øòó ñrq   rl  rO   r�  r±  rµ  rá  r·  )ú	@overloadrò  z$def test(cls, arg0: str) -> Any: ...rø  rò  z$def test(cls, arg0: int) -> Any: ...úfrom typing import overloadrã  r¼  s        rD   Ú/test_generate_c_type_classmethod_with_overloadsz=StubgencSuite.test_generate_c_type_classmethod_with_overloads“  sœ   € ÷	ñ 	ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ�N‰NØÜ ¨%°YÀ[ÔQð	 	#ô 	
ô 	Øòô
	
ô 	�S—_‘_Ó&×1Ñ1Ó3Ð6SÐ5TÕUrq   c           
     óN  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |d	g«       t        |j                  «       j                  «       g «       y )
Nc                  ó   — e Zd Zddd„Zy)úRStubgencSuite.test_generate_c_type_with_docstring_empty_default.<locals>.TestClassc                 ó   — y)zG
                test(self: TestClass, arg0: str = "")
                Nr€   rÝ  s     rD   r±  zWStubgencSuite.test_generate_c_type_with_docstring_empty_default.<locals>.TestClass.testµ  rÞ  rq   N)rO   rß  r³  r€   rq   rD   rl  rý  ´  s   „ õrq   rl  rO   r�  r±  r;   rá  r·  z+def test(self, arg0: str = ...) -> Any: ...rã  r¼  s        rD   Ú1test_generate_c_type_with_docstring_empty_defaultz?StubgencSuite.test_generate_c_type_with_docstring_empty_default³  ó”   € ÷	ñ 	ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ�N‰NØÜ ¨&°iÀkÔRð	 	#ô 	
ô 	�VÐKÐLÔMÜ�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c                ó  — d	d„}g }t        | j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d||¬«       t        |dg«       t        |j                  «       j                  «       dg«       y)
zQTest that if argument references type from other module, module will be imported.c                 ó   — y)z5
            test(arg0: argparse.Action)
            Nr€   ©r¯  s    rD   r±  zEStubgencSuite.test_generate_c_function_other_module_arg.<locals>.testË  rÞ  rq   rO   r�  r±  ©r7  z+def test(arg0: argparse.Action) -> Any: ...rÑ  Nrß  ©r   rj   r   ri   rº  r$   r¡  rb  ©r;   r±  r7  rB   r£  s        rD   Ú)test_generate_c_function_other_module_argz7StubgencSuite.test_generate_c_function_other_module_argÆ  sx   € ó
	ð
 ˆÜ˜Ÿ™¨"Ó-ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ" 6¨4¸Ð"Ô?Ü�VÐKÐLÔMÜ�S—_‘_Ó&×1Ñ1Ó3Ð6GÐ5HÕIrq   c                ó   — d	d„}g }t        dd«      }t        |j                  |j                  g|¬«      }|j                  d||¬«       t	        |dg«       t	        |j                  «       j                  «       g «       y)
zµTest that if annotation references type from same module but using full path, no module
        will be imported, and type specification will be striped to local reference.
        c                 ó   — y©zH
            test(arg0: argparse.Action) -> argparse.Action
            Nr€   r  s    rD   r±  z@StubgencSuite.test_generate_c_function_same_module.<locals>.testÞ  rÞ  rq   rÒ  rO   r�  r±  r  z%def test(arg0: Action) -> Action: ...Nrß  ©r   r   ri   rº  r$   r¡  rb  r  s        rD   Ú$test_generate_c_function_same_modulez2StubgencSuite.test_generate_c_function_same_module×  sp   € ó	ð
 ˆÜ˜ RÓ(ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ" 6¨4¸Ð"Ô?Ü�VÐEÐFÔGÜ�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c                ó  — d	d„}g }t        | j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d||¬«       t        |dg«       t        |j                  «       j                  «       dg«       y)
zSTest that if annotation references type from other module, module will be imported.c                 ó   — yr
  r€   r  s    rD   r±  zAStubgencSuite.test_generate_c_function_other_module.<locals>.testí  rÞ  rq   rO   r�  r±  r  z7def test(arg0: argparse.Action) -> argparse.Action: ...rÑ  Nrß  r  r  s        rD   Ú%test_generate_c_function_other_modulez3StubgencSuite.test_generate_c_function_other_moduleê  sx   € ó	ð
 ˆÜ˜Ÿ™¨"Ó-ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ" 6¨4¸Ð"Ô?Ü�VÐWÐXÔYÜ�S—_‘_Ó&×1Ñ1Ó3Ð6GÐ5HÕIrq   c                ó   — d	d„}g }t        dd«      }t        |j                  |j                  g|¬«      }|j                  d||¬«       t	        |dg«       t	        |j                  «       j                  «       g «       y)
ú¶Test that if annotation references type from same module but using full path, no module
        will be imported, and type specification will be stripped to local reference.
        c                 ó   — y)zT
            test(arg0: list[argparse.Action]) -> list[argparse.Action]
            Nr€   r  s    rD   r±  zGStubgencSuite.test_generate_c_function_same_module_nested.<locals>.test   rÞ  rq   rÒ  rO   r�  r±  r  z1def test(arg0: list[Action]) -> list[Action]: ...Nrß  r  r  s        rD   Ú+test_generate_c_function_same_module_nestedz9StubgencSuite.test_generate_c_function_same_module_nestedù  sp   € ó	ð
 ˆÜ˜ RÓ(ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ" 6¨4¸Ð"Ô?Ü�VÐQÐRÔSÜ�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c                ó   — d	d„}g }t        dd«      }t        |j                  |j                  g|¬«      }|j                  d||¬«       t	        |dg«       t	        |j                  «       j                  «       g «       y)
r  c                 ó   — y)zj
            test(arg0: Union[argparse.Action, NoneType]) -> Tuple[argparse.Action, NoneType]
            Nr€   r  s    rD   r±  zIStubgencSuite.test_generate_c_function_same_module_compound.<locals>.test  rÞ  rq   rÒ  rO   r�  r±  r  z?def test(arg0: Union[Action, None]) -> Tuple[Action, None]: ...Nrß  r  r  s        rD   Ú-test_generate_c_function_same_module_compoundz;StubgencSuite.test_generate_c_function_same_module_compound  sp   € ó	ð
 ˆÜ˜ RÓ(ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ" 6¨4¸Ð"Ô?Ü�VÐ_Ð`ÔaÜ�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c                ó  — dd„}g }t        | j                  d«      }t        |j                  g d¢|¬«      }|j	                  d||¬«       t        |dg«       t        |j                  «       j                  «       dd	g«       y
)zšTest that if annotation references type from other module, module will be imported,
        and the import will be restricted to one of the known modules.c                 ó   — y)zC
            test(arg0: foo.bar.Action) -> other.Thing
            Nr€   r  s    rD   r±  zHStubgencSuite.test_generate_c_function_other_module_nested.<locals>.test#  rÞ  rq   rO   )rö   zfoo.spangleÚbarr�  r±  r  z2def test(arg0: foo.bar.Action) -> other.Thing: ...z
import foozimport otherNrß  r  r  s        rD   Ú,test_generate_c_function_other_module_nestedz:StubgencSuite.test_generate_c_function_other_module_nested  sx   € ó	ð
 ˆÜ˜Ÿ™¨"Ó-ˆÜ%Ø�L‰LÒ(EÈcô
ˆð 	×"Ñ" 6¨4¸Ð"Ô?Ü�VÐRÐSÔTÜ�S—_‘_Ó&×1Ñ1Ó3°lÀNÐ5SÕTrq   c                ó6  — dd„}t        d„ «      |_        g }t        | j                  d«      }t	        |j
                  |j
                  g|¬«      }|j                  d||¬«       t        |dg«       t        |j                  «       j                  «       g «       y )	Nc                 ó   — y r_   r€   r  s    rD   r±  zSStubgencSuite.test_generate_c_function_no_crash_for_non_str_docstring.<locals>.test2  rÞ  rq   c                 ó   — y)Nztest(arg0: str) -> Noner€   r‡   s    rD   ú<lambda>zWStubgencSuite.test_generate_c_function_no_crash_for_non_str_docstring.<locals>.<lambda>4  rÞ  rq   rO   r�  r±  r  zdef test(*args, **kwargs): ...rß  )
Úpropertyrl   r   rj   r   ri   rº  r$   r¡  rb  r  s        rD   Ú7test_generate_c_function_no_crash_for_non_str_docstringzEStubgencSuite.test_generate_c_function_no_crash_for_non_str_docstring1  s}   € Û(äÑ FÓGˆŒàˆÜ˜Ÿ™¨"Ó-ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ" 6¨4¸Ð"Ô?Ü�VÐ>Ð?Ô@Ü�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c                ó  —  G d„ d«      }g }g }t        dd«      }t        |j                  |j                  g|¬«      }|j                  d|j                  d   |j
                  g ||«       t        |g «       t        |ddg«       y	)
z>Signatures included by PyBind11 inside property.fget are read.c                  ó(   — e Zd Zdd„Z eed¬«      Zy)úGStubgencSuite.test_generate_c_property_with_pybind11.<locals>.TestClassc                 ó   — y)z:
                (self: TestClass) -> str
                Nr€   r‡   s    rD   Úget_attributezUStubgencSuite.test_generate_c_property_with_pybind11.<locals>.TestClass.get_attributeA  rÞ  rq   rO   )ÚdocNrd   )ri   rj   rk   r%  r  Ú	attributer€   rq   rD   rl  r#  @  s   „ óñ
 ! °BÔ7‰Irq   rl  rC  rO   r�  r'  z	@propertyzdef attribute(self) -> str: ...N©r   r   ri   Úgenerate_property_stubÚ__dict__r'  r$   ©r;   rl  Úreadwrite_propertiesÚreadonly_propertiesrB   r£  s         rD   Ú&test_generate_c_property_with_pybind11z4StubgencSuite.test_generate_c_property_with_pybind11=  sŽ   € ÷	8ñ 	8ð +-ÐØ)+ÐÜ˜ 2Ó&ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ×Ñ˜{Ñ+Ø×ÑØØ Øô	
ô 	Ð)¨2Ô.ÜÐ(¨;Ð8YÐ*ZÕ[rq   c                ó
  —  G d„ d«      }g }g }t        dd«      }t        |j                  |j                  g|¬«      }|j                  d|j                  d   |j
                  g ||«       t        |dg«       t        |g «       y )Nc                  óL   — e Zd Zdd„Zedd„«       Zej                  dd„«       Zy)úJStubgencSuite.test_generate_c_property_with_rw_property.<locals>.TestClassc                ó   — d| _         y )Nr   ©Ú
_attributer‡   s    rD   Ú__init__zSStubgencSuite.test_generate_c_property_with_rw_property.<locals>.TestClass.__init__Y  s	   € Ø"#�•rq   c                ó   — | j                   S r_   r3  r‡   s    rD   r'  zTStubgencSuite.test_generate_c_property_with_rw_property.<locals>.TestClass.attribute\  s   € à—‘Ð&rq   c                ó   — || _         y r_   r3  )r;   Úvalues     rD   r'  zTStubgencSuite.test_generate_c_property_with_rw_property.<locals>.TestClass.attribute`  s	   € à"'�•rq   Nrd   )re   r¶   )r8  r¶   re   rf   )ri   rj   rk   r5  r  r'  Úsetterr€   rq   rD   rl  r1  X  s5   „ ó$ð ò'ó ð'ð ×Ñò(ó ñ(rq   rl  rC  rO   r�  r'  zattribute: Incompleter(  r+  s         rD   Ú)test_generate_c_property_with_rw_propertyz7StubgencSuite.test_generate_c_property_with_rw_propertyW  sŒ   € ÷
	(ñ 
	(ð +-ÐØ)+ÐÜ˜ 2Ó&ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ×Ñ˜{Ñ+Ø×ÑØØ Øô	
ô 	Ð)Ð,CÐ+DÔEÜÐ(¨"Õ-rq   c           
     óN  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |d	g«       t        |j                  «       j                  «       g «       y )
Nc                  ó   — e Zd Zdd„Zy)úMStubgencSuite.test_generate_c_type_with_single_arg_generic.<locals>.TestClassc                 ó   — y)zH
                test(self: TestClass, arg0: List[int])
                Nr€   rÝ  s     rD   r±  zRStubgencSuite.test_generate_c_type_with_single_arg_generic.<locals>.TestClass.testu  rÞ  rq   Nrß  r³  r€   rq   rD   rl  r=  t  rà  rq   rl  rO   r�  r±  r;   rá  r·  z+def test(self, arg0: List[int]) -> Any: ...rã  r¼  s        rD   Ú,test_generate_c_type_with_single_arg_genericz:StubgencSuite.test_generate_c_type_with_single_arg_generics  r   rq   c           
     óN  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |d	g«       t        |j                  «       j                  «       g «       y )
Nc                  ó   — e Zd Zdd„Zy)úMStubgencSuite.test_generate_c_type_with_double_arg_generic.<locals>.TestClassc                 ó   — y)zM
                test(self: TestClass, arg0: Dict[str, int])
                Nr€   rÝ  s     rD   r±  zRStubgencSuite.test_generate_c_type_with_double_arg_generic.<locals>.TestClass.testˆ  rÞ  rq   Nrß  r³  r€   rq   rD   rl  rB  ‡  rà  rq   rl  rO   r�  r±  r;   rá  r·  z0def test(self, arg0: Dict[str, int]) -> Any: ...rã  r¼  s        rD   Ú,test_generate_c_type_with_double_arg_genericz:StubgencSuite.test_generate_c_type_with_double_arg_generic†  s”   € ÷	ñ 	ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ�N‰NØÜ ¨&°iÀkÔRð	 	#ô 	
ô 	�VÐPÐQÔRÜ�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c           
     óN  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |d	g«       t        |j                  «       j                  «       g «       y )
Nc                  ó   — e Zd Zdd„Zy)úIStubgencSuite.test_generate_c_type_with_nested_generic.<locals>.TestClassc                 ó   — y)zS
                test(self: TestClass, arg0: Dict[str, List[int]])
                Nr€   rÝ  s     rD   r±  zNStubgencSuite.test_generate_c_type_with_nested_generic.<locals>.TestClass.test›  rÞ  rq   Nrß  r³  r€   rq   rD   rl  rG  š  rà  rq   rl  rO   r�  r±  r;   rá  r·  z6def test(self, arg0: Dict[str, List[int]]) -> Any: ...rã  r¼  s        rD   Ú(test_generate_c_type_with_nested_genericz6StubgencSuite.test_generate_c_type_with_nested_generic™  s”   € ÷	ñ 	ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ�N‰NØÜ ¨&°iÀkÔRð	 	#ô 	
ô 	�VÐVÐWÔXÜ�S—_‘_Ó&×1Ñ1Ó3°RÕ8rq   c           
     óP  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |d	g«       t        |j                  «       j                  «       d
g«       y )Nc                  ó   — e Zd Zdd„Zy)ú[StubgencSuite.test_generate_c_type_with_generic_using_other_module_first.<locals>.TestClassc                 ó   — y)zY
                test(self: TestClass, arg0: Dict[argparse.Action, int])
                Nr€   rÝ  s     rD   r±  z`StubgencSuite.test_generate_c_type_with_generic_using_other_module_first.<locals>.TestClass.test®  rÞ  rq   Nrß  r³  r€   rq   rD   rl  rL  ­  rà  rq   rl  rO   r�  r±  r;   rá  r·  z<def test(self, arg0: Dict[argparse.Action, int]) -> Any: ...rÑ  rã  r¼  s        rD   Ú:test_generate_c_type_with_generic_using_other_module_firstzHStubgencSuite.test_generate_c_type_with_generic_using_other_module_first¬  ó˜   € ÷	ñ 	ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ�N‰NØÜ ¨&°iÀkÔRð	 	#ô 	
ô 	�VÐ\Ð]Ô^Ü�S—_‘_Ó&×1Ñ1Ó3Ð6GÐ5HÕIrq   c           
     óP  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |d	g«       t        |j                  «       j                  «       d
g«       y )Nc                  ó   — e Zd Zdd„Zy)úZStubgencSuite.test_generate_c_type_with_generic_using_other_module_last.<locals>.TestClassc                 ó   — y)zY
                test(self: TestClass, arg0: Dict[str, argparse.Action])
                Nr€   rÝ  s     rD   r±  z_StubgencSuite.test_generate_c_type_with_generic_using_other_module_last.<locals>.TestClass.testÁ  rÞ  rq   Nrß  r³  r€   rq   rD   rl  rR  À  rà  rq   rl  rO   r�  r±  r;   rá  r·  z<def test(self, arg0: Dict[str, argparse.Action]) -> Any: ...rÑ  rã  r¼  s        rD   Ú9test_generate_c_type_with_generic_using_other_module_lastzGStubgencSuite.test_generate_c_type_with_generic_using_other_module_last¿  rO  rq   c           
     óR  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|d¬«      ¬«       t        |g d	¢«       t        |j                  «       j                  «       d
g«       y )Nc                  ó   — e Zd Zdd„Zy)úLStubgencSuite.test_generate_c_type_with_overload_pybind11.<locals>.TestClassc                 ó   — y)zí
                __init__(*args, **kwargs)
                Overloaded function.

                1. __init__(self: TestClass, arg0: str) -> None

                2. __init__(self: TestClass, arg0: str, arg1: str) -> None
                Nr€   rÝ  s     rD   r5  zUStubgencSuite.test_generate_c_type_with_overload_pybind11.<locals>.TestClass.__init__Ô  rÞ  rq   Nrß  )ri   rj   rk   r5  r€   rq   rD   rl  rW  Ó  s   „ ôrq   rl  rO   r�  r5  r;   rá  r·  )rø  ú*def __init__(self, arg0: str) -> None: ...rø  ú5def __init__(self, arg0: str, arg1: str) -> None: ...rø  z/def __init__(self, *args, **kwargs) -> Any: ...rù  )
r   rj   r   ri   rº  r5  r   r$   r¡  rb  r¼  s        rD   Ú+test_generate_c_type_with_overload_pybind11z9StubgencSuite.test_generate_c_type_with_overload_pybind11Ò  sž   € ÷		ñ 		ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ×ÑØÜ ¨&°iÀkÔRð	 	#ô 	
ô 	Øòô
	
ô 	�S—_‘_Ó&×1Ñ1Ó3Ð6SÐ5TÕUrq   c                ój  —  G d„ d«      }g }t        |j                  d«      }t        |j                  |j                  g|¬«      }|j	                  d|j
                  |t        d|dt        |dd «      ¬«      ¬	«       t        |g d
¢«       t        |j                  «       j                  «       dg«       y )Nc                  ó   — e Zd ZdZdd„Zy)úLStubgencSuite.test_generate_c_type_with_overload_shiboken.<locals>.TestClasszŒ
            TestClass(self: TestClass, arg0: str) -> None
            TestClass(self: TestClass, arg0: str, arg1: str) -> None
            c                 ó   — y r_   r€   rÝ  s     rD   r5  zUStubgencSuite.test_generate_c_type_with_overload_shiboken.<locals>.TestClass.__init__û  r²  rq   Nrß  )ri   rj   rk   rl   r5  r€   rq   rD   rl  r^  õ  s   „ ñô
rq   rl  rO   r�  r5  r;   rl   r´  r·  )rø  rY  rø  rZ  rù  )r   rj   r   ri   rº  r5  r   r»  r$   r¡  rb  r¼  s        rD   Ú+test_generate_c_type_with_overload_shibokenz9StubgencSuite.test_generate_c_type_with_overload_shibokenô  s¯   € ÷	ñ 	ð ˆÜ˜×-Ñ-¨rÓ2ˆÜ% c§l¡lÀ3Ç<Á<À.ÐY\Ô]ˆØ×"Ñ"ØØ×ÑØÜ ØØØ Ü! )¨Y¸Ó=ô	ð	 	#ô 
	
ô 	Øòô	
ô 	�S—_‘_Ó&×1Ñ1Ó3Ð6SÐ5TÕUrq   Nrd   ))ri   rj   rk   rl   rr  rw  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?  rD  rI  rN  rT  r[  r`  r€   rq   rD   rn  rn  ¼  sÓ   „ ñó
?ó[óCóó]óEóGóAó0ó
Ió
ó0
ó:	9ó9óJó	9ó9ó&9ó&9ó$Vó@9ó&Jó"9ó&Jó9ó&9ó&Uó$
9ó\ó4.ó89ó&9ó&9ó&Jó&Jó& VôD!Vrq   rn  c                  ó   — e Zd Zdd„Zy)ÚArgSigSuitec           	     ó   — t        t        t        d¬«      «      d«       t        t        t        d¬«      «      d«       t        t        t        dd«      «      d«       t        t        t        ddd	¬
«      «      d«       y )Nzasd"dsar¯   z0ArgSig(name='asd"dsa', type=None, default=False)zasd'dsaz0ArgSig(name="asd'dsa", type=None, default=False)r„   rg   z.ArgSig(name='func', type='str', default=False)T)rµ   z-ArgSig(name='func', type='str', default=True))r$   Úreprr	   r‡   s    rD   Ú	test_reprzArgSigSuite.test_repr  si   € ÜÜ”˜YÔ'Ó(Ð*]ô	
ô 	Ü”˜YÔ'Ó(Ð*]ô	
ô 	”Tœ& ¨Ó/Ó0Ð2bÔcÜÜ”˜ ¨tÔ4Ó5Ø;õ	
rq   Nrd   )ri   rj   rk   re  r€   rq   rD   rb  rb    s   „ ô
rq   rb  c                  ó   — e Zd Zdd„Zy)ÚIsValidTypeSuitec                óŽ  — t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d	«      sJ ‚t        d
«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      rJ ‚t        d«      rJ ‚t        d«      rJ ‚t        d«      rJ ‚t        d«      rJ ‚t        d«      rJ ‚y )Nr¶   rg   Ú
Foo_Bar234r¼   z	List[int]zDict[str, int]rf   zLiteral[26]zLiteral[0x1A]zLiteral["hello world"]zLiteral[b"hello world"]zLiteral[u"hello world"]zLiteral[True]zLiteral[Color.RED]zLiteral[None]z	str | intzdict[str, int] | intztuple[str, ...]zWLiteral[26, 0x1A, "hello world", b"hello world", u"hello world", True, Color.RED, None]zfoo-barzx->yÚTrueÚFalsezx,yzx, y)r   r‡   s    rD   Útest_is_valid_typez#IsValidTypeSuite.test_is_valid_type(  ss  € Ü˜UÔ#Ð#Ð#Ü˜UÔ#Ð#Ð#Ü˜\Ô*Ð*Ð*Ü˜YÔ'Ð'Ð'Ü˜[Ô)Ð)Ð)ÜÐ-Ô.Ð.Ð.Ü˜VÔ$Ð$Ð$Ü˜]Ô+Ð+Ð+Ü˜_Ô-Ð-Ð-ÜÐ5Ô6Ð6Ð6ÜÐ6Ô7Ð7Ð7ÜÐ6Ô7Ð7Ð7Ü˜_Ô-Ð-Ð-ÜÐ1Ô2Ð2Ð2Ü˜_Ô-Ð-Ð-Ü˜[Ô)Ð)Ð)ÜÐ3Ô4Ð4Ð4ÜÐ.Ô/Ð/Ð/ÜØeô
ð 	
ð 
ô ! Ô+Ð+Ð+Ü  Ô(Ð(Ð(Ü  Ô(Ð(Ð(Ü  Ô)Ð)Ð)Ü  Ô'Ð'Ð'Ü  Ô(Ð(Ð(Ð(rq   Nrd   )ri   rj   rk   rl  r€   rq   rD   rg  rg  '  s   „ ô)rq   rg  c                  ó,   — e Zd Zdd„Zdd„Zdd„Zdd„Zy)ÚModuleInspectSuitec                ó
  — t        «       5 }|j                  d«      }|€J ‚|j                  dk(  sJ ‚|j                  sJ ‚|j                  �J ‚|j
                  du sJ ‚|j                  g k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr0  F)r   Úget_package_propertiesr°   r\   r8   r¹  Úsubpackages©r;   r}   Úps      rD   Útest_python_modulez%ModuleInspectSuite.test_python_moduleG  s‡   € Ü‹_ð 	' Ø×(Ñ(¨Ó3ˆAØ�=Ð �=Ø—6‘6˜YÒ&Ð&Ð&Ø—6’6ˆM�6Ø—6‘6�>Ð!�>Ø—=‘= EÑ)Ð)Ð)Ø—=‘= BÒ&Ð&Ñ&÷	'÷ 	'ñ 	'ús   ‹A$A9Á9Bc                ó@  — t        «       5 }|j                  d«      }|€J ‚|j                  dk(  sJ ‚|j                  sJ ‚|j                  sJ ‚|j
                  du sJ ‚|j                  sJ ‚t        d„ |j                  D «       «      sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nrm   Fc              3  ó>   K  — | ]  }|j                  d «      –— Œ y­w)z	unittest.N)rP  )Ú.0r‹  s     rD   ú	<genexpr>z9ModuleInspectSuite.test_python_package.<locals>.<genexpr>Z  s   è ø€ ÒL°s�s—~‘~ k×2ÑLùs   ‚)r   rp  r°   r\   r8   r¹  rq  Úallrr  s      rD   Útest_python_packagez&ModuleInspectSuite.test_python_packageQ  sš   € Ü‹_ð 	M Ø×(Ñ(¨Ó4ˆAØ�=Ð �=Ø—6‘6˜ZÒ'Ð'Ð'Ø—6’6ˆM�6Ø—6’6ˆM�6Ø—=‘= EÑ)Ð)Ð)Ø—=’=Ð �=ÜÑL¸a¿m¹mÔLÔLÐLÑL÷	M÷ 	Mñ 	Mús   ‹A?BÂBc                óî   — t        «       5 }|j                  d«      }|€J ‚|j                  dk(  sJ ‚|j                  �J ‚|j                  du sJ ‚|j
                  g k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NÚ_socketT)r   rp  r°   r8   r¹  rq  rr  s      rD   Útest_c_modulez ModuleInspectSuite.test_c_module\  s|   € Ü‹_ð 	' Ø×(Ñ(¨Ó3ˆAØ�=Ð �=Ø—6‘6˜YÒ&Ð&Ð&Ø—6‘6�>Ð!�>Ø—=‘= DÑ(Ð(Ð(Ø—=‘= BÒ&Ð&Ñ&÷	'÷ 	'ñ 	'ús   ‹AA+Á+A4c                óî   — t        «       5 }| j                  t        «      5 }|j                  d«       d d d «       t	        j
                  «      dk(  sJ ‚	 d d d «       y # 1 sw Y   Œ-xY w# 1 sw Y   y xY w)Nzfoobar-non-existentz%No module named 'foobar-non-existent')r   ÚassertRaisesr   rp  rg   Ú	exception)r;   r}   rE  s      rD   Útest_non_existentz$ModuleInspectSuite.test_non_existente  sx   € Ü‹_ð 	O Ø×"Ñ"¤<Ó0ð @°AØ×(Ñ(Ð)>Ô?÷@ä�q—{‘{Ó#Ð'NÒNÐNÑN÷	Oð 	O÷@ð @ú÷	Oð 	Oús!   ‹A+¡A³"A+ÁA(	Á$A+Á+A4Nrd   )ri   rj   rk   rt  rz  r}  r�  r€   rq   rD   rn  rn  F  s   „ ó'ó	Mó'ôOrq   rn  c                ó  — t         j                  j                  | |j                  dd«      › d�«      }t         j                  j	                  |«      s3|j                  dd«      }t         j                  j	                  |«      r|S |S )Nró   r  z.pyiz/__init__.pyi)r1   r8   r9   r&  r`  )rA  rC  rD  Úalt_fnams       rD   r3  r3  l  sc   € Ü�7‰7�<‰<˜ F§N¡N°3¸Ó$<Ð#=¸TÐ!BÓC€DÜ�7‰7�>‰>˜$ÔØ—<‘< ¨Ó8ˆÜ�7‰7�>‰>˜(Ô#ØˆOØ€Krq   )rA  rg   rC  rg   re   rg   )FÚ
__future__r   rP   Úos.pathr1   rJ  r:  rR   r3   rm   Útypesr   Útypingr   r	  Úmypy.errorsr   Úmypy.moduleinspectr   r   Úmypy.stubdocr	   r
   r   r   r   r   r   r   r   r   Úmypy.stubgenr   r   r   r   r   r   r   Úmypy.stubgencr   r   Úmypy.stubutilr   r   r   r   r    r!   Úmypy.test.datar"   r#   Úmypy.test.helpersr$   r%   r&   ÚTestCaser(   rs   r‚   r  r  rq  rh  rl  rn  rb  rg  rn  r3  r€   rq   rD   ú<module>r‘     s:  ðÝ "ã 	Û Û 	Û Û 
Û Û Ý Ý ã å $ß :÷÷ ÷ ÷÷ ñ ÷ G÷÷ ÷ 9ß ZÑ ZôO'˜(×+Ñ+ô O'ôd˜8×,Ñ,ô ô$y	;�x×(Ñ(ô y	;ôx&5˜(×+Ñ+ô &5ôRr4˜ô r4ñj �vÔ€÷	ñ 	ô	�ô 	ôY	V�H×%Ñ%ô Y	Vôx
�(×#Ñ#ô 
ô)�x×(Ñ(ô )ô>#O˜×*Ñ*ô #OôLrq   