§
    WŠtjy7  ã                   óÜ  — 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
Z
d dlmZ d dlmZ ddlmZ d„ Zd	„ Zd
„ Ze
j                             dded¬¦  «        d„ ¦   «         Z ed¦  «        ddddddœdœ ed¦  «        dœZd„ Ze
j                             d¦  «        d„ ¦   «         Z ed¦  «        ddddddœddidœidddœ ed¦  «        d œZd!„ Z G d"„ d#¦  «        Zd'd%„Zd&„ Z dS )(é    N)ÚPath)ÚMock)ÚSetuptoolsDeprecationWarning)ÚDistributioné   )ÚDALSc           	      óÈ   — t          t          ddgdgddgi¬¦  «        ¦  «        }t          j        d¦  «         |                     ¦   «          |                     ¦   «          dS )z†
    Directories matching the glob in package_data should
    not be included in the package data.

    Regression test for #261.
    úsetup.pyÚbuild_pyÚ zpath/*©Úscript_nameÚscript_argsÚpackagesÚpackage_datazpath/subpathN)r   ÚdictÚosÚmakedirsÚparse_command_lineÚrun_commands©Ú
tmpdir_cwdÚdists     ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/tests/test_build_py.pyÚ%test_directories_in_package_data_globr      sx   € õ ÝØ"Ø#˜Ø�TØ˜x˜jÐ)ð		
ñ 	
ô 	
ñô €Dõ „K�ÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐÐÐó    c           	      óv  — t          t          ddgdgddgi¬¦  «        ¦  «        }t          j        d¦  «         t	          dd¦  «                             ¦   «          |                     ¦   «          |                     ¦   «          t          j	        t          j        d	¦  «        j
        ¦  «        s
J d
¦   «         ‚dS )zt
    Files matching recursive globs (**) in package_data should
    be included in the package data.

    #1806
    r
   r   r   zpath/**/datar   zpath/subpath/subsubpathzpath/subpath/subsubpath/dataÚwbz&build/lib/path/subpath/subsubpath/datazFile is not includedN)r   r   r   r   ÚopenÚcloser   r   ÚstatÚS_ISREGÚst_moder   s     r   Ú#test_recursive_in_package_data_globr$   %   sÐ   € õ ÝØ"Ø#˜Ø�TØ˜~Ð.Ð/ð		
ñ 	
ô 	
ñô €Dõ „KÐ)Ñ*Ô*Ð*ÝÐ	'¨Ñ.Ô.×4Ò4Ñ6Ô6Ð6à×ÒÑÔÐØ×ÒÑÔÐåŒ<�œÐ HÑIÔIÔQÑRÔRð ð Øñô ÐRð ð r   c           	      óô  — t          t          ddgdgddgi¬¦  «        ¦  «        }t          j        d¦  «         t	          dd¦  «                             ¦   «          t	          dd¦  «                             ¦   «          t          j        dt          j        ¦  «         t          j        dt          j        ¦  «         | 	                    ¦   «          | 
                    ¦   «          t          j        d	¦  «         d
S )z·
    Ensure read-only flag is not preserved in copy
    for package modules and package data, as that
    causes problems with deleting read-only files on
    Windows.

    #1451
    r
   r   Úpkgzdata.datr   úpkg/__init__.pyr   zpkg/data.datÚbuildN)r   r   r   r   r   r    Úchmodr!   ÚS_IREADr   r   ÚshutilÚrmtreer   s     r   Útest_read_onlyr-   ?   sê   € õ ÝØ"Ø#˜Ø�WØ * Ð.ð		
ñ 	
ô 	
ñô €Dõ „K�ÑÔÐÝÐ	˜DÑ!Ô!×'Ò'Ñ)Ô)Ð)Ýˆ˜ÑÔ×$Ò$Ñ&Ô&Ð&Ý„HÐ¥¤Ñ-Ô-Ð-Ý„Hˆ^�Tœ\Ñ*Ô*Ð*Ø×ÒÑÔÐØ×ÒÑÔÐÝ
„M�'ÑÔÐÐÐr   zplatform.system() == "Windows"z-On Windows, files do not have executable bitsT)ÚreasonÚraisesÚstrictc           	      óÚ  — t          t          ddgdgddgi¬¦  «        ¦  «        }t          j        d¦  «         t	          dd¦  «                             ¦   «          t	          dd¦  «                             ¦   «          t          j        dd	¦  «         |                     ¦   «          |                     ¦   «          t          j	        d
¦  «        j
        t          j        z  s
