§
    WŠtjÒ=  ã                  ó.  — 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m	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d	d
lmZmZ d	dlmZ d	dlmZ d dlmc mZ d dlZ d dl!m"Z" dZ#dd„Z$ G d„ dej        ¦  «        Zd„ Z% G d„ d¦  «        Z&dS )é    )ÚannotationsN)ÚIterableÚIterator)Úpartial)Úglob)ÚPath)ÚAny)Úunique_everseené   )ÚStrPathÚStrPathT)ÚDistribution)ÚSetuptoolsDeprecationWarning)Úconvert_path)z*.pyizpy.typedÚreturnÚNonec                óx   — t          j        | t          j        | ¦  «        j        t          j        z  ¦  «         d S ©N)ÚosÚchmodÚstatÚst_modeÚS_IWRITE)Útargets    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/command/build_py.pyÚmake_writabler      s,   € Ý„HˆV•R”W˜V‘_”_Ô,­t¬}Ñ<Ñ=Ô=Ð=Ð=Ð=ó    c                  ó  ‡ — e Zd ZU dZded<   dZded<   dZded	<   d=d„Z	 	 	 	 d>d?ˆ fd„Zd=d„Z	d@d„Z
d „ ZdAd"„ZdBd%„Zd&„ ZdCdDˆ fd)„ZdEd+„ZdFd-„ZdFd.„Zd=d/„Zd=d0„ZdGd5„Zd=d6„Zd7„ Zd8„ ZdHd9„Zd:„ ZedId<„¦   «         Zˆ xZS )JÚbuild_pyaX  Enhanced 'build_py' command that includes data files with packages

    The data files are specified via a 'package_data' argument to 'setup()'.
    See 'setuptools.dist.Distribution' for more details.

    Also, this version of the 'build_py' command allows you to specify both
    'py_modules' and 'packages' in the same setup operation.
    r   ÚdistributionFÚboolÚeditable_modeNzStrPath | NoneÚexisting_egg_info_dirr   r   c                ó²   — t           j                             | ¦  «         | j        j        | _        | j        j        pi | _        d| j        v r
| j        d= d S d S )NÚ
data_files)Úorigr   Úfinalize_optionsr    Úpackage_dataÚexclude_package_dataÚ__dict__©Úselfs    r   r'   zbuild_py.finalize_options.   s^   € ÝŒ×&Ò& tÑ,Ô,Ð,Ø Ô-Ô:ˆÔØ$(Ô$5Ô$JÐ$PÈbˆÔ!Ø˜4œ=Ð(Ð(Ø”˜lÐ+Ð+Ð+ð )Ð(r   Té   Úinfiler   Úoutfiler   Úpreserve_modeÚpreserve_timesÚlinkú
str | NoneÚlevelÚobjectútuple[StrPathT | str, bool]c                ó  •— |r\t          t          |¦  «                             ¦   «         ¦  «        }t          t          |¦  «                             ¦   «         ¦  «        }t          ¦   «                              ||||||¦  «        S r   )Ústrr   ÚresolveÚsuperÚ	copy_file)r,   r.   r/   r0   r1   r2   r4   Ú	__class__s          €r   r;   zbuild_py.copy_file5   st   ø€ ð ð 	3Ý�˜f™œ×-Ò-Ñ/Ô/Ñ0Ô0ˆFÝ�$˜w™-œ-×/Ò/Ñ1Ô1Ñ2Ô2ˆGÝ‰wŒw× Ò Ø�G˜]¨N¸DÀ%ñ
ô 
ð 	
r   c                ó0  — | j         s| j        r| j        rdS | j         r|                      ¦   «          | j        r(|                      ¦   «          |                      ¦   «          |                      t          j         	                    | d¬¦  «        ¦  «         dS )z?Build modules, packages, and copy data files to build directoryNF)Úinclude_bytecode)
Ú
py_modulesÚpackagesr"   Úbuild_modulesÚbuild_packagesÚbuild_package_dataÚbyte_compiler&   r   Úget_outputsr+   s    r   Úrunzbuild_py.runF   sŸ   € à”ð 	 4¤=ð 	°TÔ5Gð 	ØˆFàŒ?ð 	!Ø×ÒÑ Ô Ð àŒ=ð 	&Ø×ÒÑ!Ô!Ð!Ø×#Ò#Ñ%Ô%Ð%ð 	×Ò�$œ-×3Ò3°DÈ5Ð3ÑQÔQÑRÔRÐRÐRÐRr   Úattrr8   r	   c                óŽ   — |dk    r |                       ¦   «         | _        | j        S t          j                             | |¦  «        S )zlazily compute data filesr%   )Ú_get_data_filesr%   r&   r   Ú__getattr__)r,   rG   s     r   rJ   zbuild_py.__getattr__W   s@   € à�<ÒÐØ"×2Ò2Ñ4Ô4ˆDŒOØ”?Ð"ÝŒ}×(Ò(¨¨tÑ4Ô4Ð4r   c                ó|   — |                       ¦   «          t          t          | j        | j        pd¦  «        ¦  «        S )z?Generate list of '(package,src_dir,build_dir,filenames)' tuples© )Úanalyze_manifestÚlistÚmapÚ_get_pkg_data_filesr@   r+   s    r   rI   zbuild_py._get_data_files^   s6   € à×ÒÑÔÐÝ•C˜Ô0°$´-Ð2EÀ2ÑFÔFÑGÔGÐGr   ú%list[tuple[str, str, str, list[str]]]c                óŠ   — | j                              di ¦  «         t          t          | j        | j        pd¦  «        ¦  «        S )z¡
        Generate list of ``(package,src_dir,build_dir,filenames)`` tuples,
        but without triggering any attempt to analyze or build the manifest.
        Úmanifest_filesrL   )r*   Ú
