ó
    ¶'Ôi‹  ã                   ó~   • S r SSKrSSKrSSKrSSKrSSKJrJr  SSKJ	r	  SSK
Jr   " S S5      r " S	 S
5      rS rg)z%Tests for automatic package discoveryé    N)Úfind_namespace_packagesÚfind_packages)ÚFlatLayoutPackageFinderé   )Ú	os_helperc                   óê   • \ rS rSrS rS rS rSS jrSS jrS r	S	 r
S
 rS rS rS r\R                   R#                  \R&                  " 5       (       + SS9S 5       rS rS rS rS rS rS rSrg)ÚTestFindPackagesé   c                 óX   • [         R                  " 5       U l        U R                  5         g ©N)ÚtempfileÚmkdtempÚdist_dirÚ_make_pkg_structure©ÚselfÚmethods     Úb/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/setuptools/tests/test_find_packages.pyÚsetup_methodÚTestFindPackages.setup_method   s   € Ü ×(Ò(Ó*ˆŒØ× Ñ Õ"ó    c                 óD   • [         R                  " U R                  5        g r   )ÚshutilÚrmtreer   r   s     r   Úteardown_methodÚ TestFindPackages.teardown_method   s   € Ü�Š�d—m‘mÕ$r   c                 óž  • U R                  SU R                  5      U l        U R                  SU R                  5        U R                  SU R                  5      U l        U R                  SU R                  5        U R                  SU R                  5      U l        U R                  SU R
                  5        U R                  SU R                  5      U l        U R                  SU R                  5      U l        U R                  S	U R                  5        U R                  S
U R                  5        U R                  SU R                  5        g)zßMake basic package structure.

dist/
    docs/
        conf.py
    pkg/
        __pycache__/
        nspkg/
            mod.py
        subpkg/
            assets/
                asset
            __init__.py
    setup.py