J d¦   «         ‚dS )zv
    Ensure executable bit is preserved in copy for
    package data, as users rely on it for scripts.

    #2041
    r
   r   r&   zrun-mer   r'   r   z
pkg/run-meiÀ  zbuild/lib/pkg/run-mezScript is not executableN)r   r   r   r   r   r    r)   r   r   r!   r#   ÚS_IEXECr   s     r   Útest_executable_datar3   Z   sù   € õ ÝØ"Ø#˜Ø�WØ ( Ð,ð		
ñ 	
ô 	
ñô €Dõ „K�ÑÔÐÝÐ	˜DÑ!Ô!×'Ò'Ñ)Ô)Ð)Ýˆ�tÑÔ×"Ò"Ñ$Ô$Ð$Ý„Hˆ\˜5Ñ!Ô!Ð!à×ÒÑÔÐØ×ÒÑÔÐåŒ7Ð)Ñ*Ô*Ô2µT´\ÑAð ð Ø"ñô ÐAð ð r   zÒ
        [metadata]
        name = mypkg
        version = 42

        [options]
        include_package_data = True
        packages = find:

        [options.packages.find]
        exclude = *.tests*
        r   )ú__init__.pyztest_mypkg.pyztest_file.txt)r4   úresource_file.txtÚtestszŒ
        global-include *.py *.txt
        global-exclude *.py[cod]
        prune dist
        prune build
        prune *.egg-info
        )z	setup.cfgÚmypkgúMANIFEST.inc                 óT  — t           j                             t          ¦  «         t	          ddi¦  «        }|                     ¦   «          |                     d¦  «        }d}t          j        t          |¬¦  «        5  t          j        d¦  «        dk    rt          j        dd	d
¬¦  «         |                     ¦   «          |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t!          |                     d¦  «        j        ¦  «        }|dz                       ¦   «         sJ ‚|dz                       ¦   «         sJ ‚dD ]M}t          j        t(          ¦  «        5  ||z                       ¦   «         rJ ‚	 d d d ¦  «         n# 1 swxY w Y   ŒNt          j        d¦  «         d S )Nr   ú	%PEP 517%r   z9Python recognizes 'mypkg\.tests' as an importable package)ÚmatchÚSETUPTOOLS_USE_DISTUTILSÚstdlibÚignorez!'encoding' argument not specifiedzdistutils.text_file)Úmoduleúmypkg/__init__.pyzmypkg/resource_file.txt)zmypkg/tests/__init__.pyzmypkg/tests/test_mypkg.pyzmypkg/tests/test_file.txtzmypkg/testsz#3260)ÚjaracoÚpathr(   ÚEXAMPLE_WITH_MANIFESTr   Úparse_config_filesÚget_command_objÚpytestÚwarnsr   r   ÚgetenvÚwarningsÚfilterwarningsÚfinalize_optionsÚrunr   Ú	build_libÚexistsr/   ÚAssertionErrorÚxfail)r   r   r   ÚmsgÚ	build_dirÚfs         r   Útest_excluded_subpackagesrT       s,  € Ý
„K×ÒÕ+Ñ,Ô,Ð,Ý˜¨Ð4Ñ5Ô5€DØ×ÒÑÔÐà×#Ò# JÑ/Ô/€Hà
F€CÝ	ŒÕ2¸#Ð	>Ñ	>Ô	>ð ð õ
 Œ9Ð/Ñ0Ô0°HÒ<Ð<õ Ô#ØØ3Ø,ðñ ô ð ð 	×!Ò!Ñ#Ô#Ð#Ø�Š‰Œˆð!ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ$ �T×)Ò)¨*Ñ5Ô5Ô?Ñ@Ô@€IØÐ+Ñ+×3Ò3Ñ5Ô5Ð5Ð5Ð5ØÐ1Ñ1×9Ò9Ñ;Ô;Ð;Ð;Ð;ðð 	0ð 	0ˆõ Œ]�>Ñ*Ô*ð 	0ð 	0ð " A™×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0øõ
 „L�ÑÔÐÐÐs%   Á<AC Ã C$Ã'C$Å!FÆF	ÆF	z/ignore::setuptools.SetuptoolsDeprecationWarningc                 óö  — t           j                             t          ¦  «         t	          ddi¦  «        }|                     ¦   «          |j        sJ ‚|                     d¦  «        }|                     d¦  «         t          t          |j        ¦  «                             d¦  «        ¦  «        }|                     ¦   «         sJ ‚|                     d¦  «        }|                     ¦   «          |                     d¦  «        }t          |j        ¬¦  «        }|                     |d|¦  «         |j                             dd	¦  «         |                     |¦  «         d	|_        |                     ¦   «          |                     ¦   «          |                     ¦   «          |j                             dd	¦  «         |                     |¦  «         ||_        |                     ¦   «          |                     ¦   «          |j        sJ ‚t5          d
„ |                     ¦   «         ¦  «        }|sJ ‚t9          t          |j        d¦  «        ¦  «                             t>          j         d¦  «        }||v sJ ‚d	S )zwWhen provided with the ``existing_egg_info_dir`` attribute, build_py should not
    attempt to run egg_info again.
    r   r:   Úegg_infoz