setdefaultrN   rO   rP   r@   r+   s    r   Úget_data_files_without_manifestz(build_py.get_data_files_without_manifestc   s?   € ð 	Œ× Ò Ð!1°2Ñ6Ô6Ð6Ý•C˜Ô0°$´-Ð2EÀ2ÑFÔFÑGÔGÐGr   Úpackageútuple[str, str, str, list[str]]c                óÜ   ‡— |                       |¦  «        Št          j        j        | j        g|                     d¦  «        z   Ž }ˆfd„|                      |‰¦  «        D ¦   «         }|‰||fS )Nú.c                óP   •— g | ]"}t           j                             |‰¦  «        ‘Œ#S rL   )r   ÚpathÚrelpath)Ú.0ÚfileÚsrc_dirs     €r   ú
<listcomp>z0build_py._get_pkg_data_files.<locals>.<listcomp>u   s9   ø€ ð 
ð 
ð 
àõ ŒG�OŠO˜D 'Ñ*Ô*ð
ð 
ð 
r   )Úget_package_dirr   r[   ÚjoinÚ	build_libÚsplitÚfind_data_files)r,   rV   Ú	build_dirÚ	filenamesr_   s       @r   rP   zbuild_py._get_pkg_data_filesm   s…   ø€ à×&Ò& wÑ/Ô/ˆõ ”G”L D¤NÐ#3°g·m²mÀCÑ6HÔ6HÑ#HÐJˆ	ð
ð 
ð 
ð 
à×,Ò,¨W°gÑ>Ô>ð
ñ 
ô 
ˆ	ð ˜ ¨IÐ5Ð5r   c                ó–  — |                       | j        ||t          ¬¦  «        }t          t	          t
          d¬¦  «        |¦  «        }t          j                             |¦  «        }t          t          j        j        |¦  «        }t          j        | j                             |g ¦  «        |¦  «        }|                      |||¦  «        S )z6Return filenames for package's data files in 'src_dir')Úextra_patternsT)Ú	recursive)Ú_get_platform_patternsr(   Ú_IMPLICIT_DATA_FILESrO   r   r   Ú	itertoolsÚchainÚfrom_iterableÚfilterr   r[   ÚisfilerS   ÚgetÚexclude_data_files)r,   rV   r_   ÚpatternsÚglobs_expandedÚglobs_matchesÚ