Údocszconf.pyÚpkgÚ__pycache__Únspkgzmod.pyÚsubpkgÚassetsÚassetú__init__.pyzsetup.pyN)Ú_mkdirr   Údocs_dirÚ_touchÚpkg_dirÚ
ns_pkg_dirÚsub_pkg_dirÚ	asset_dir)r   s    r   r   Ú$TestFindPackages._make_pkg_structure   sã   € ð" Ÿ™ F¨D¯M©MÓ:ˆŒØ�‰�I˜tŸ}™}Ô-Ø—{‘{ 5¨$¯-©-Ó8ˆŒØ�‰�M 4§<¡<Ô0ØŸ+™+ g¨t¯|©|Ó<ˆŒØ�‰�H˜dŸo™oÔ.ØŸ;™; x°·±Ó>ˆÔØŸ™ X¨t×/?Ñ/?Ó@ˆŒØ�‰�G˜TŸ^™^Ô,Ø�‰�M 4×#3Ñ#3Ô4Ø�‰�J §¡Õ.r   Nc                 ó~   • U(       a  [         R                  R                  X!5      n[         R                  " U5        U$ r   )ÚosÚpathÚjoinÚmkdir)r   r0   Ú
parent_dirs      r   r&   ÚTestFindPackages._mkdir4   s'   € ÞÜ—7‘7—<‘< 
Ó1ˆDÜ
�Š�ŒØˆr   c                 ó†   • U(       a  [         R                  R                  X!5      n[        US5      R	                  5         U$ )NÚwb)r/   r0   r1   ÚopenÚclose)r   r0   Údir_s      r   r(   ÚTestFindPackages._touch:   s/   € ÞÜ—7‘7—<‘< Ó+ˆDÜˆT�4Ó×ÑÔ Øˆr   c                 óz   • U R                  SU R                  5        [        U R                  5      nUSS/:X  d   eg )Nr%   r   ú
pkg.subpkg©r(   r)   r   r   ©r   Úpackagess     r   Útest_regular_packageÚ%TestFindPackages.test_regular_package@   s5   € Ø�‰�M 4§<¡<Ô0Ü  §¡Ó/ˆØ˜E <Ð0Ó0Ð0Ñ0r   c                 óv   • U R                  SU R                  5        [        U R                  SS9nUS/:X  d   eg )Nr%   )zpkg.*©Úexcluder   r=   r>   s     r   Útest_excludeÚTestFindPackages.test_excludeE   s4   € Ø�‰�M 4§<¡<Ô0Ü  §¡¸
ÑCˆØ˜E˜7Ó"Ð"Ñ"r   c                 ó®   • U R                  SU R                  5        U R                  SU R                  5        [        U R                  SS9nUS/:X  d   eg)zG
Excluding a parent package should not exclude child packages as well.
r%   )r   rC   r<   N)r(   r)   r+   r   r   r>   s     r   Útest_exclude_recursiveÚ'TestFindPackages.test_exclude_recursiveJ   sJ   € ð 	�‰�M 4§<¡<Ô0Ø�‰�M 4×#3Ñ#3Ô4Ü  §¡¸ÑAˆØ˜L˜>Ó)Ð)Ñ)r   c                 óÔ   • U R                  SU R                  5        U R                  SU R                  5      nU R                  SU5        [	        U R                  S/S9nUS/:X  d   eg)z=
If include is specified, other packages should be excluded.
r%   Ú	other_pkg)ÚincludeN)r(   r)   r&   r   r   )r   Úalt_dirr?   s      r   Útest_include_excludes_otherÚ,TestFindPackages.test_include_excludes_otherS   sZ   € ð 	�‰�M 4§<¡<Ô0Ø—+‘+˜k¨4¯=©=Ó9ˆØ�‰�M 7Ô+Ü  §¡¸¸ÑFˆØ˜K˜=Ó(Ð(Ñ(r   c                 ó:  • [         R                  " [        R                  R	                  U R
                  S5      5        U R                  SU R                  5      nU R                  SU5        U R                  SU5        [        U R
                  5      nSU;  d   eg )Núpkg/subpkg/assetsz	some.datar%   zfile.datzpkg.some.data)
r   r   r/   r0   r1   r   r&   r)   r(   r   )r   Údata_dirr?   s      r   Útest_dir_with_dot_is_skippedÚ-TestFindPackages.test_dir_with_dot_is_skipped]   sn   € Ü�Š”b—g‘g—l‘l 4§=¡=Ð2EÓFÔGØ—;‘;˜{¨D¯L©LÓ9ˆØ�‰�M 8Ô,Ø�‰�J Ô)Ü  §¡Ó/ˆØ hÓ.Ð.Ñ.r   c                 ó¾   • U R                  SU R                  5      nU R                  SU5      nU R                  SU5        [        U R                  5      nSU;  d   eg)zS
Ensure that a package in a non-package such as build/pkg/__init__.py
is excluded.
Úbuildr   r%   z	build.pkgN)r&   r   r(   r   )r   Ú	build_dirÚbuild_pkg_dirr?   s       r   Ú,test_dir_with_packages_in_subdir_is_excludedÚ=TestFindPackages.test_dir_with_packages_in_subdir_is_excludede   sR   € ð
 —K‘K ¨¯©Ó7ˆ	ØŸ™ E¨9Ó5ˆØ�‰�M =Ô1Ü  §¡Ó/ˆØ (Ó*Ð*Ñ*r   zSymlink support required)Úreasonc                 óD  • U R                  SU R                  5        [        R                  R	                  U R
                  S5      n[        R                  " SU5        [        R                  R                  U5      (       d   e[        U R
                  5      nSU;   d   eg)zˆ
A symbolically-linked directory should be treated like any other
directory when matched as a package.

Create a link from lpkg -> pkg.
r%   Úlpkgr   N)	r(   r)   r/   r0   r1   r   ÚsymlinkÚisdirr   )r   Ú
linked_pkgr?   s      r   Ú$test_symlinked_packages_are_includedÚ5TestFindPackages.test_symlinked_packages_are_includedp   sq   € ð 	�‰�M 4§<¡<Ô0Ü—W‘W—\‘\ $§-¡-°Ó8ˆ
Ü
�
Š
�5˜*Ô%Ü�w‰w�}‰}˜Z×(Ñ(Ð(Ð(Ü  §¡Ó/ˆØ˜Ó!Ð!Ñ!r   c                 ó8   • [        U5      [        U5      :X  d   eg r   )Úset)r   ÚactualÚexpecteds      r   Ú_assert_packagesÚ!TestFindPackages._assert_packages   s   € Ü�6‹{œc (›mÓ+Ð+Ñ+r   c                 óZ   • [        U R                  S/S/S9nU R                  U/ SQ5        g )Nzpkg*úpkg.subpkg.assets)rL   rD   ©r   ú	pkg.nspkgr<   ©r   r   rg   r>   s     r   Útest_pep420_ns_packageÚ'TestFindPackages.test_pep420_ns_package‚   s0   € Ü*Ø�M‰M F 8Ð6IÐ5Jñ
ˆð 	×Ñ˜hÒ(JÕKr   c                 óV   • [        U R                  S/S9nU R                  U/ SQ5        g )Nrj   rC   )r   r   rl   r<   rm   r>   s     r   Ú"test_pep420_ns_package_no_includesÚ3TestFindPackages.test_pep420_ns_package_no_includesˆ   s'   € Ü*¨4¯=©=ÐCVÐBWÑXˆØ×Ñ˜hÒ(RÕSr   c                 óX   • [        U R                  5      n/ SQnU R                  X5        g )N)r   r   rl   r<   rj   rm   )r   r?   rf   s      r   Ú.test_pep420_ns_package_no_includes_or_excludesÚ?TestFindPackages.test_pep420_ns_package_no_includes_or_excludesŒ   s#   € Ü*¨4¯=©=Ó9ˆÚRˆØ×Ñ˜hÕ1r   c                 ó�   • U R                  SU R                  5        [        U R                  SS/S9nU R	                  U/ SQ5        g )Nr%   r   rj   rC   rk   )r(   r)   r   r   rg   r>   s     r   Ú3test_regular_package_with_nested_pep420_ns_packagesÚDTestFindPackages.test_regular_package_with_nested_pep420_ns_packages‘   s@   € Ø�‰�M 4§<¡<Ô0Ü*Ø�M‰M FÐ,?Ð#@ñ
ˆð 	×Ñ˜hÒ(JÕKr   c                 ó  • [         R                  " U R                  5        [         R                  " [        R                  R                  U R                  S5      5        [        U R                  5      nU R                  U/ SQ5        g )NrQ   rk   )	r   r   r'   r/   r0   r1   r   r   rg   r>   s     r   Ú*test_pep420_ns_package_no_non_package_dirsÚ;TestFindPackages.test_pep420_ns_package_no_non_package_dirs˜   sQ   € Ü�Š�d—m‘mÔ$Ü�Š”b—g‘g—l‘l 4§=¡=Ð2EÓFÔGÜ*¨4¯=©=Ó9ˆØ×Ñ˜hÒ(JÕKr   )r,   r   r'   r*   r)   r+   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r&   r(   r@   rE   rH   rN   rS   rY   ÚpytestÚmarkÚskipifr   Úcan_symlinkra   rg   rn   rq   rt   rw   rz   Ú__static_attributes__© r   r   r	   r	      s‘   † ò#ò%ò/ô:ôò1ò
#ò
*ò)ò/ò	+ð ‡[�[×Ñ˜I×1Ò1Ó3Ô3Ð<VÐÐWñ"ó Xð"ò,òLòTò2ò
LõLr   r	   c            	       óÔ   • \ rS rSr/ SQSS/4SS/SS/4/ SQ/ 4/ S	QS/4/ S
QS/4/ SQ/ SQ4/ SQ/ SQ4S.r\R                  R                  S\R                  5       5      S 5       r	Sr
g)ÚTestFlatLayoutPackageFinderéŸ   )z.pkg/__init__.pyúpkg/__init__.pyzpkg/nested/file.txtr   z
pkg.nestedz_pkg/__init__.pyzpkg/_private/__init__.pyzpkg._private)zinvalid-pkg/__init__.pyzother.pkg/__init__.pyzyet,another/file.py)r‰   zdocs/conf.pyzdocs/readme.rst)r‰   ztests/test_pkg.pyztests/__init__.py)r‰   zexamples/__init__.pyzexamples/file.pyzexample/other_file.pyzpkg/example/__init__.pyzpkg/examples/__init__.py)r   zpkg.exampleszpkg.example)zhtmlcov/index.htmlr‰   ztasks/__init__.pyztasks/subpackage/__init__.pyzfabfile/__init__.pyzfabfile/subpackage/__init__.pyzpkg/tasks/__init__.pyzpkg/fabfile/__init__.py)r   z	pkg.taskszpkg.fabfile)zhidden-folderszprivate-packageszinvalid-namer   ÚtestsÚexamplesztool-specificÚexamplec                 ó®   • U R                   U   u  p4[        X5        [        R                  " [	        U5      5      n[        U5      [        U5      :X  d   eg r   )ÚEXAMPLESÚensure_filesr   ÚfindÚstrrd   )r   Útmp_pathrŒ   ÚfilesÚexpected_packagesÚfound_packagess         r   Ú&test_unwanted_directories_not_includedÚBTestFlatLayoutPackageFinder.test_unwanted_directories_not_includedÎ   sH   € à#'§=¡=°Ñ#9Ñ ˆÜ�XÔ%Ü0×5Ò5´c¸(³mÓDˆÜ�>Ó"¤cÐ*;Ó&<Ó<Ð<Ñ<r   r…   N)r|   r}   r~   r   rŽ   r€   r�   ÚparametrizeÚkeysr–   r„   r…   r   r   r‡   r‡   Ÿ   s¦   † ò KØ�LÐ!ð
ð
  Ð!;Ð<Ø�NÐ#ð
ò
 XØð
ò HÈ%ÈÐQâIØˆGð
ò
ò 3ð
ò
ò 0ð
ñ=,€Hð\ ‡[�[×Ñ˜Y¨¯©«Ó8ñ=ó 9ó=r   r‡   c                 ór   • U H1  nX-  nUR                   R                  SSS9  UR                  5         M3     g )NT)ÚparentsÚexist_ok)Úparentr2   Útouch)Ú	root_pathr“   Úfiler0   s       r   r�   r�   Ö   s4   € ÛˆØÑˆØ�‰×Ñ $°ÐÑ6Ø�
‰
Žò r   )Ú__doc__r/   r   r   r€   Ú
setuptoolsr   r   Úsetuptools.discoveryr   Úcompat.py39r   r	   r‡   r�   r…   r   r   Ú<module>r¥      s<   ðÙ +ã 	Û Û ã ç =Ý 8å "÷MLñ ML÷`4=ñ 4=ónr   