*.egg-infor   )Úside_effectrL   Ú
data_filesNc                 óB   — |                       t          j        d¦  «        S )Nú/©Úreplacer   Úsep)Úxs    r   ú<lambda>z(test_existing_egg_info.<locals>.<lambda>ÿ   s   € ˜AŸIšI¥b¤f¨cÑ2Ô2€ r   r@   rZ   )!rA   rB   r(   rC   r   rD   Úinclude_package_datarE   Úrun_commandÚnextr   Úegg_baseÚglobÚis_dirrK   r   rL   ÚsetattrÚ__dict__ÚpopÚreinitialize_commandÚexisting_egg_info_dirÚassert_calledÚ
reset_mockÚassert_not_calledrX   ÚmapÚget_outputsÚstrrM   r\   r   r]   )	r   Úmonkeypatchr   rV   Úegg_info_dirr   Úegg_info_runÚoutputsÚexamples	            r   Útest_existing_egg_inforv   Î   sW  € õ „K×ÒÕ+Ñ,Ô,Ð,Ý˜¨Ð4Ñ5Ô5€DØ×ÒÑÔÐØÔ$Ð$Ð$Ð$à×#Ò# JÑ/Ô/€HØ×Ò�ZÑ Ô Ð Ý�˜XÔ.Ñ/Ô/×4Ò4°\ÑBÔBÑCÔC€LØ×ÒÑ Ô Ð Ð Ð ð ×#Ò# JÑ/Ô/€HØ×ÒÑÔÐØ×#Ò# JÑ/Ô/€HÝ H¤LÐ1Ñ1Ô1€LØ×Ò˜ %¨Ñ6Ô6Ð6ð
 Ô×Ò˜,¨Ñ-Ô-Ð-Ø×Ò˜hÑ'Ô'Ð'ð &*€HÔ"Ø‡L‚L�N„N€NØ×ÒÑ Ô Ð ð ×ÒÑÔÐØÔ×Ò˜,¨Ñ-Ô-Ð-Ø×Ò˜hÑ'Ô'Ð'ð &2€HÔ"Ø‡L‚L�N„N€NØ×"Ò"Ñ$Ô$Ð$ØÔÐÐÐõ Ð2Ð2°H×4HÒ4HÑ4JÔ4JÑKÔK€GØ€N€Nˆ7Ý•$�xÔ)Ð+>Ñ?Ô?Ñ@Ô@×HÒHÍÌÐQTÑUÔU€GØ�gÐÐÐÐÐÐr   a;  
        [project]
        name = "mypkg"
        version = "42"

        [tool.setuptools]
        packages = ["mypkg", "mypkg.sub1", "mypkg.sub2", "mypkg.sub2.nested"]

        [tool.setuptools.package-dir]
        "" = "src"
        "mypkg.sub2" = "src/mypkg/_sub2"
        "mypkg.sub2.nested" = "other"
        r7   )r4   zmod1.pyzmod2.py)r4   r5   Úsub1Ú_sub2)r4   zmod3.pyzL
        global-include *.py *.txt
        global-exclude *.py[cod]
        )úpyproject.tomlÚsrcÚotherr8   c                 ó|  — t           j                             t          ¦  «         t	          ddi¦  «        }|                     ¦   «          |                     d¦  «        }d|_        |                     ¦   «          |j	         
                    t          j        d¦  «        }d„ |                     ¦   «         D ¦   «         }||› d�|› d�|› d	�|› d