glob_filesÚfiless           r   re   zbuild_py.find_data_files{   sµ   € à×.Ò.ØÔØØÝ/ð	 /ñ 
ô 
ˆõ �W¥T°TÐ:Ñ:Ô:¸HÑEÔEˆå!œ×5Ò5°nÑEÔEˆÝ�BœGœN¨MÑ:Ô:ˆ
Ý”ØÔ×#Ò# G¨RÑ0Ô0Øñ
ô 
ˆð ×&Ò& w°¸Ñ?Ô?Ð?r   r>   ú	list[str]c                óº   •— | j         r3t          |                      ¦   «                              ¦   «         ¦  «        S t	          ¦   «                              |¦  «        S )ú1See :class:`setuptools.commands.build.SubCommand`)r"   rN   Úget_output_mappingÚkeysr:   rE   )r,   r>   r<   s     €r   rE   zbuild_py.get_outputs�   sM   ø€ àÔð 	:Ý˜×/Ò/Ñ1Ô1×6Ò6Ñ8Ô8Ñ9Ô9Ð9Ý‰wŒw×"Ò"Ð#3Ñ4Ô4Ð4r   údict[str, str]c                óÔ   — t          j        |                      ¦   «         |                      ¦   «         ¦  «        }t	          t          |t          j        d¦  «        ¬¦  «        ¦  «        S )r{   r   )Úkey)rm   rn   Ú _get_package_data_output_mappingÚ_get_module_mappingÚdictÚsortedÚoperatorÚ
itemgetter)r,   Úmappings     r   r|   zbuild_py.get_output_mapping“   sY   € å”/Ø×1Ò1Ñ3Ô3Ø×$Ò$Ñ&Ô&ñ
ô 
ˆõ •F˜7­Ô(;¸AÑ(>Ô(>Ð?Ñ?Ô?Ñ@Ô@Ð@r   úIterator[tuple[str, str]]c              #  ó®   K  — |                       ¦   «         D ]=\  }}}|                     d¦  «        }|                      | j        ||¦  «        }||fV — Œ>dS )z5Iterate over all modules producing (dest, src) pairs.rY   N)Úfind_all_modulesrd   Úget_module_outfilerc   )r,   rV   ÚmoduleÚmodule_fileÚfilenames        r   r‚   zbuild_py._get_module_mapping›   sp   è è € à,0×,AÒ,AÑ,CÔ,Cð 	*ð 	*Ñ(ˆG�V˜[Ø—m’m CÑ(Ô(ˆGØ×.Ò.¨t¬~¸wÈÑOÔOˆHØ˜[Ð)Ð)Ð)Ð)Ð)ð	*ð 	*r   c              #  ó¾   K  — | j         D ]R\  }}}}|D ]H}t          j                             ||¦  «        }t          j                             ||¦  «        }||fV — ŒIŒSdS )z6Iterate over package data producing (dest, src) pairs.N)r%   r   r[   rb   )r,   rV   r_   rf   rg   rŽ   r   Úsrcfiles           r   r�   z)build_py._get_package_data_output_mapping¢   s|   è è € à6:´oð 	(ð 	(Ñ2ˆG�W˜i¨Ø%ð (ð (�ÝœŸš i°Ñ:Ô:�Ýœ'Ÿ,š, w°Ñ9Ô9�Ø˜wÐ'Ð'Ð'Ð'Ð'ð(ð	(ð 	(r   c                óî   — |                       ¦   «         D ]_\  }}|                      t          j                             |¦  «        ¦  «         |                      ||¦  «        \  }}t          |¦  «         Œ`dS )z$Copy data files into build directoryN)r�   Úmkpathr   r[   Údirnamer;   r   )r,   r   r�   Ú_outfÚ_copieds        r   rC   zbuild_py.build_package_dataª   ss   € à#×DÒDÑFÔFð 	"ð 	"‰OˆF�GØ�KŠK�œŸš¨Ñ/Ô/Ñ0Ô0Ð0Ø!Ÿ^š^¨G°VÑ<Ô<‰NˆE�7Ý˜&Ñ!Ô!Ð!Ð!ð	"ð 	"r   c                ól  — i | _         | j        j        sd S i }| j        pdD ]'}||t	          |                      |¦  «        ¦  «        <   Œ(| j        rgt          | j        d¦  «                             ¦   «         r@| j        }t          |d¦  «        }| 	                    d¬¦  «         
                    ¦   «         }n=|                      d¦  «         |                      d¦  «        }|j        }|j        j        }t!          ¦   «         }|                      ||¦  «        D �]}t$          j                             t	          |¦  «        ¦  «        \  }	}
