Ë
    pPêj}5  ã                  óè   — 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m	Z	m
Z
 d dlmZ d dlmZ d dlmZ  G d„ de«      Zdd	„Zdd
„Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Z G d„ dej.                  «      Zy)é    )ÚannotationsN)ÚInvalidSourceListÚSourceFinderÚcreate_source_list)ÚFileSystemCache)ÚBuildSource)ÚOptionsc                  ó4   — e Zd Zdd„Zdd„Zdd„Zd	d„Zdd„Zy)
ÚFakeFSCachec                ór   — |D �ch c]!  }t         j                  j                  |«      ’Œ# c}| _        y c c}w ©N)ÚosÚpathÚabspathÚfiles)Úselfr   Úfs      ú`/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/test/test_find_sources.pyÚ__init__zFakeFSCache.__init__   s$   € Ø27Ö8¨Q”b—g‘g—o‘o aÕ(Ò8ˆ�
ùÒ8s   …&4c                ó   — || j                   v S r   )r   ©r   r   s     r   ÚisfilezFakeFSCache.isfile   s   € Ø�t—z‘zÐ!Ð!ó    c                ó¤   ‡— ‰j                  t        j                  «      s‰t        j                  z  Št        ˆfd„| j                  D «       «      S )Nc              3  ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr   )Ú
startswith)Ú.0r   r   s     €r   ú	<genexpr>z$FakeFSCache.isdir.<locals>.<genexpr>   s   øè ø€ Ò:¨!�1—<‘< ×%Ñ:ùs   ƒ)Úendswithr   ÚsepÚanyr   r   s    `r   ÚisdirzFakeFSCache.isdir   s5   ø€ Ø�}‰}œRŸV™VÔ$Ø”B—F‘F‰NˆDÜÓ:¨t¯z©zÔ:Ó:Ð:r   c           	     ó2  — |j                  t        j                  «      s|t        j                  z  }t        | j                  D �ch c]B  }|j                  |«      sŒ|t        |«      d  j                  t        j                  «      d   ’ŒD c}«      S c c}w )Nr   )r   r   r    Úlistr   r   ÚlenÚsplit)r   r   r   s      r   ÚlistdirzFakeFSCache.listdir   sf   € Ø�}‰}œRŸV™VÔ$Ø”B—F‘F‰NˆDÜ¸d¿j¹jÖ_¸ÈAÏLÉLÐY]ÕL^�Q”s˜4“y�{�^×)Ñ)¬"¯&©&Ó1°!Ó4Ò_Ó`Ð`ùÒ_s   ÁBÁ0Bc                 ó   — y)NF© r   s     r   Úinit_under_package_rootz#FakeFSCache.init_under_package_root!   s   € Ør   N)r   zset[str]ÚreturnÚNone)r   Ústrr+   Úbool)r   r-   r+   ú	list[str])Ú__name__Ú
__module__Ú__qualname__r   r   r"   r'   r*   r)   r   r   r   r      s   „ ó9ó"ó;ó
aô
r   r   c                óŠ   — t         j                  j                  | «      d   } | j                  t         j                  d«      } | S )Né   ú/)r   r   Ú
splitdriveÚreplacer    )r   s    r   Únormalise_pathr8   %   s4   € Ü�7‰7×Ñ˜dÓ# AÑ&€DØ�<‰<œŸ™ Ó$€DØ€Kr   c                ó&   — t        d„ | D «       «      S )Nc              3  óz   K  — | ]3  }|j                   |j                  �t        |j                  «      nd f–— Œ5 y ­wr   )ÚmoduleÚbase_dirr8   )r   Úss     r   r   z.normalise_build_source_list.<locals>.<genexpr>,   s5   è ø€ ò àð 
�‰°!·*±*Ð2H”N 1§:¡:Ô.ÈdÔTñùs   ‚9;)Úsorted)Úsourcess    r   Únormalise_build_source_listr@   +   s   € Üñ àôó ð r   c                óD   — | j                  |«      \  }}|t        |«      fS r   )Úcrawl_upr8   )Úfinderr   r;   r<   s       r   ÚcrawlrD   2   s%   € Ø—‘ qÓ)Ñ€FˆHØ”> (Ó+Ð+Ð+r   c                óp   — t        | j                  t        j                  j	                  |«      «      «      S r   )r@   Úfind_sources_in_dirr   r   r   )rC   r   s     r   rF   rF   7   s&   € Ü& v×'AÑ'AÄ"Ç'Á'Ç/Á/ÐRSÓBTÓ'UÓVÐVr   c                ó�   — | D �cg c]!  }t         j                  j                  |«      ‘Œ# } }t        t	        | ||«      «      S c c}w r   )r   r   r   r@   r   )ÚpathsÚoptionsÚfscacheÚps       r   Úfind_sourcesrL   ;   s>   € ð */Ö/ AŒR�W‰W�_‰_˜QÕÐ/€EÐ/Ü&Ô'9¸%ÀÈ'Ó'RÓSÐSùò 0s   …&Ac                  ód   — 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
dd	„Zdd
„Zdd„Zy)ÚSourceFinderSuitec                ó¦   — t        j                  «       | _        t        j                  «       | _        t        j                  | j                  «       y r   )ÚtempfileÚmkdtempÚtempdirr   ÚgetcwdÚoldcwdÚchdir©r   s    r   ÚsetUpzSourceFinderSuite.setUpC   s/   € Ü×'Ñ'Ó)ˆŒÜ—i‘i“kˆŒÜ
�‰�—‘Õr   c                ó€   — t        j                  | j                  «       t        j                  | j
                  «       y r   )r   rU   rT   ÚshutilÚrmtreerR   rV   s    r   ÚtearDownzSourceFinderSuite.tearDownH   s"   € Ü
�‰�—‘ÔÜ�‰�d—l‘lÕ#r   c                óP  — t        «       }d|_        t        t        dh«      |«      }t	        |d«      dk(  sJ ‚t        t        dh«      |«      }t	        |d«      dk(  sJ ‚t        t        dh«      |«      }t	        |d«      dk(  sJ ‚t        t        ddh«      |«      }t	        |d«      d	k(  sJ ‚t        t        d
dh«      |«      }t	        |d
«      dk(  sJ ‚t        t        ddh«      |«      }t	        |d«      dk(  sJ ‚t        t        h d£«      |«      }t	        |d«      dk(  sJ ‚y )NFú	/setup.py©Úsetupr5   ú/a/setup.py©r_   ú/aú/a/b/setup.py©r_   ú/a/bú/a/__init__.py©za.setupr5   ú/a/invalid-name/setup.py©r_   z/a/invalid-name¾   ú/a/b/c/__init__.pyrf   ú/a/b/c/setup.pyrl   ©zc.setupre   ©r	   Únamespace_packagesr   r   rD   ©r   rI   rC   s      r   Útest_crawl_no_namespacez)SourceFinderSuite.test_crawl_no_namespaceL   sE  € Ü“)ˆØ%*ˆÔ"äœk¨;¨-Ó8¸'ÓBˆÜ�V˜[Ó)¨^Ò;Ð;Ð;äœk¨=¨/Ó:¸GÓDˆÜ�V˜]Ó+¨Ò>Ð>Ð>äœk¨?Ð*;Ó<¸gÓFˆÜ�V˜_Ó-Ð1BÒBÐBÐBäœk¨=Ð:JÐ*KÓLÈgÓVˆÜ�V˜]Ó+Ð/?Ò?Ð?Ð?äœkÐ+EÐGWÐ*XÓYÐ[bÓcˆÜ�VÐ7Ó8Ð<XÒXÐXÐXäœk¨?Ð<LÐ*MÓNÐPWÓXˆÜ�V˜_Ó-Ð1BÒBÐBÐBäÜÒSÓTÐV]ó
ˆô �VÐ.Ó/Ð3FÒFÐFÑFr   c                óP  — t        «       }d|_        t        t        dh«      |«      }t	        |d«      dk(  sJ ‚t        t        dh«      |«      }t	        |d«      dk(  sJ ‚t        t        dh«      |«      }t	        |d«      dk(  sJ ‚t        t        ddh«      |«      }t	        |d«      d	k(  sJ ‚t        t        d
dh«      |«      }t	        |d
«      dk(  sJ ‚t        t        ddh«      |«      }t	        |d«      dk(  sJ ‚t        t        h d£«      |«      }t	        |d«      dk(  sJ ‚y )NTr]   r^   r`   ra   rc   rd   rf   rg   rh   ri   ©z	a.b.setupr5   rj   rl   ©za.b.c.setupr5   rn   rp   s      r   Útest_crawl_namespacez&SourceFinderSuite.test_crawl_namespaceg   sE  € Ü“)ˆØ%)ˆÔ"äœk¨;¨-Ó8¸'ÓBˆÜ�V˜[Ó)¨^Ò;Ð;Ð;äœk¨=¨/Ó:¸GÓDˆÜ�V˜]Ó+¨Ò>Ð>Ð>äœk¨?Ð*;Ó<¸gÓFˆÜ�V˜_Ó-Ð1BÒBÐBÐBäœk¨=Ð:JÐ*KÓLÈgÓVˆÜ�V˜]Ó+Ð/?Ò?Ð?Ð?äœkÐ+EÐGWÐ*XÓYÐ[bÓcˆÜ�VÐ7Ó8Ð<XÒXÐXÐXäœk¨?Ð<LÐ*MÓNÐPWÓXˆÜ�V˜_Ó-Ð1CÒCÐCÐCäÜÒSÓTÐV]ó
ˆô �VÐ.Ó/Ð3GÒGÐGÑGr   c                ól  — t        «       }d|_        d|_        t        t	        dh«      |«      }t        |d«      dk(  sJ ‚t        t	        dh«      |«      }t        |d«      dk(  sJ ‚t        t	        dh«      |«      }t        |d«      dk(  sJ ‚t        t	        ddh«      |«      }t        |d«      d	k(  sJ ‚t        t	        d
dh«      |«      }t        |d
«      dk(  sJ ‚t        t	        ddh«      |«      }t        |d«      dk(  sJ ‚t        t	        h d£«      |«      }t        |d«      dk(  sJ ‚dg|_        t        t	        dh«      |«      }t        |d«      dk(  sJ ‚t        t	        h d£«      |«      }t        |d«      dk(  sJ ‚ddg|_        t        t	        dh«      |«      }t        |d«      dk(  sJ ‚y )NTr]   r^   r`   ra   rc   rd   rf   rg   rh   ri   rs   rj   rl   rt   re   rm   ú/a/b/c)r_   rw   )r	   ro   Úexplicit_package_basesr   r   rD   Ú	mypy_pathrp   s      r   Ú"test_crawl_namespace_explicit_basez4SourceFinderSuite.test_crawl_namespace_explicit_base‚   sí  € Ü“)ˆØ%)ˆÔ"Ø)-ˆÔ&äœk¨;¨-Ó8¸'ÓBˆÜ�V˜[Ó)¨^Ò;Ð;Ð;äœk¨=¨/Ó:¸GÓDˆÜ�V˜]Ó+¨Ò>Ð>Ð>äœk¨?Ð*;Ó<¸gÓFˆÜ�V˜_Ó-Ð1BÒBÐBÐBäœk¨=Ð:JÐ*KÓLÈgÓVˆÜ�V˜]Ó+Ð/?Ò?Ð?Ð?äœkÐ+EÐGWÐ*XÓYÐ[bÓcˆÜ�VÐ7Ó8Ð<XÒXÐXÐXäœk¨?Ð<LÐ*MÓNÐPWÓXˆÜ�V˜_Ó-Ð1CÒCÐCÐCäÜÒSÓTÐV]ó
ˆô �VÐ.Ó/Ð3GÒGÐGÐGð $˜HˆÔäœkÐ+<Ð*=Ó>ÀÓHˆÜ�VÐ.Ó/Ð3FÒFÐFÐFäÜÒSÓTÐV]ó
ˆô �VÐ.Ó/Ð3FÒFÐFÐFà# XÐ.ˆÔÜœkÐ+<Ð*=Ó>ÀÓHˆÜ�VÐ.Ó/Ð3FÒFÐFÑFr   c                ó¸   — t        «       }d|_        d|_        ddg|_        t	        t        ddh«      |«      }t        |d«      dk(  sJ ‚t        |d«      dk(  sJ ‚y )NTrb   ú/bú/a/pkg/a.pyú/b/pkg/b.py©zpkg.arb   ©zpkg.br|   )r	   ro   rx   ry   r   r   rD   rp   s      r   Útest_crawl_namespace_multi_dirz0SourceFinderSuite.test_crawl_namespace_multi_dir­   se   € Ü“)ˆØ%)ˆÔ"Ø)-ˆÔ&Ø! 4˜LˆÔäœk¨=¸-Ð*HÓIÈ7ÓSˆÜ�V˜]Ó+¨Ò>Ð>Ð>Ü�V˜]Ó+¨Ò>Ð>Ñ>r   c                ó~   — t        «       }d|_        h d£}t        t        |«      |«      }t	        |d«      g d¢k(  sJ ‚y )NF¾   ú/pkg/a1/b/c/d/e.pyú/pkg/a2/b/c/d/e.pyú/pkg/a2/__init__.pyú/pkg/a1/b/f.pyú/pkg/a2/b/f.pyr5   )©Úa2ú/pkg©Úez/pkg/a1/b/c/d)r�   z/pkg/a2/b/c/d©r   ú	/pkg/a1/b)r   z	/pkg/a2/b©r	   ro   r   r   rF   ©r   rI   r   rC   s       r   Ú%test_find_sources_in_dir_no_namespacez7SourceFinderSuite.test_find_sources_in_dir_no_namespace·   sI   € Ü“)ˆØ%*ˆÔ"ò
ˆô œk¨%Ó0°'Ó:ˆÜ" 6¨3Ó/ò 4
ò 
ð 	
ñ 
r   c                ó~   — t        «       }d|_        h d£}t        t        |«      |«      }t	        |d«      g d¢k(  sJ ‚y )NTrƒ   r5   )r‰   ©z
a2.b.c.d.er‹   ©za2.b.fr‹   rŒ   rŽ   r�   r‘   s       r   Ú"test_find_sources_in_dir_namespacez4SourceFinderSuite.test_find_sources_in_dir_namespaceË   sI   € Ü“)ˆØ%)ˆÔ"ò
ˆô œk¨%Ó0°'Ó:ˆÜ" 6¨3Ó/ò 4
ò 
ð 	
ñ 
r   c                óü   — t        «       }d|_        d|_        dg|_        h d£}t	        t        |«      |«      }t        |d«      g d¢k(  sJ ‚dg|_        t	        t        |«      |«      }t        |d«      g d¢k(  sJ ‚y )NTr5   rƒ   ))zpkg.a1.b.c.d.er5   )z
pkg.a1.b.fr5   )zpkg.a2r5   )zpkg.a2.b.c.d.er5   )z
pkg.a2.b.fr5   r‹   ))z
a1.b.c.d.er‹   )za1.b.fr‹   r‰   r”   r•   ©r	   ro   rx   ry   r   r   rF   r‘   s       r   Ú0test_find_sources_in_dir_namespace_explicit_basezBSourceFinderSuite.test_find_sources_in_dir_namespace_explicit_baseß   s–   € Ü“)ˆØ%)ˆÔ"Ø)-ˆÔ&Ø ˜EˆÔò
ˆô œk¨%Ó0°'Ó:ˆÜ" 6¨3Ó/ò 4
ò 
ð 	
ð 
ð $˜HˆÔÜœk¨%Ó0°'Ó:ˆÜ" 6¨3Ó/ò 4
ò 
ð 	
ñ 
r   c                óš   — t        «       }d|_        d|_        ddg|_        t	        t        ddh«      |«      }t        |d«      ddgk(  sJ ‚y )	NTrb   r|   r}   r~   r5   r   r€   r˜   rp   s      r   Ú,test_find_sources_in_dir_namespace_multi_dirz>SourceFinderSuite.test_find_sources_in_dir_namespace_multi_dirÿ   sU   € Ü“)ˆØ%)ˆÔ"Ø)-ˆÔ&Ø! 4˜LˆÔäœk¨=¸-Ð*HÓIÈ7ÓSˆÜ" 6¨3Ó/°OÀ_Ð3UÒUÐUÑUr   c                ó¤  — t        «       }d|_        dD ]�  }t        dd|› d�h«      }t        dg||«      dgk(  sJ ‚t	        j
                  t        «      5  t        dg||«       d d d «       t        d|› �g||«      dd|› �fgk(  sJ ‚t        d|› d�g||«      dd|› �fgk(  rŒ�J ‚ h d	£}d
g|_        t        |«      }t        dg||«      g d¢k(  sJ ‚t        dg||«      dgk(  sJ ‚t        dg||«      dgk(  sJ ‚dg|_        t        |«      }t        dg||«      g d¢k(  sJ ‚t	        j
                  t        «      5  t        dg||«       d d d «       t	        j
                  t        «      5  t        dg||«       d d d «       t	        j
                  t        «      5  t        dg||«       d d d «       dg|_        t        dg||«      ddgk(  sJ ‚dg|_        t        |«      }t        dg||«      g d¢k(  sJ ‚t	        j
                  t        «      5  t        dg||«       d d d «       dgddgddgfD ])  }||_        t        |«      }t        dg||«      g d¢k(  rŒ)J ‚ dg|_        t        |«      }t        dg||«      g d¢k(  sJ ‚g d¢}dj                  |«      g}||fD ]m  }||_        t        |«      }t        t        dg||«      «      t        |«      k(  sJ ‚h d£}t        |«      }t        t        dg||«      «      t        |«      k(  rŒmJ ‚ y # 1 sw Y   �Œ¯xY w# 1 sw Y   �ŒÕxY w# 1 sw Y   �Œ²xY w# 1 sw Y   �Œ�xY w# 1 sw Y   �Œ'xY w) NT)zsite-packagesz	.whateverÚnode_modulesz.x/.zz	/dir/a.pyz
/dir/venv/z/b.pyr5   )Úaz/dirÚbrƒ   z/f\.py$)r‰   r”   rŒ   r‡   rŽ   rˆ   r•   z/a1/)r‰   r”   r•   z/pkg/a1z/pkg/a1/r�   z/a1/$rŒ   z	/(a1|a3)/Úa1Úa3zb/c/)r‰   r•   rŽ   )	z/pkg/a/z/2z/1z/pk/z/kgz/g.pyz/bcz/xxx/pkg/a2/b/f.pyzxxx/pkg/a2/b/f.pyú|>   úpkg/a1/b/f.pyúpkg/a2/b/f.pyúpkg/a1/b/c/d/e.pyúpkg/a2/b/c/d/e.pyúpkg/a2/__init__.pyú.)
r	   ro   r   rL   ÚpytestÚraisesr   ÚexcludeÚjoinr%   )	r   rI   Úexcluded_dirrJ   r   ÚorredÚbig_exclude1Úbig_exclude2Úbig_excludes	            r   Útest_find_sources_excludez+SourceFinderSuite.test_find_sources_exclude  s  € Ü“)ˆØ%)ˆÔ"ð Tò 
	ˆLÜ! ;°*¸\¸NÈ%Ð0PÐ"QÓRˆGÜ   w°Ó8¸]¸OÒKÐKÐKÜ—‘Ô0Ó1ñ ?Ü˜l˜^¨W°gÔ>÷?ä :¨l¨^Ð!<Ð =¸wÈÓPØ˜
 < .Ð1Ð2ðUò ð ð ô   :¨l¨^¸5Ð!AÐ BÀGÈWÓUØ˜
 < .Ð1Ð2ðZó ð ð ð
	ò
ˆð &˜,ˆŒÜ˜eÓ$ˆÜ˜S˜E 7¨GÓ4ò 9
ò 
ð 	
ð 
ô
 Ð-Ð.°¸ÓAÐFXÐEYÒYÐYÐYÜÐ-Ð.°¸ÓAÐFXÐEYÒYÐYÐYð "˜(ˆŒÜ˜eÓ$ˆÜ˜S˜E 7¨GÓ4ò 9
ò 
ð 	
ð 
ô
 �]‰]Ô,Ó-ñ 	8Ü˜)˜ g¨wÔ7÷	8ä�]‰]Ô,Ó-ñ 	9Ü˜*˜ w°Ô8÷	9ä�]‰]Ô,Ó-ñ 	:Ü˜+˜¨°Ô9÷	:ð #˜)ˆŒÜ˜Y˜K¨°'Ó:Ø"Øð?
ò 
ð 	
ð 
ð &˜,ˆŒÜ˜eÓ$ˆÜ˜S˜E 7¨GÓ4ò 9
ò 
ð 	
ð 
ô
 �]‰]Ô,Ó-ñ 	8Ü˜)˜ g¨wÔ7÷	8ð #�m d¨D \°D¸$°<Ð@ò 	ˆEØ#ˆGŒOÜ! %Ó(ˆGÜ   w°Ó8ò =ó ð ð ð	ð "˜(ˆŒÜ˜eÓ$ˆÜ˜S˜E 7¨GÓ4ò 9
ò 
ð 	
ð 
ò

ˆð Ÿ™ Ó.Ð/ˆØ(¨,Ð7ò 	LˆKØ)ˆGŒOÜ! %Ó(ˆGÜ”| S E¨7°GÓ<Ó=ÄÀUÃÒKÐKÐKòˆEô " %Ó(ˆGÜ”| S E¨7°GÓ<Ó=ÄÀUÃÓKÐKÐKñ	L÷w?ñ ?ú÷H	8ñ 	8ú÷	9ñ 	9ú÷	:ñ 	:ú÷"	8ñ 	8ús<   ÁLÄ<LÅ,L+ÆL8ÈMÌL	ÌL(Ì+L5Ì8MÍMN)r+   r,   )r0   r1   r2   rW   r[   rq   ru   rz   r�   r’   r–   r™   r›   r²   r)   r   r   rN   rN   B   sA   „ óó
$óGó6Hó6)GóV?ó
ó(
ó(
ó@VôpLr   rN   )r   r-   r+   r-   )r?   zlist[BuildSource]r+   úlist[tuple[str, str | None]])rC   r   r   r-   r+   ztuple[str, str])rC   r   r   r-   r+   r³   )rH   r/   rI   r	   rJ   r   r+   r³   )Ú
__future__r   r   rY   rP   Úunittestr©   Úmypy.find_sourcesr   r   r   Úmypy.fscacher   Úmypy.modulefinderr   Úmypy.optionsr	   r   r8   r@   rD   rF   rL   ÚTestCaserN   r)   r   r   ú<module>r»      s‡   ðÝ "ã 	Û Û Û ã ç QÑ QÝ (Ý )Ý  ô�/ô ó*óó,ó
WðTØðTØ&ðTØ1@ðTà!óTôvL˜×)Ñ)õ vLr   