�|› d�|› d�|› d�hk    sJ ‚d„ |                     ¦   «                              ¦   «         D ¦   «         }||› d�d|› d�d|› d	�d|› d
�d|› d�d|› d�d|› d�dik    sJ ‚d S )Nr   z%test%r   TrZ   c                 óN   — h | ]"}|                      t          j        d ¦  «        ’Œ#S ©rZ   r[   )Ú.0r^   s     r   ú	<setcomp>z#test_get_outputs.<locals>.<setcomp>8  s(   € ÐFÐFÐF¨!ˆq�yŠy�œ Ñ%Ô%ÐFÐFÐFr   z/mypkg/__init__.pyz/mypkg/resource_file.txtz/mypkg/sub1/__init__.pyz/mypkg/sub1/mod1.pyz/mypkg/sub2/mod2.pyz/mypkg/sub2/nested/__init__.pyz/mypkg/sub2/nested/mod3.pyc                 ó’   — i | ]D\  }}|                      t          j        d ¦  «        |                      t          j        d ¦  «        “ŒES r~   r[   )r   ÚkÚvs      r   ú
<dictcomp>z$test_get_outputs.<locals>.<dictcomp>B  sN   € ð ð ð áˆAˆqð 	
�	Š	•"”&˜#ÑÔ §	¢	­"¬&°#Ñ 6Ô 6ðð ð r   zsrc/mypkg/__init__.pyzsrc/mypkg/resource_file.txtzsrc/mypkg/sub1/__init__.pyzsrc/mypkg/sub1/mod1.pyzsrc/mypkg/_sub2/mod2.pyzother/__init__.pyzother/mod3.py)rA   rB   r(   ÚEXAMPLE_ARBITRARY_MAPPINGr   rD   rE   Úeditable_modeÚensure_finalizedrM   r\   r   r]   ro   Úget_output_mappingÚitems)r   r   r   rM   rt   Úmappings         r   Útest_get_outputsr‹   /  sÙ  € Ý
„K×ÒÕ/Ñ0Ô0Ð0Ý˜¨Ð1Ñ2Ô2€DØ×ÒÑÔÐà×#Ò# JÑ/Ô/€HØ!€HÔØ×ÒÑÔÐØÔ"×*Ò*­2¬6°3Ñ7Ô7€IØFÐF¨x×/CÒ/CÑ/EÔ/EÐFÑFÔF€GØØÐ(Ð(Ð(ØÐ.Ð.Ð.ØÐ-Ð-Ð-ØÐ)Ð)Ð)ØÐ)Ð)Ð)ØÐ4Ð4Ð4ØÐ0Ð0Ð0ðò ð ð ð ðð à×/Ò/Ñ1Ô1×7Ò7Ñ9Ô9ðñ ô €Gð ØÐ(Ð(Ð(Ð*AØÐ.Ð.Ð.Ð0MØÐ-Ð-Ð-Ð/KØÐ)Ð)Ð)Ð+CØÐ)Ð)Ð)Ð+DØÐ4Ð4Ð4Ð6IØÐ0Ð0Ð0°/ðò ð ð ð ð ð r   c            
       ó^  — e Zd Z ed¦  «         ed¦  «         ed¦  «        dœZdddddœidd	hd