d }|
}|	rZ|	|k    rT|	|vrP|	}t$          j                             |	¦  «        \  }	}t$          j                             ||
¦  «        }
|	r
|	|k    r|	|v°P|	|v r„|
|k    r|                     |
¦  «        rŒ²n3|                     ||	         |
¦  «        }|r|                     |¦  «         | j                              ||	         g ¦  «                             |¦  «         �Œd S )NrL   zSOURCES.txtzutf-8)ÚencodingÚegg_info)rS   r    Úinclude_package_datar@   Úassert_relativera   r#   r   ÚexistsÚ	read_textÚ
splitlinesÚrun_commandÚget_finalized_commandr˜   Úfilelistrx   Ú_IncludePackageDataAbuseÚ_filter_build_filesr   r[   rd   rb   Ú	is_moduleÚimportable_subpackageÚwarnrT   Úappend)r,   Úsrc_dirsrV   Úegg_info_dirÚmanifestrx   Úei_cmdÚcheckr[   ÚdÚfÚprevÚoldfÚdfÚ
importables                  r   rM   zbuild_py.analyze_manifest±   sY  € Ø46ˆÔØÔ Ô5ð 	ØˆFØ#%ˆØ”}Ð*¨ð 	Oð 	OˆGàGNˆH•_ T×%9Ò%9¸'Ñ%BÔ%BÑCÔCÑDÐDð Ô&ð	*å�TÔ/°Ñ?Ô?×FÒFÑHÔHð	*ð  Ô5ˆLÝ˜L¨-Ñ8Ô8ˆHØ×&Ò&°Ð&Ñ8Ô8×CÒCÑEÔEˆEˆEà×Ò˜ZÑ(Ô(Ð(Ø×/Ò/°
Ñ;Ô;ˆFØ!œ?ˆLØ”OÔ)ˆEå(Ñ*Ô*ˆØ×,Ò,¨U°LÑAÔAð 	Mñ 	MˆDÝ”7—=’=¥°Ñ!6Ô!6Ñ7Ô7‰DˆAˆqØˆDØˆDØð (˜˜Tš	˜	 a¨xÐ&7Ð&7Ø�ÝœŸš aÑ(Ô(‘��2Ý”G—L’L  QÑ'Ô'�ð ð (˜˜Tš	˜	 a¨xÐ&7Ð&7ð �Hˆ}ˆ}Ø˜’9�9Ø—’ qÑ)Ô)ð !Ø ð!ð "'×!<Ò!<¸XÀa¼[È!Ñ!LÔ!L�JØ!ð /ØŸ
š
 :Ñ.Ô.Ð.ØÔ#×.Ò.¨x¸¬{¸BÑ?Ô?×FÒFÀtÑLÔLÐLùð!	Mð 	Mr   rx   úIterable[str]r˜   úIterator[str]c              #  ó<  ‡K  — |                       d¦  «        }|| j        |j        |j        f}d„ |D ¦   «         }|D ]_}t          j                             |¦  «        Št          j                             |¦  «        rt          ˆfd„|D ¦   «         ¦  «        r|V — Œ`dS )a}  
        ``build_meta`` may try to create egg_info outside of the project directory,
        and this can be problematic for certain plugins (reported in issue #3500).

        Extensions might also include between their sources files created on the
        ``build_lib`` and ``build_temp`` directories.

        This function should filter this case of invalid files out.
        Úbuildc                óP   — g | ]#}|¯t           j                             |¦  «        ‘Œ$S rL   )r   r[   Únormpath)r]   Úps     r   r`   z0build_py._filter_build_files.<locals>.<listcomp>è   s-   € ÐBÐBÐB¨QÀÐB•R”W×%Ò% aÑ(Ô(ÐBÐBÐBr   c              3  ó    •K  — | ]}|‰vV — Œ	d S r   rL   )r]   r¬   Ú	norm_paths     €r   ú	<genexpr>z/build_py._filter_build_files.<locals>.<genexpr>ì   s(   øè è € Ð-TÐ-TÀQ¨a°yÐ.@Ð-TÐ-TÐ-TÐ-TÐ-TÐ-Tr   N)	rŸ   rc   Ú
build_tempÚ
build_baser   r[   r·   ÚisabsÚall)r,   rx   r˜   rµ   Ú
build_dirsÚ	norm_dirsr^   rº   s          @r   r¢   zbuild_py._filter_build_filesÚ   s·   øè è € ð ×*Ò*¨7Ñ3Ô3ˆØ ¤°Ô0@À%ÔBRÐSˆ
ØBÐB°*ÐBÑBÔBˆ	àð 	ð 	ˆDÝœ×(Ò(¨Ñ.Ô.ˆIÝ”7—=’= Ñ&Ô&ð ­#Ð-TÐ-TÐ-TÐ-TÈ)Ð-TÑ-TÔ-TÑ*TÔ*Tð Ø�
�
�
øð	ð 	r   c                ó   — d S r   rL   r+   s    r   Úget_data_fileszbuild_py.get_data_filesï   s   € Øˆr   c                óà  — 	 | j         |         S # t          $ r Y nw xY wt          j                             | ||¦  «        }|| j         |<   |r| j        j        s|S | j        j        D ]"}||k    s|                     |dz   ¦  «        r nŒ#|S t          |d¦  «        5 }| 	                    ¦   «         }ddd¦  «         n# 1 swxY w Y   d|vr#t          j                             d|› d�¦  «        ‚|S )z8Check namespace packages' __init__ for declare_namespacerY   ÚrbNs   declare_namespacezNamespace package problem: z¤ is a namespace package, but its
__init__.py does not call declare_namespace()! Please fix it.
(See the setuptools manual under "Namespace Packages" for details.)
")Úpackages_checkedÚKeyErrorr&   r   Úcheck_packager    Únamespace_packagesÚ
startswithÚopenÚreadÚ	distutilsÚerrorsÚDistutilsError)r,   rV   Úpackage_dirÚinit_pyÚpkgr­   Úcontentss          r   rÈ   zbuild_py.check_packageò   sl  € ð	ØÔ(¨Ô1Ð1øÝð 	ð 	ð 	ØˆDð	øøøõ ”-×-Ò-¨d°G¸[ÑIÔIˆØ)0ˆÔ˜gÑ&àð 	˜dÔ/ÔBð 	ØˆNàÔ$Ô7ð 	ð 	ˆCØ�gŠ~ˆ~ §¢°¸#±Ñ!>Ô!>ˆ~Ø�ð ð ˆNå�'˜4Ñ Ô ð 	  AØ—v’v‘x”xˆHð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 à xÐ/Ð/ÝÔ"×1Ò1ð8¨gð 8ð 8ð 8ñô ð ð ˆs   ‚ �
›ÂB<Â<C ÃC c                ón   — i | _         t          j                             | ¦  «         d| _        d | _        d S )NF)rÆ   r&   r   Úinitialize_optionsr"   r#   r+   s    r   rÕ   zbuild_py.initialize_options  s6   € Ø "ˆÔÝŒ×(Ò(¨Ñ.Ô.Ð.Ø"ˆÔØ%)ˆÔ"Ð"Ð"r   c                ó²   — t           j                             | |¦  «        }| j        j        �*t
          j                             | j        j        |¦  «        S |S r   )r&   r   ra   r    Úsrc_rootr   r[   rb   )r,   rV   Úress      r   ra   zbuild_py.get_package_dir  sF   € ÝŒm×+Ò+¨D°'Ñ:Ô:ˆØÔÔ%Ð1Ý”7—<’< Ô 1Ô :¸CÑ@Ô@Ð@Øˆ
r   c                ó(  ‡‡— t          ‰¦  «        Š|                      | j        ||¦  «        }ˆfd„|D ¦   «         }t          j                             |¦  «        }t          |¦  «        Šˆfd„‰D ¦   «         }t          t          |¦  «        ¦  «        S )z6Filter filenames for package's data files in 'src_dir'c              3  óB   •K  — | ]}t          j        ‰|¦  «        V — Œd S r   )Úfnmatchrp   )r]   Úpatternrx   s     €r   r»   z.build_py.exclude_data_files.<locals>.<genexpr>$  s/   øè è € ÐOÐO¸7�œ u¨gÑ6Ô6ÐOÐOÐOÐOÐOÐOr   c              3  ó$   •K  — | ]
}|‰v¯|V — Œd S r   rL   )r]   ÚfnÚbads     €r   r»   z.build_py.exclude_data_files.<locals>.<genexpr>(  s'   øè è € Ð7Ð7˜"¨°3¨¨�2¨¨¨¨Ð7Ð7r   )rN   rk   r)   rm   rn   ro   Úsetr
   )	r,   rV   r_   rx   rt   Úmatch_groupsÚmatchesÚkeepersrß   s	      `    @r   rs   zbuild_py.exclude_data_files  s›   øø€ å�U‘”ˆØ×.Ò.ØÔ%ØØñ
ô 
ˆð
 PÐOÐOÐOÀhÐOÑOÔOˆå”/×/Ò/°Ñ=Ô=ˆÝ�'‰lŒlˆØ7Ð7Ð7Ð7 Ð7Ñ7Ô7ˆå•O GÑ,Ô,Ñ-Ô-Ð-r   rL   c                óœ   ‡— t          j        ||                      dg ¦  «        |                      |g ¦  «        ¦  «        }ˆfd„|D ¦   «         S )zÜ
        yield platform-specific path patterns (suitable for glob
        or fn_match) from a glob-based spec (such as
        self.package_data or self.exclude_package_data)
        matching package in src_dir.
        Ú c              3  ór   •K  — | ]1}t           j                             ‰t          |¦  «        ¦  «        V — Œ2d S r   )r   r[   rb   r   )r]   rÜ   r_   s     €r   r»   z2build_py._get_platform_patterns.<locals>.<genexpr>9  sQ   øè è € ð 
ð 
ð õ ŒG�LŠL˜¥,¨wÑ"7Ô"7Ñ8Ô8ð
ð 
ð 
ð 
ð 
ð 
r   )rm   rn   rr   )ÚspecrV   r_   ri   Úraw_patternss     `  r   rk   zbuild_py._get_platform_patterns,  sh   ø€ õ !”ØØ�HŠH�R˜ÑÔØ�HŠH�W˜bÑ!Ô!ñ
ô 
ˆð

