§
    »"½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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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)Ú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    ú[/home/spazio/kingdom_calls/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
„ Z	 	 	 	 d9d:ˆ fd„Zd;d„Z	d<d„Z
d„ Zd „ Zd!„ Zd"„ Zd=d>ˆ fd%„Zd?d'„Zd@d)„Zd@d*„Zd;d+„Zd;d,„ZdAd1„Zd;d2„Zd3„ Zd4„ Zd5„ Zd6„ ZedBd8„¦   «         Zˆ xZS )CÚ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_dirc                ó²   — 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Úobjectr   útuple[StrPathT | str, bool]c                ó  •— |r\t          t          |¦  «                             ¦   «         ¦  «        }t          t          |¦  «                             ¦   «         ¦  «        }t          ¦   «                              ||||||¦  «        S r   )Ústrr   ÚresolveÚsuperÚ	copy_file)r+   r-   r.   r/   r0   r1   r3   Ú	__class__s          €r   r:   zbuild_py.copy_file3   st   ø€ ð ð 	3Ý�˜f™œ×-Ò-Ñ/Ô/Ñ0Ô0ˆFÝ�$˜w™-œ-×/Ò/Ñ1Ô1Ñ2Ô2ˆGÝ‰wŒw× Ò Ø�G˜]¨N¸DÀ%ñ
ô 
ð 	
r   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.runD   sŸ   € à”ð 	 4¤=ð 	°TÔ5Gð 	ØˆFàŒ?ð 	!Ø×ÒÑ Ô Ð àŒ=ð 	&Ø×ÒÑ!Ô!Ð!Ø×#Ò#Ñ%Ô%Ð%ð 	×Ò�$œ-×3Ò3°DÈ5Ð3ÑQÔQÑRÔRÐRÐRÐRr   Úattrr7   c                óŽ   — |dk    r |                       ¦   «         | _        | j        S t          j                             | |¦  «        S )zlazily compute data filesr$   )Ú_get_data_filesr$   r%   r   Ú__getattr__)r+   rF   s     r   rI   zbuild_py.__getattr__T   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   rH   zbuild_py._get_data_files[   s6   € à×ÒÑÔÐÝ•C˜Ô0°$´-Ð2EÀ2ÑFÔFÑGÔGÐGr   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_filesrK   )r)   Ú
setdefaultrM   rN   rO   r?   r*   s    r   Úget_data_files_without_manifestz(build_py.get_data_files_without_manifest`   s?   € ð 	Œ× Ò Ð!1°2Ñ6Ô6Ð6Ý•C˜Ô0°$´-Ð2EÀ2ÑFÔFÑGÔGÐGr   c                óÜ   ‡— |                       |¦  «        Št          j        j        | j        g|                     d¦  «        z   Ž }ˆfd„|                      |‰¦  «        D ¦   «         }|‰||fS )Nú.c                óP   •— g | ]"}t           j                             |‰¦  «        ‘Œ#S rK   )r   ÚpathÚrelpath)Ú.0ÚfileÚsrc_dirs     €r   ú
<listcomp>z0build_py._get_pkg_data_files.<locals>.<listcomp>r   s9   ø€ ð 
ð 
ð 
àõ ŒG�OŠO˜D 'Ñ*Ô*ð
ð 
ð 
r   )Úget_package_dirr   rW   ÚjoinÚ	build_libÚsplitÚfind_data_files)r+   ÚpackageÚ	build_dirÚ	filenamesr[   s       @r   rO   zbuild_py._get_pkg_data_filesj   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_FILESrN   r   r   Ú	itertoolsÚchainÚfrom_iterableÚfilterr   rW   ÚisfilerQ   ÚgetÚexclude_data_files)r+   rb   r[   ÚpatternsÚglobs_expandedÚglobs_matchesÚ
glob_filesÚfiless           r   ra   zbuild_py.find_data_filesx   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!   rM   Úget_output_mappingÚkeysr9   rD   )r+   r=   r;   s     €r   rD   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          |d„ ¬¦  «        ¦  «        S )rx   c                ó   — | d         S )Nr   rK   )Úxs    r   ú<lambda>z-build_py.get_output_mapping.<locals>.<lambda>–   s
   € °!°A´$€ r   )Úkey)rj   rk   Ú _get_package_data_output_mappingÚ_get_module_mappingÚdictÚsorted)r+   Úmappings     r   ry   zbuild_py.get_output_mapping�   sP   € å”/Ø×1Ò1Ñ3Ô3Ø×$Ò$Ñ&Ô&ñ
ô 
ˆõ •F˜7¨¨Ð7Ñ7Ô7Ñ8Ô8Ð8r   úIterator[tuple[str, str]]c              #  ó®   K  — |                       ¦   «         D ]=\  }}}|                     d¦  «        }|                      | j        ||¦  «        }||fV — Œ>dS )z5Iterate over all modules producing (dest, src) pairs.rU   N)Úfind_all_modulesr`   Úget_module_outfiler_   )r+   rb   Ú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   rW   r^   )r+   rb   r[   rc   rd   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   rW   Údirnamer:   r   )r+   r   rŽ   Ú_outfÚ_copieds        r   rB   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 )NrK   zSOURCES.txtzutf-8)ÚencodingÚegg_info)rQ   r   Úinclude_package_datar?   Úassert_relativer]   r"   r   ÚexistsÚ	read_textÚ
splitlinesÚrun_commandÚget_finalized_commandr–   Úfilelistru   Ú_IncludePackageDataAbuseÚ_filter_build_filesr   rW   r`   r^   Ú	is_moduleÚimportable_subpackageÚwarnrR   Úappend)r+   Úsrc_dirsrb   Úegg_info_dirÚmanifestru   Úei_cmdÚcheckrW   ÚdÚfÚprevÚoldfÚdfÚ
importables                  r   rL   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   ru   ú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 rK   )r   rW   Únormpath)rY   Ú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   rK   )rY   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�   r_   Ú
build_tempÚ
build_baser   rW   rµ   ÚisabsÚall)r+   ru   r–   r³   Ú
build_dirsÚ	norm_dirsrZ   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   rK   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_namespacerU   Ú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+   rb   Ú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   r]   r   Úsrc_rootr   rW   r^   )r+   rb   Úress      r   r]   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   )Úfnmatchrm   )rY   Úpatternru   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   rK   )rY   ÚfnÚbads     €r   r¹   z.build_py.exclude_data_files.<locals>.<genexpr>%  s'   øè è € Ð7Ð7˜"¨°3¨¨�2¨¨¨¨Ð7Ð7r   )rM   rh   r(   rj   rk   rl   Úsetr	   )	r+   rb   r[   ru   rq   Úmatch_groupsÚmatchesÚkeepersrÝ   s	      `    @r   rp   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   rK   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   rW   r^   r   )rY   rÚ   r[   s     €r   r¹   z2build_py._get_platform_patterns.<locals>.<genexpr>6  sQ   øè è € ð 
ð 
ð õ ŒG�LŠL˜¥,¨wÑ"7Ô"7Ñ8Ô8ð
ð 
ð 
ð 
ð 
ð 
r   )rj   rk   ro   )Úspecrb   r[   rf   Úraw_patternss     `  r   rh   zbuild_py._get_platform_patterns)  sh   ø€ õ !”ØØ�HŠH�R˜ÑÔØ�HŠH�W˜bÑ!Ô!ñ
ô 
ˆð

ð 
ð 
ð 
ð (ð
ñ 
ô 
ð 	
r   )TTNr,   )r-   r   r.   r   r/   r    r0   r    r1   r2   r3   r4   r   r5   ©r   r   )rF   r7   )T)r=   r    r   rv   )r   r{   )r   r†   )ru   r°   r–   r   r   r±   )rK   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r!   r"   r&   r:   rE   rI   rH   rS   rO   ra   rD   ry   r‚   r�   rB   rL   r    rÁ   rÆ   rÓ   r]   rp   Ústaticmethodrh   Ú__classcell__)r;   s   @r   r   r      s  ø€ € € € € € ðð ð ÐÐÑØ€MÐÐÐÑØ,0ÐÐ0Ð0Ð0Ñ0ð,ð ,ð ,ð #Ø#ØØð
ð 
ð 
ð 
ð 
ð 
ð 
ð"Sð Sð Sð Sð 5ð 5ð 5ð 5ðHð Hð Hð
Hð Hð Hð6ð 6ð 6ð@ð @ð @ð$5ð 5ð 5ð 5ð 5ð 5ð 5ð9ð 9ð 9ð 9ð*ð *ð *ð *ð(ð (ð (ð (ð"ð "ð "ð "ð'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   rW   r¼   Údistutils.errorsrð   ÚtextwrapÚdedentÚlstrip)rW   rð   Úmsgs      r   r˜   r˜   =  sp   € ÝŒ7�=Š=˜ÑÔð ØˆØ4Ð4Ð4Ð4Ð4Ð4õ 	Œðñ		
ô 		
÷ Š&‰(Œ(Ø
ñ
	ð ð Ð
˜cÑ
"Ô
"Ð"r   c                  óF   — e Zd ZdZ G d„ de¦  «        Z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Ú_DETAILSrK   r   r   Ú_Warningrø   U  s   € € € € € ðˆð"ˆˆˆr   rû   c                ó,   — t          ¦   «         | _        d S r   )rÞ   Ú_already_warnedr*   s    r   Ú__init__z!_IncludePackageDataAbuse.__init__€  s   € Ý"™uœuˆÔÐÐr   c                ó€   — |                      d¦  «        o)|d t          d¦  «         …                              ¦   «         S )Nz.py)ÚendswithÚlenÚisidentifier)r+   rZ   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 )NrU   )	r   ÚparentrM   rj   Ú	takewhiler7   r  Úpartsr^   )r+   r  rZ   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   N)
rè   ré   rê   rë   r   rû   rþ   r¡   r¢   r£   rK   r   r   rŸ   rŸ   R  s…   € € € € € ØHÐHð'ð 'ð 'ð 'ð 'Ð/ñ 'ô 'ð 'ðV%ð %ð %ðKð Kð Kðð ð ð1ð 1ð 1ð 1ð 1r   rŸ   rç   )$Ú
__future__r   rÙ   rj   r   r   rò   Úcollections.abcr   r   Ú	functoolsr   r   Úpathlibr   Úmore_itertoolsr	   Ú_pathr   r   Údistr   Úwarningsr   Údistutils.command.build_pyÚcommandr   r%   rñ   rË   Údistutils.utilr   ri   r   r˜   rŸ   rK   r   r   ú<module>r     s¬  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à,Ð ð>ð >ð >ð >ð\
ð \
ð \
ð \
ð \
ˆtŒ}ñ \
ô \
ð \
ð~#ð #ð #ð*>1ð >1ð >1ð >1ð >1ñ >1ô >1ð >1ð >1ð >1r   