œdddddœiiddhd
œdddidddœih d£d
œdœZej                             dd ej	        dej         
                    d¬¦  «        ¬¦  «        g¦  «        ej                             de                     ¦   «         ¦  «        d„ ¦   «         ¦   «         Zej                             ddg¦  «        ej                             de                     ¦   «         ¦  «        d„ ¦   «         ¦   «         Zd„ ZdS )ÚTestTypeInfoFileszV
            [project]
            name = "foo"
            version = "1"
            zž
            [project]
            name = "foo"
            version = "1"

            [tool.setuptools]
            include-package-data = false
            zú
            [project]
            name = "foo"
            version = "1"

            [tool.setuptools]
            include-package-data = false

            [tool.setuptools.exclude-package-data]
            "*" = ["py.typed", "*.pyi"]
            )Údefault_pyprojectÚdont_include_package_dataÚexclude_type_infoÚfoor   )úbar.pyiúpy.typedr4   zfoo/bar.pyiúfoo/py.typed)Údirectory_structureÚexpected_type_filesÚbar)r“   zmod.pyizfoo/bar/mod.pyizfoo/bar/py.typedzfoo.pyi)Ú	namespaceú__init__.pyir“   >   úfoo/__init__.pyiúfoo/namespace/foo.pyir”   )Úsimple_namespaceÚnested_inside_namespaceÚnamespace_nested_inside_regularÚ	pyprojectrŽ   r�   zpypa/setuptools#4350)r.   )Úmarksru   c                 óü   — i | j         |         d         ¥d| j        |         i¥}| j         |         d         }t          j                             |¦  «         t          ¦   «         }t          |¦  «        }||k    sJ ‚d S ©Nr•   ry   r–   )ÚEXAMPLESÚ