ð 
ð 
ð 
ð (ð
ñ 
ô 
ð 	
r   ©r   r   )TTNr-   )r.   r   r/   r   r0   r!   r1   r!   r2   r3   r4   r5   r   r6   )rG   r8   r   r	   )r   rQ   )rV   r8   r   rW   )T)r>   r!   r   ry   )r   r~   )r   rˆ   )rx   r²   r˜   r   r   r³   )rV   r8   r   r8   )rL   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r"   r#   r'   r;   rF   rJ   rI   rU   rP   re   rE   r|   r‚   r�   rC   rM   r¢   rÃ   rÈ   rÕ   ra   rs   Ústaticmethodrk   Ú__classcell__)r<   s   @r   r   r       s6  ø€ € € € € € ðð ð ÐÐÑØ€MÐÐÐÑØ,0ÐÐ0Ð0Ð0Ñ0ð,ð ,ð ,ð ,ð #Ø#ØØð
ð 
ð 
ð 
ð 
ð 
ð 
ð"Sð Sð Sð Sð"5ð 5ð 5ð 5ðHð Hð Hð
Hð Hð Hð Hð6ð 6ð 6ð 6ð@ð @ð @ð$5ð 5ð 5ð 5ð 5ð 5ð 5ðAð Að Að Að*ð *ð *ð *ð(ð (ð (ð (ð"ð "ð "ð "ð'Mð 'Mð 'Mð 'MðRð ð ð ð*ð ð ð ðð ð ð<*ð *ð *ðð ð ð ð.ð .ð .ð  ð
ð 
ð 
ñ „\ð
ð 
ð 
ð 
ð 
r   r   c                ó¸   — t           j                             | ¦  «        s| S ddlm} t          j        d¦  «                             ¦   «         | z  } ||¦  «        ‚)Nr   )ÚDistutilsSetupErrorzÓ
        Error: setup script specifies an absolute path:

            %s

        setup() arguments must *always* be /-separated paths relative to the
        setup.py directory, *never* absolute paths.
        )r   r[   r¾   Údistutils.errorsrò   ÚtextwrapÚdedentÚlstrip)r[   rò   Úmsgs      r   rš   rš   @  sp   € ÝŒ7�=Š=˜ÑÔð ØˆØ4Ð4Ð4Ð4Ð4Ð4õ 	Œðñ		
ô 		
÷ Š&‰(Œ(Ø
ñ
	ð ð Ð
˜cÑ
"Ô
"Ð"r   c                  óH   — e Zd ZdZ G d„ de¦  «        Zdd„Zd„ Zd„ Zd	„ Z	d
S )r¡   z>Inform users that package or module is included as 'data file'c                  ó   — e Zd ZdZdZdS )ú!_IncludePackageDataAbuse._WarningzU
        Package {importable!r} is absent from the `packages` configuration.
        a|  
        ############################
        # Package would be ignored #
        ############################
        Python recognizes {importable!r} as an importable package[^1],
        but it is absent from setuptools' `packages` configuration.

        This leads to an ambiguous overall configuration. If you want to distribute this
        package, please make sure that {importable!r} is explicitly added
        to the `packages` configuration field.

        Alternatively, you can also rely on setuptools' discovery methods
        (for example by using `find_namespace_packages(...)`/`find_namespace:`
        instead of `find_packages(...)`/`find:`).

        You can read more about "package discovery" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

        If you don't want {importable!r} to be distributed and are
        already explicitly excluding {importable!r} via
        `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
        you can try to use `exclude_package_data`, or `include-package-data=False` in
        combination with a more fine grained `package-data` configuration.

        You can read more about "package data files" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


        [^1]: For Python, any directory (with suitable naming) can be imported,
              even if it does not contain any `.py` files.
              On the other hand, currently there is no concept of package data
              directory, all directories are treated like packages.
        N)rê   rë   rì   Ú_SUMMARYÚ_DETAILSrL   r   r   Ú_Warningrú   X  s   € € € € € ðˆð"ˆˆˆr   rý   r   r   c                óB   — t          t                   ¦   «         | _        d S r   )rà   r8   Ú_already_warnedr+   s    r   Ú__init__z!_IncludePackageDataAbuse.__init__ƒ  s   € Ý"¥3œx™zœzˆÔÐÐr   c                ó€   — |                      d¦  «        o)|d t          d¦  «         …                              ¦   «         S )Nz.py)ÚendswithÚlenÚisidentifier)r,   r^   s     r   r£   z"_IncludePackageDataAbuse.is_module†  s6   € Ø�}Š}˜UÑ#Ô#ÐJ¨¨]µ°E±
´
¨{¨]Ô(;×(HÒ(HÑ(JÔ(JÐJr   c                óÄ   — t          |¦  «        j        }t          t          j        t
          j        |j        ¦  «        ¦  «        }|rd                     |g|¢¦  «        S d S )NrY   )	r   ÚparentrN   rm   Ú	takewhiler8   r  Úpartsrb   )r,   r  r^   rÒ   r  s        r   r¤   z._IncludePackageDataAbuse.importable_subpackage‰  sV   € Ý�4‰jŒjÔˆÝ•YÔ(­Ô)9¸3¼9ÑEÔEÑFÔFˆØð 	.Ø—8’8˜VÐ, eÐ,Ñ-Ô-Ð-Øˆtr   c                ó†   — || j         vr7| j                             |¬¦  «         | j                              |¦  «         d S d S )N)r±   )rÿ   rý   ÚemitÚadd)r,   r±   s     r   r¥   z_IncludePackageDataAbuse.warn�  sN   € Ø˜TÔ1Ð1Ð1ØŒM×Ò¨*ÐÑ5Ô5Ð5ØÔ ×$Ò$ ZÑ0Ô0Ð0Ð0Ð0ð 2Ð1r   Nré   )
rê   rë   rì   rí   r   rý   r   r£   r¤   r¥   rL   r   r   r¡   r¡   U  sŠ   € € € € € ØHÐHð'ð 'ð 'ð 'ð 'Ð/ñ 'ô 'ð 'ðV*ð *ð *ð *ðKð Kð Kðð ð ð1ð 1ð 1ð 1ð 1r   r¡   ré   )'Ú
__future__r   rÛ   rm   r…   r   r   rô   Úcollections.abcr   r   Ú	functoolsr   r   Úpathlibr   Útypingr	   Úmore_itertoolsr
   Ú_pathr   r   Údistr   Úwarningsr   Údistutils.command.build_pyÚcommandr   r&   ró   rÍ   Údistutils.utilr   rl   r   rš   r¡   rL   r   r   ú<module>r     sÇ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à,Ð ð>ð >ð >ð >ð]
ð ]
ð ]
ð ]
ð ]
ˆtŒ}ñ ]
ô ]
ð ]
ð@	#ð #ð #ð*>1ð >1ð >1ð >1ð >1ñ >1ô >1ð >1ð >1ð >1r   