PYPROJECTSrA   rB   r(   Úget_finalized_build_pyro   ©Úselfr   rŸ   ru   Ú	structurer–   r   rt   s           r   Ú#test_type_files_included_by_defaultz5TestTypeInfoFiles.test_type_files_included_by_default›  sŽ   € ð
ØŒm˜GÔ$Ð%:Ô;ð
à˜dœo¨iÔ8ð
ð 
ˆ	ð #œm¨GÔ4Ð5JÔKÐÝŒ×Ò˜)Ñ$Ô$Ð$å)Ñ+Ô+ˆÝ˜hÑ'Ô'ˆØ" gÒ-Ð-Ð-Ð-Ð-Ð-r   r�   c                 ó  — i | j         |         d         ¥d| j        |         i¥}| j         |         d         }t          j                             |¦  «         t          ¦   «         }t          |¦  «        }|                     |¦  «        sJ ‚d S r¢   )r£   r¤   rA   rB   r(   r¥   ro   Ú
isdisjointr¦   s           r   Útest_type_files_can_be_excludedz1TestTypeInfoFiles.test_type_files_can_be_excluded²  s—   € ð
ØŒm˜GÔ$Ð%:Ô;ð
à˜dœo¨iÔ8ð
ð 
ˆ	ð #œm¨GÔ4Ð5JÔKÐÝŒ×Ò˜)Ñ$Ô$Ð$å)Ñ+Ô+ˆÝ˜hÑ'Ô'ˆØ"×-Ò-¨gÑ6Ô6Ð6Ð6Ð6Ð6Ð6r   c                 óÀ   — t          d¦  «        dddœdœ}ddh}t          j                             |¦  «         t	          ¦   «         }t          |¦  «        }||k    sJ ‚d S )Nzl
                [project]
                name = "foo-stubs"
                version = "1"
                r   )r™   r’   )ry   z	foo-stubszfoo-stubs/__init__.pyizfoo-stubs/bar.pyi)r   rA   rB   r(   r¥   ro   )r§   r   r¨   r–   r   rt   s         r   Útest_stub_only_packagez(TestTypeInfoFiles.test_stub_only_packageÀ  s€   € å"ðñô ð +-¸Ð<Ð<ð	
ð 	
ˆ	ð  8Ð9LÐMÐÝŒ×Ò˜)Ñ$Ô$Ð$å)Ñ+Ô+ˆÝ˜hÑ'Ô'ˆØ" gÒ-Ð-Ð-Ð-Ð-Ð-r   N)Ú__name__Ú
__module__Ú__qualname__r   r¤   r£   rF   ÚmarkÚparametrizeÚparamrP   Úkeysr©   r¬   r®   © r   r   r�   r�   Q  s  € € € € € à!˜Tðñ
ô 
ð &* Tðñ	&
ô 	&
ð "˜Tð
ñ
ô 
ð%ð €JðH Ø!Ø "Ø#%ðð ð$ð %2°>Ð#Bð	
ð 	
ð ØØ$&Ø#%ðð ðð$ð %6Ð7IÐ#Jð
$
ð 
$
ð à! 2ð"ð %'Ø "ðð ð$ð$ð $ð $ð,
ð ,
ð-&ð &€HðP „[×ÒØàØˆFŒLØ+Ø”k×'Ò'Ð/EÐ'ÑFÔFðñ ô ð	
ñ	ô 	ð „[×Ò˜Y¨¯ª©¬Ñ8Ô8ð
.ð 
.ñ 9Ô8ñ	ô 	ð
.ð „[×Ò˜[Ð+>Ð*?Ñ@Ô@Ø„[×Ò˜Y¨¯ª©¬Ñ8Ô8ð
7ð 
7ñ 9Ô8ñ AÔ@ð
7ð.ð .ð .ð .ð .r   r�   ú%build_py-test%c                 ó¢   — t          d| i¦  «        }|                     ¦   «          |                     d¦  «        }|                     ¦   «          |S )Nr   r   )r   rD   rE   rK   )r   r   r   s      r   r¥   r¥   Ó  sP   € Ý˜¨Ð4Ñ5Ô5€DØ×ÒÑÔÐØ×#Ò# JÑ/Ô/€HØ×ÒÑÔÐØ€Or   c                 ól   ‡— t          | j        ¦  «        Šˆfd„|                      ¦   «         D ¦   «         S )Nc                 óŒ   •— h | ]@}t           j                             |‰¦  «                             t           j        d ¦  «        ’ŒAS r~   )r   rB   Úrelpathr\   r]   )r   r^   rR   s     €r   r€   zget_outputs.<locals>.<setcomp>Ý  sK   ø€ ð ð ð àõ 	Œ�Š˜˜9Ñ%Ô%×-Ò-­b¬f°cÑ:Ô:ðð ð r   )r   rM   ro   )r   rR   s    @r   ro   ro   Û  sJ   ø€ Ý�XÔ'Ñ(Ô(€Iðð ð ð à×%Ò%Ñ'Ô'ðñ ô ð r   )r·   )!r   r+   r!   rI   Úpathlibr   Úunittest.mockr   Újaraco.pathrA   rF   Ú
setuptoolsr   Úsetuptools.distr   Útextwrapr   r   r$   r-   r²   rP   rO   r3   rC   rT   rJ   rv   r…   r‹   r�   r¥   ro   r¶   r   r   ú<module>rÂ      s•  ðØ 	€	€	€	Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø (Ð (Ð (Ð (Ð (Ð (à Ð Ð Ð Ð Ð ðð ð ð(ð ð ð4ð ð ð6 „×ÒØ$Ø:ØØð	 ñ ô ðð ñô ðð: �ð	ñô ð ØàØØð
ð 
ðð ð �4ð	ñô ð1!ð !Ð ðH+ð +ð +ð\ „×ÒÐMÑNÔNð3ð 3ñ OÔNð3ðn �dð	ñô ð  	ØØ!#à!Øðð ð
 ˜2ðð

ð 

ðð Øðð ð �4ð	ñô ðC'ð 'Ð ðTð ð ðD.ð .ð .ð .ð .ñ .ô .ð .ðDð ð ð ðð ð ð ð r   