+
    Ž°³j½ˆ  ã                  ó\  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
HtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHtHtHtH t H!t! ^RI"H#t#H$t$H%t%H&t&H't'H(t( ^RI%H)t) ^RI*H+t+H,t, ^RI-H.t. ^RI/H0t0 ^RI1H2t2H3t3 ^RI4H4t5 ^RI6H6t7 ^RI8H8t9 ^RI:H:t; ^RI<H<t= ^RI>H>t? ]'       d   ^ RI@HAtA ^RIBHCtC ] ! R])R7      tD]PŠ                  ! ]F4      tG ! R R]4      tHRtIRtJ ! R  R!]#4      tK ! R" R#]4      tL ! R$ R%4      tM ! R& R']M4      tN ! R( R)4      tOR* R+ ltPR, R- ltQR. R/ ltRR0 tSR1 R2 ltTR3 R4 ltUR5 R6 ltVR7 R8 ltWR9 R: ltXR; R< ltYR= R> ltZR? R@ lt[RA RB lt\ ! RC RD](Pº                  4      t^REt_RF RG lt` ! RH RI]'PÂ                  4      tbR# )Jaè  
Create a wheel that, when installed, will make the source package 'editable'
(add it to the interpreter's path, including metadata) per PEP 660. Replaces
'setup.py develop'.

.. note::
   One of the mechanisms briefly mentioned in PEP 660 to implement editable installs is
   to create a separated directory inside ``build`` and use a .pth file to point to that
   directory. In the context of this file such directory is referred as
   *auxiliary build directory* or ``auxiliary_dir``.
)ÚannotationsN)ÚIterableÚIteratorÚMapping)Úsuppress)ÚEnum)Úcleandoc)ÚchainÚstarmap)ÚPath)ÚTemporaryDirectory)ÚTracebackType)ÚTYPE_CHECKINGÚClassVarÚProtocolÚTypeVarÚcast)ÚCommandÚ_normalizationÚ_pathÚ_shutilÚerrorsÚ
namespaces)ÚStrPath)Úpy310Úpy312)Úfind_package_path)ÚDistribution)ÚInformationOnlyÚSetuptoolsDeprecationWarning)Úbuild)Úbuild_py)Ú	dist_info)Úegg_info)Úinstall)Úinstall_scripts)ÚSelf©Ú	WheelFileÚ_P)Úboundc                  ó<   € ] tR t^5tRtRtRtRt]R R l4       t	Rt
R# )	Ú_EditableModezú
Possible editable installation modes:
`lenient` (new files automatically added to the package - DEFAULT);
`strict` (requires a new installation when files are added/removed); or
`compat` (attempts to emulate `python setup.py develop` - DEPRECATED).
ÚstrictÚlenientÚcompatc               ó    € V ^8„  d   QhRRRR/# )é   Úmodeú
str | NoneÚreturnr,   © )Úformats   "Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/setuptools/command/editable_wheel.pyÚ__annotate__Ú_EditableMode.__annotate__B   s   € ÷ $ñ $˜:ð $¨-ñ $ó    c                	ó  € V'       g   \         P                  # VP                  4       pV\         P                  9  d   \        P
                  ! R V: R24      hVR8X  d   \        P                  ! RRRR7       \         V,          # )zInvalid editable mode: z. Try: 'strict'.ÚCOMPATzCompat editable installsa
  
                The 'compat' editable mode is transitional and will be removed
                in future versions of `setuptools`.
                Please adapt your code accordingly to use either the 'strict' or the
                'lenient' modes.
                zuserguide/development_mode.html)Úsee_docs)r,   ÚLENIENTÚupperÚ__members__r   ÚOptionErrorr   Úemit)Úclsr2   Ú_modes   && r7   ÚconvertÚ_EditableMode.convertA   sv   € çÜ ×(Ñ(Ð(à—
‘
“ˆØœ×1Ñ1Ô1Ü×$Ò$Ð'>¸t¹hÐFVÐ%WÓXÐXà�HÔÜ(×-Ò-Ø*ðð ;õô  ˜UÕ#Ð#r:   r5   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚSTRICTr>   r<   ÚclassmethodrE   Ú__static_attributes__r5   r:   r7   r,   r,   5   s*   † ñð €FØ€GØ€Fàô$ó ô$r:   r,   zU
New or renamed files may not be automatically picked up without a new installation.
zt
Options like `package-data`, `include/exclude-package-data` or
`packages.find.exclude/include` may have no effect.
c                  ó  € ] tR t^ht$ RtRtR"R#RR]! ]P                  ;'       g    R4      3.tR]	R&   R t
R	 R
 ltR R ltR tR tR R ltR R ltR tR R ltR R ltR R ltR R ltR tR R ltR R  ltR!tR# )$Úeditable_wheelz¢Build 'editable' wheel for development.
This command is private and reserved for internal use of setuptools,
users should rely on ``setuptools.build_meta`` APIs.
zBDO NOT CALL DIRECTLY, INTERNAL ONLY: create PEP 660 editable wheelzmode=NÚ zHClassVar[list[tuple[str, str, str]] | list[tuple[str, str | None, str]]]Úuser_optionsc                	ó>   € R V n         R V n        R V n        R V n        R # ©N)Údist_dirÚdist_info_dirÚproject_dirr2   ©Úselfs   &r7   Úinitialize_optionsÚ!editable_wheel.initialize_optionsx   s    € ØˆŒØ!ˆÔØˆÔØˆŽ	r:   c               ó   € V ^8„  d   QhRR/# ©r1   r4   ÚNoner5   )r6   s   "r7   r8   Úeditable_wheel.__annotate__~   s   € ÷ Vñ V $ñ Vr:   c                	ó>  € V P                   pVP                  ;'       g    \        P                  V n        VP
                  ;'       g    / V n        \        V P                  ;'       g+    \        P                  P                  V P                  R 4      4      V n        R# )ÚdistN)
ÚdistributionÚsrc_rootÚosÚcurdirrW   Úpackage_dirr   rU   ÚpathÚjoin)rY   ra   s   & r7   Úfinalize_optionsÚeditable_wheel.finalize_options~   sh   € Ø× Ñ ˆØŸ=™=×5Ð5¬B¯I©IˆÔØ×+Ñ+×1Ð1¨rˆÔÜ˜TŸ]™]×TÐT¬b¯g©g¯l©l¸4×;KÑ;KÈVÓ.TÓUˆŽr:   c               ó   € V ^8„  d   QhRR/# r]   r5   )r6   s   "r7   r8   r_   „   s   € ÷ ñ �Tñ r:   c                	óÊ  €  V P                   P                  R R7       V P                  4        V P                  R4       V P	                  R4      pVP                  V P                  4       V P                  V4       R#   \         dZ   pT P                  P                  ;'       g    T P                  P                  4       p\        P                  ! TRT R24       h Rp?ii ; i)T)Úexist_okÚbdist_wheelz3An error occurred when building editable wheel for zl.
See debugging tips in: https://setuptools.pypa.io/en/latest/userguide/development_mode.html#debugging-tipsN)rU   ÚmkdirÚ_ensure_dist_infoÚreinitialize_commandÚget_finalized_commandÚwrite_wheelfilerV   Ú_create_wheel_fileÚ	Exceptionrb   ÚnameÚget_namer   Úadd_note)rY   rn   ÚexÚprojects   &   r7   ÚrunÚeditable_wheel.run„   sÊ   € ð	Ø�M‰M×Ñ¨ÐÔ.Ø×"Ñ"Ô$ð ×%Ñ% mÔ4Ø×4Ñ4°]ÓCˆKØ×'Ñ'¨×(:Ñ(:Ô;à×#Ñ# KÖ0øÜô 	Ø×'Ñ'×,Ñ,×LÐL°×0AÑ0A×0JÑ0JÓ0LˆGÜ�NŠNØØEÀgÀYð Ofð fôð ûð	ús   ‚A:A> Á>C"Â	ACÃC"c                	ó˜  € V P                   fd   \        \        V P                  R4      4      pV P                  Vn        VP                  4        VP                  4        VP                   V n         R # \        V P                   4      P                  R4      '       g   Q h\        V P                   R4      P                  4       '       g   Q hR # )Nr"   z
.dist-infoÚMETADATA)rV   r   Údist_info_clsrq   rU   Ú
output_dirÚensure_finalizedr{   ÚstrÚendswithr   Úexists)rY   r"   s   & r7   rp   Ú editable_wheel._ensure_dist_info™   s˜   € Ø×ÑÒ%Üœ]¨D×,EÑ,EÀkÓ,RÓSˆIØ#'§=¡=ˆIÔ Ø×&Ñ&Ô(Ø�M‰MŒOØ!*×!8Ñ!8ˆDÖä�t×)Ñ)Ó*×3Ñ3°L×AÒAÐAÐAÜ˜×*Ñ*¨JÓ7×>Ñ>×@Ò@Ð@Ò@r:   c                	óú   € V P                   pVP                  '       g   R # \        V P                  V P                  P                  RR4      4      P                  4       p\        W1W$4      pVP                  4        R # )NrQ   Ú.)	rb   Únamespace_packagesr   rW   rf   ÚgetÚresolveÚ_NamespaceInstallerÚinstall_namespaces)rY   Úinstallation_dirÚ
pth_prefixra   rc   Ú	installers   &&&   r7   Ú_install_namespacesÚ"editable_wheel._install_namespaces¤   sb   € à× Ñ ˆØ×&×&Ð&Ùä˜×(Ñ(¨$×*:Ñ*:×*>Ñ*>¸rÀ3Ó*GÓH×PÑPÓRˆÜ'¨À
ÓUˆ	Ø×$Ñ$Ö&r:   c               ó   € V ^8„  d   QhRR/# )r1   r4   r3   r5   )r6   s   "r7   r8   r_   ®   s   € ÷ &ñ & Jñ &r:   c                	óÎ   € V P                   '       d    \        V P                   4      P                  M	\        4       p\        \        VP                  R 4      4      p\        VR4      # )z
*.egg-infoN)rV   r   ÚparentÚmapr‚   ÚglobÚnext)rY   Ú
parent_dirÚ
candidatess   &  r7   Ú_find_egg_info_dirÚ!editable_wheel._find_egg_info_dir®   sK   € Ø8<×8J×8JÐ8J”T˜$×,Ñ,Ó-×4Ò4ÔPTÓPVˆ
Üœ˜jŸo™o¨lÓ;Ó<ˆ
Ü�J Ó%Ð%r:   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r1   rv   r‚   Úunpacked_wheelr   Ú	build_libÚtmp_dirr5   )r6   s   "r7   r8   r_   ³   s,   € ÷ =#ñ =#Øð=#Ø)0ð=#Ø=Dð=#ØOVñ=#r:   c                óÈ  € V P                   p\        V4      p\        V4      p\        \        W! R2R4      4      p\        \        W! R2R4      4      p\        \        W! R2R4      4      p	\        \        VP                  RRR7      4      p
\        V4      V
n        RV
n        \        \        VP                  RRR7      4      p\        \        VP                  R	RR7      4      pV;Vn
        ;Vn        Vn        V;Vn        ;Vn        Vn        V	;Vn        Vn        WŒn        W|n        VP)                  R
4      pRVn        \        \,        VP)                  R4      4      pRVn        \        V4      Vn        \        \2        VP)                  R4      4      pRVn        V P7                  4       Vn        V P;                  4        VP=                  4        VP=                  4        R# )a´  Configure commands to behave in the following ways:

- Build commands can write to ``build_lib`` if they really want to...
  (but this folder is expected to be ignored and modules are expected to live
  in the project directory...)
- Binary extensions should be built in-place (editable_mode = True)
- Data/header/script files are not part of the "editable" specification
  so they are written directly to the unpacked_wheel directory.
z.dataÚdataÚheadersÚscriptsr#   T)Úreinit_subcommandsr    r$   Úbuild_scriptsÚpythonr%   r!   FN)rb   r‚   r   r   Úegg_info_clsrq   Úegg_baseÚignore_egg_info_in_manifestÚ	build_clsÚinstall_clsÚbuild_platlibÚbuild_purelibrž   Úinstall_purelibÚinstall_platlibÚinstall_libr%   r¥   Úinstall_headersÚinstall_dataÚget_command_objÚ
executableÚinstall_scripts_clsÚno_epÚ
build_tempÚbuild_py_clsÚcompilerš   Úexisting_egg_info_dirÚ_set_editable_moder�   )rY   rv   r�   rž   rŸ   ra   Úwheelr¡   r¢   r£   r#   r    r$   r¥   r%   r!   s   &&&&&           r7   Ú_configure_buildÚeditable_wheel._configure_build³   sÎ  € ð × Ñ ˆÜ�NÓ#ˆÜ˜	“Nˆ	Ü”4˜¨&°¨¸Ó?Ó@ˆÜ”d˜>¨V°5¨>¸9ÓEÓFˆÜ”d˜>¨V°5¨>¸9ÓEÓFˆô Ü˜$×3Ñ3°JÐSWÐ3ÓXó
ˆô   ›LˆÔØ/3ˆÔ,äÜ�t×0Ñ0°ÈTÐ0ÓRó
ˆô Ü˜×2Ñ2°9ÐQUÐ2ÓVó
ˆð GPÐOˆÔÐO˜eÔ1°E´OØRWÐWˆÔÐW 'Ô"9¸GÔ<OØ8?Ð?ˆÔ %Ô"5Ø")ÔØ#Ôð ×,Ñ,¨_Ó=ˆØ#+ˆÔ äÜ ×!5Ñ!5Ð6GÓ!Hó
ˆð !%ˆÔä˜w›<ˆÔäœ d×&:Ñ&:¸:Ó&FÓGˆØ ˆÔØ)-×)@Ñ)@Ó)BˆÔ&à×ÑÔ!à×ÑÔ Ø× Ñ Ö"r:   c                óü   € V P                   pVP                  R4      pVP                  4        FJ  pVP                  V4      p\        VR4      '       d
   RVn        K/  \        VR4      '       g   KC  RVn        KL  	  R# )z8Set the ``editable_mode`` flag in the build sub-commandsr    Úeditable_modeTÚinplaceN)rb   r³   Úget_sub_commandsÚhasattrrÀ   rÁ   )rY   ra   r    Úcmd_nameÚcmds   &    r7   r»   Ú!editable_wheel._set_editable_modeò   si   € à× Ñ ˆØ×$Ñ$ WÓ-ˆØ×.Ñ.Ö0ˆHØ×&Ñ& xÓ0ˆCÜ�s˜O×,Ò,Ø$(�Ö!Ü˜˜i×(Ô(Ø"�–ó 1r:   c               ó   € V ^8„  d   QhRR/# )r1   r4   ú tuple[list[str], dict[str, str]]r5   )r6   s   "r7   r8   r_   ý   s   € ÷ ñ Ð(Hñ r:   c                	ór  € . p/ pV P                  R 4      pVP                  4        FŒ  pV P                  V4      p\        VR4      '       d*   TP                  VP	                  4       ;'       g    . 4       \        VR4      '       g   Kc  TP                  VP                  4       ;'       g    / 4       KŽ  	  W3# )r    Úget_outputsÚget_output_mapping)rr   rÂ   rÃ   ÚextendrÊ   ÚupdaterË   )rY   ÚfilesÚmappingr    rÄ   rÅ   s   &     r7   Ú_collect_build_outputsÚ%editable_wheel._collect_build_outputsý   sœ   € ØˆØ"$ˆØ×*Ñ*¨7Ó3ˆà×.Ñ.Ö0ˆHØ×,Ñ,¨XÓ6ˆCÜ�s˜M×*Ò*Ø—‘˜SŸ_™_Ó.×4Ð4°"Ô5Ü�sÐ0×1Ô1Ø—‘˜s×5Ñ5Ó7×=Ð=¸2Ö>ñ 1ð ˆ~Ðr:   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r1   Ú	dist_namer‚   r�   r   rž   rŸ   r4   rÈ   r5   )r6   s   "r7   r8   r_     s<   € ÷ ñ àðð  ðð ð	ð
 ðð 
*ñr:   c                	óÖ   € V P                  WW44       V P                  4        V P                  4       w  rVV P                  R 4       V P                  R4       V P                  R4       WV3# )r¢   r£   r¡   )r½   Ú_run_build_subcommandsrÐ   Ú_run_install)rY   rÓ   r�   rž   rŸ   rÎ   rÏ   s   &&&&&  r7   Ú_run_build_commandsÚ"editable_wheel._run_build_commands  sb   € ð 	×Ñ˜i¸ÔLØ×#Ñ#Ô%Ø×4Ñ4Ó6‰ˆØ×Ñ˜)Ô$Ø×Ñ˜)Ô$Ø×Ñ˜&Ô!Øˆ~Ðr:   c               ó   € V ^8„  d   QhRR/# r]   r5   )r6   s   "r7   r8   r_     s   € ÷ 'ñ '¨ñ 'r:   c                óô   € V P                  R4      pVP                  4        FR  pV P                  V4      pVR8X  d'   \        V4      \        Jd   V P	                  V4       KA  V P                  V4       KT  	  R# )aE  
Issue #3501 indicates that some plugins/customizations might rely on:

1. ``build_py`` not running
2. ``build_py`` always copying files to ``build_lib``

However both these assumptions may be false in editable_wheel.
This method implements a temporary workaround to support the ecosystem
while the implementations catch up.
r    r!   N)rr   rÂ   Útyper¸   Ú_safely_runÚrun_command)rY   r    rv   rÅ   s   &   r7   rÕ   Ú%editable_wheel._run_build_subcommands  sf   € ð ×*Ñ*¨7Ó3ˆØ×*Ñ*Ö,ˆDØ×,Ñ,¨TÓ2ˆCØ�zÔ!¤d¨3£i´|Ó&CØ× Ñ  Ö&à× Ñ  Ö&ó -r:   c               ó   € V ^8„  d   QhRR/# )r1   rÄ   r‚   r5   )r6   s   "r7   r8   r_   0  s   € ÷ ñ  Cñ r:   c                	ó²   €  V P                  V4      #   \         d9    \        P                  ! R R\        P
                  ! 4        RT RT R24        R# i ; i)z0Customization incompatible with editable installz
                zŒ

                If you are seeing this warning it is very likely that a setuptools
                plugin or customization overrides the `a  ` command, without
                taking into consideration how editable installs run build steps
                starting from setuptools v64.0.0.

                Plugin authors and developers relying on custom build steps are
                encouraged to update their `aa  ` implementation considering the
                information about editable installs in
                https://setuptools.pypa.io/en/latest/userguide/extension.html.

                For the time being `setuptools` will silence this error and ignore
                the faulty command, but this behavior will change in future versions.
                N)rÝ   ru   r   rB   Ú	tracebackÚ
format_exc)rY   rÄ   s   &&r7   rÜ   Úeditable_wheel._safely_run0  sp   € ð	Ø×#Ñ# HÓ-Ð-øÜô 	Ü(×-Ò-ØBðÜ×%Ò%Ó'Ð(ð )8ð 9A°zð B-ð
 .6¨Jð 7ð÷ð	ús   ‚ “?AÁAc                	ó&  € ^ RI Hp V P                  R4      pVP                  pRP	                  VP                  4       4      pRpV RV RV R2p\        V P                  V4      pVP                  4       '       d   VP                  4        \        VR7      p	\        RR7      p
\        RR7      pT	;_uu_ 4       qÊ;_uu_ 4       qÛ;_uu_ 4       p\        V\        V P                  4      P                  4      p\        P                  ! V P                  V4       V P                  WÄ4       V P                  WLWÞ4      w  ppV P!                  WEV4      pT;_uu_ 4        V! VR	4      ;_uu_ 4       pV! VVV4       VP#                  V4       R
R
R
4       R
R
R
4       R
R
R
4       R
R
R
4       R
R
R
4       V#   + '       g   i     L2; i  + '       g   i     L=; i  + '       g   i     LH; i  + '       g   i     LS; i  + '       g   i     T# ; i)é    r'   r"   Ú-z
0.editablez.whl)Úsuffixz
.build-libz.build-tempÚwN)Úwheel.wheelfiler(   rr   rv   rh   Úget_tagr   rU   r„   Úunlinkr   rV   ÚshutilÚcopytreer�   r×   Ú_select_strategyÚwrite_files)rY   rn   r(   r"   rÓ   ÚtagÚ	build_tagÚarchive_nameÚ
wheel_pathr�   rž   Ú	build_tmpÚunpackedÚlibÚtmpÚunpacked_dist_inforÎ   rÏ   ÚstrategyÚ	wheel_objs   &&                  r7   rt   Ú!editable_wheel._create_wheel_fileL  s†  € Ý-à×.Ñ.¨{Ó;ˆ	Ø—N‘Nˆ	Ø�h‰h�{×*Ñ*Ó,Ó-ˆØ ˆ	Ø#˜ A i [°°#°°dÐ;ˆÜ˜$Ÿ-™-¨Ó6ˆ
Ø×Ñ×ÒØ×ÑÔä+°<Ô@ˆÜ&¨lÔ;ˆ	Ü&¨mÔ<ˆ	ç‰^˜x¯¨°c¿9¸9ÈÜ!% h´°T×5GÑ5GÓ0H×0MÑ0MÓ!NÐÜ�OŠO˜D×.Ñ.Ð0BÔCØ×$Ñ$ XÔ9Ø!×5Ñ5°iÈ3ÓT‰NˆE�7Ø×,Ñ,¨Y¸SÓAˆHß’™9 Z°×5Ô5¸Ù˜ E¨7Ô3Ø×%Ñ% hÔ/÷ 6—÷ <E¯�^ð Ð÷	 6×5ú——ú÷ <E¿9ú¯¯ú�^Ž^ð Ðúsm   Â:
G?Ã
G,	ÃBGÅGÅ-F3Æ	GÆGÆG,	Æ!G?Æ3GÆ>GÇGÇGÇG)Ç$G,	Ç,G<Ç7G?Ç?H	c               ó   € V ^8„  d   QhRR/# )r1   Úcategoryr‚   r5   )r6   s   "r7   r8   r_   h  s   € ÷ 4ñ 4 Sñ 4r:   c                	óÆ   € \        V P                  R V 2R4      pV'       d?   V! 4       '       d0   \        P                  RV R24       V P	                  RV 24       R# R# R# )Úhas_NzInstalling z as non editableÚinstall_)Úgetattrrb   Ú_loggerÚinforÝ   )rY   rý   Úhas_categorys   && r7   rÖ   Úeditable_wheel._run_installh  sX   € Ü˜t×0Ñ0°D¸¸
Ð2CÀTÓJˆß™LŸNšNÜ�L‰L˜; x jÐ0@ÐAÔBØ×Ñ˜x¨ zÐ2Ö3ñ +‰<r:   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r1   rv   r‚   rð   rž   r   r4   ÚEditableStrategyr5   )r6   s   "r7   r8   r_   n  s2   € ÷ 8ñ 8àð8ð ð8ð ð	8ð
 
ñ8r:   c                ó†  € RV RV 2p\        V P                  4      p\        P                  V P                  4      pV\        P
                  J d8   \        \        V P                  RV4      4      p\        V P                  WV4      # \        V P                  4      p\        W€P                  V4      p	V\        P                  J p
\        V P                  4      R08X  d	   V	'       g	   V
'       d>   V P                  P                  RR4      p\        V P                  V\        W[4      .4      # \!        V P                  V4      # )zDDecides which strategy to use to implement an editable installation.ú__editable__.ræ   r    rQ   r‡   )r   rW   r,   rE   r2   rL   Ú
_empty_dirÚ	_LinkTreerb   Ú_find_packagesÚ_simple_layoutrf   r<   Úsetr‰   Ú
_StaticPthÚ_TopLevelFinder)rY   rv   rð   rž   Ú
build_namerW   r2   Úauxiliary_dirÚpackagesÚhas_simple_layoutÚis_compat_modeÚsrc_dirs   &&&&        r7   rî   Úeditable_wheel._select_strategyn  s  € ð % T F¨!¨C¨5Ð1ˆ
Ü˜4×+Ñ+Ó,ˆÜ×$Ñ$ T§Y¡YÓ/ˆà”=×'Ñ'Ó'Ü&¤t¨D×,<Ñ,<¸gÀzÓ'RÓSˆMÜ˜T×.Ñ.°ÀYÓOÐOä! $×"3Ñ"3Ó4ˆÜ*¨8×5EÑ5EÀ{ÓSÐØ¤×!5Ñ!5Ð5ˆÜˆt×ÑÓ  R DÔ(×->Ç.à×&Ñ&×*Ñ*¨2¨sÓ3ˆGÜ˜d×/Ñ/°¼¸[Ó8RÐ7SÓTÐTô ˜t×0Ñ0°$Ó7Ð7r:   )rU   rV   r2   rf   rW   )z	dist-dir=Údz-directory to put final built distributions in)zdist-info-dir=ÚIz(path to a pre-build .dist-info directory)rG   rH   rI   rJ   rK   Údescriptionr   r,   rR   Ú__annotations__rZ   ri   r{   rp   r�   rš   r½   r»   rÐ   r×   rÕ   rÜ   rt   rÖ   rî   rN   r5   r:   r7   rP   rP   h   sœ   ‡ ñð
 W€Kð
 	LØKØ	�$™ ×!6Ñ!6×!<Ð!<¸"Ó=Ð>ð	ð ð ó òõVõò*	Aò'õ&õ
=#ò~	#õõõ'õ,ò8õ84÷8ñ 8r:   rP   c                  ó:   € ] tR tRtR R ltR R ltR R ltRtR	# )
r  i‰  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r1   r¼   r(   rÎ   ú	list[str]rÏ   úMapping[str, str]r4   Úobjectr5   )r6   s   "r7   r8   ÚEditableStrategy.__annotate__Š  s,   € ÷ ñ ØðØ'0ðØ;Lðà	ñr:   c                	ó   € R # rT   r5   )rY   r¼   rÎ   rÏ   s   &&&&r7   Ú__call__ÚEditableStrategy.__call__Š  s   € ár:   c               ó   € V ^8„  d   QhRR/# ©r1   r4   r&   r5   )r6   s   "r7   r8   r!  �  s   € ×$Ñ$˜4Ñ$r:   c                	ó   € R # rT   r5   rX   s   &r7   Ú	__enter__ÚEditableStrategy.__enter__�  s   € ¡r:   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r1   Ú	_exc_typeztype[BaseException] | NoneÚ
_exc_valuezBaseException | NoneÚ
_tracebackzTracebackType | Noner4   r   r5   )r6   s   "r7   r8   r!  Ž  s2   € ÷ ñ à-ðð )ðð )ð	ð
 
ñr:   c                	ó   € R # rT   r5   ©rY   r+  r,  r-  s   &&&&r7   Ú__exit__ÚEditableStrategy.__exit__Ž  s   € ñ
 r:   r5   N)rG   rH   rI   rJ   r#  r(  r0  rN   r5   r:   r7   r  r  ‰  s   † õõ %÷ñ r:   r  c                  óF   € ] tR tRtR R ltR R ltR R ltR R	 ltR
tR# )r  i–  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r1   ra   r   rv   r‚   Úpath_entriesz
list[Path]r4   r^   r5   )r6   s   "r7   r8   Ú_StaticPth.__annotate__—  s)   € ÷ )ñ )˜\ð )°ð )ÀJð )ÐSWñ )r:   c                	ó*   € Wn         W n        W0n        R # rT   ©ra   rv   r4  )rY   ra   rv   r4  s   &&&&r7   Ú__init__Ú_StaticPth.__init__—  s   € ØŒ	ØŒ	Ø(Ör:   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	r1   r¼   r(   rÎ   r  rÏ   r  r4   r^   r5   )r6   s   "r7   r8   r5  œ  s2   € ÷ Bñ BØðBØ'0ðBØ;LðBà	ñBr:   c                	ó¦   € R P                  R V P                   4       4      p\        V R 24      pVP                  RV P                   R2V4       R# )Ú
c              3  óT   "  € T F  p\        VP                  4       4      x € K   	  R # 5irT   )r‚   rŠ   )Ú.0Úps   & r7   Ú	<genexpr>Ú&_StaticPth.__call__.<locals>.<genexpr>Ÿ  s    é € ÐHÑ6G°œC §	¡	£×,Ð,Ó6Gùs   ‚&(r	  ú.pthN)rh   r4  Ú_encode_pthÚwritestrrv   )rY   r¼   rÎ   rÏ   ÚentriesÚcontentss   &&&&  r7   r#  Ú_StaticPth.__call__œ  sI   € ð —)‘)ÑH°d×6GÒ6GÓHÓHˆÜ ' ¨"˜~Ó.ˆØ�‰˜ t§y¡y k°Ð6¸ÖAr:   c               ó   € V ^8„  d   QhRR/# r&  r5   )r6   s   "r7   r8   r5  £  s   € ÷ ñ ˜4ñ r:   c                	óª   € R \        \        \        P                  V P                  4      4      : R2p\
        P                  V\        ,           4       V # )z_
        Editable install will be performed using .pth file to extend `sys.path` with:
        z	
        )Úlistr•   rd   Úfspathr4  r  ÚwarningÚ_LENIENT_WARNING©rY   Úmsgs   & r7   r(  Ú_StaticPth.__enter__£  sH   € ð	ä	Œc”"—)‘)˜T×.Ñ.Ó/Ó	0Ñ3ð 4	ðˆô 	�‰˜Ô.Õ.Ô/Øˆr:   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r1   r+  r   r,  r-  r4   r^   r5   )r6   s   "r7   r8   r5  «  s2   € ÷ ñ àðð ðð ð	ð
 
ñr:   c                	ó   € R # rT   r5   r/  s   &&&&r7   r0  Ú_StaticPth.__exit__«  s   € ñ 	r:   r7  N)	rG   rH   rI   rJ   r8  r#  r(  r0  rN   r5   r:   r7   r  r  –  s   † õ)õ
Bõ÷ñ r:   r  c                  ó„   a € ] tR tRtRtR V 3R lltR V 3R lltR R ltRR	 R
 lltR R lt	R R lt
R R ltRtV ;t# )r  i´  aH  
Creates a ``.pth`` file that points to a link tree in the ``auxiliary_dir``.

This strategy will only link files (not dirs), so it can be implemented in
any OS, even if that means using hardlinks instead of symlinks.

By collocating ``auxiliary_dir`` and the original source code, limitations
with hardlinks should be avoided.
c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r1   ra   r   rv   r‚   r  r   rž   r4   r^   r5   )r6   s   "r7   r8   Ú_LinkTree.__annotate__¿  s<   € ÷ 
;ñ 
;àð
;ð ð
;ð ð	
;ð
 ð
;ð 
ñ
;r:   c                	óÚ   <€ \        V4      V n        \        V4      P                  4       V n        VP	                  R 4      P
                  V n        \        SV `!  WV P                  .4       R# )r!   N)	r   r  rŠ   rž   r³   Ú	copy_fileÚ_fileÚsuperr8  )rY   ra   rv   r  rž   Ú	__class__s   &&&&&€r7   r8  Ú_LinkTree.__init__¿  sV   ø€ ô " -Ó0ˆÔÜ˜i›×0Ñ0Ó2ˆŒØ×)Ñ)¨*Ó5×?Ñ?ˆŒ
Ü‰Ñ˜ d×&8Ñ&8Ð%9Ö:r:   c               ó(   € V ^8„  d   QhRRRRRRRR/# r;  r5   )r6   s   "r7   r8   rX  Ë  s,   € ÷ 0ñ 0Øð0Ø'0ð0Ø;Lð0à	ñ0r:   c                	óJ   <€ V P                  W#4       \        SV `	  WV4       R # rT   )Ú_create_linksr\  r#  )rY   r¼   rÎ   rÏ   r]  s   &&&&€r7   r#  Ú_LinkTree.__call__Ë  s"   ø€ ð 	×Ñ˜5Ô*Ü‰Ñ˜ wÖ/r:   c               ó    € V ^8„  d   QhRRRR/# )r1   Úfiler‚   r4   r3   r5   )r6   s   "r7   r8   rX  Ñ  s   € ÷ ñ  cð ¨jñ r:   c                	ó$  € \        \        4      ;_uu_ 4        \        V4      P                  4       P	                  V P
                  4      p\        V4      P                  \        P                  R 4      uuRRR4       #   + '       g   i     R# ; i)Ú/N)
r   Ú
ValueErrorr   rŠ   Úrelative_torž   r‚   Úreplacerd   Úsep)rY   rd  rg   s   && r7   Ú_normalize_outputÚ_LinkTree._normalize_outputÑ  sZ   € ä”j×!Õ!Ü˜“:×%Ñ%Ó'×3Ñ3°D·N±NÓCˆDÜ�t“9×$Ñ$¤R§V¡V¨SÓ1÷ "×!×!Ñ!ñ ús   ˜AA>Á>B	c               ó    € V ^8„  d   QhRRRR/# )r1   Úrelative_outputr‚   Úsrc_filer5   )r6   s   "r7   r8   rX  Ø  s   € ÷ .ñ .¨Cð .¸3ñ .r:   c                	óÊ   € V P                   V,          pVP                  P                  4       '       g   VP                  P                  R R7       V P	                  W$VR7       R# )T)Úparents©ÚlinkN)r  r”   Úis_dirro   r[  )rY   rn  ro  rs  Údests   &&&& r7   Ú_create_fileÚ_LinkTree._create_fileØ  sJ   € Ø×!Ñ! OÕ3ˆØ�{‰{×!Ñ!×#Ò#Ø�K‰K×Ñ dÐÔ+Ø�
‰
�8¨ˆ
Ö-r:   c               ó   € V ^8„  d   QhRR/# )r1   Úoutput_mappingr  r5   )r6   s   "r7   r8   rX  Þ  s   € ÷ =ñ =Ð5Fñ =r:   c                	óÈ  a € S P                   P                  R R R7       \        S P                   4      '       d   RMRpV 3R lVP                  4        4       pV UUu/ uF  w  rVVf   K  WVbK  	  pppV F7  pS P	                  V4      p	V	'       g   K  W—9  g   K&  S P                  W˜4       K9  	  VP                  4        F  w  ršS P                  WšVR7       K  	  R# u uppi )T)rq  rm   ÚsymÚhardc              3  óN   <"  € T F  w  rSP                  V4      V3x € K  	  R # 5irT   )rk  )r?  ÚkÚvrY   s   &  €r7   rA  Ú*_LinkTree._create_links.<locals>.<genexpr>á  s%   øé € ÐXÑAW¹¸�t×-Ñ-¨aÓ0°!Õ4ÓAWùs   ƒ"%Nrr  )r  ro   Ú_can_symlink_filesÚitemsrk  rv  )rY   Úoutputsry  Ú	link_typeÚ
normalisedr~  r  ÚmappingsÚoutputÚrelativeÚsrcs   f&&        r7   ra  Ú_LinkTree._create_linksÞ  sÂ   ø€ Ø×Ñ× Ñ ¨¸Ð Ô=Ü/°×0BÑ0B×CÒC‘EÈˆ	ÜXÀ×AUÑAUÔAWÓXˆ
á%/ÔA¡Z™T˜Q°1”D�A’D¡ZˆÑAãˆFØ×-Ñ-¨fÓ5ˆHß‰x˜HÖ4Ø×!Ñ! (Ö3ñ ð
 &Ÿ^™^Ö-‰MˆHØ×Ñ˜h°)ÐÖ<ó .ùó Bs   ÁCÁ*Cc               ó   € V ^8„  d   QhRR/# r&  r5   )r6   s   "r7   r8   rX  í  ó   € ÷ ñ ˜4ñ r:   c                	óJ   € R p\         P                  V\        ,           4       V # )z=Strict editable install will be performed using a link tree.
)r  rM  Ú_STRICT_WARNINGrO  s   & r7   r(  Ú_LinkTree.__enter__í  s   € ØNˆÜ�‰˜œoÕ-Ô.Øˆr:   c               ó(   € V ^8„  d   QhRRRRRRRR/# rS  r5   )r6   s   "r7   r8   rX  ò  s2   € ÷ <ñ <àð<ð ð<ð ð	<ð
 
ñ<r:   c                	óT   € R V P                    R2p\        P                  ! RV4       R# )z\

        Strict editable installation performed using the auxiliary directory:
            z†

        Please be careful to not remove this directory, otherwise you might not be able
        to import/use your package.
        úEditable installation.N)r  r   rB   ©rY   r+  r,  r-  rP  s   &&&& r7   r0  Ú_LinkTree.__exit__ò  s2   € ðà×ÑÐ ð !	ðˆô 	×ÒÐ5°sÖ;r:   )r[  r  rž   rT   )rG   rH   rI   rJ   rK   r8  r#  rk  rv  ra  r(  r0  rN   Ú__classcell__)r]  s   @r7   r  r  ´  s:   ø† ñ÷
;ð 
;÷0ð 0õ÷.õ=õ÷
<ó <r:   r  c                  ó^   € ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	Rt
R# )r  i  c               ó$   € V ^8„  d   QhRRRRRR/# )r1   ra   r   rv   r‚   r4   r^   r5   )r6   s   "r7   r8   Ú_TopLevelFinder.__annotate__  s!   € ÷ ñ ˜\ð °ð ¸ñ r:   c                	ó   € Wn         W n        R # rT   ©ra   rv   )rY   ra   rv   s   &&&r7   r8  Ú_TopLevelFinder.__init__  s   € ØŒ	ØŽ	r:   c               ó   € V ^8„  d   QhRR/# )r1   r4   z5tuple[str, str, dict[str, str], dict[str, list[str]]]r5   )r6   s   "r7   r8   r˜    s   € ÷ 2ñ 2ÐTñ 2r:   c           
     	óÎ  € V P                   P                  ;'       g    \        P                  p\	        \        V P                   4      \        V P                   4      4      pV P                   P                  ;'       g    / p\        W#V4      p\        \	        \        V P                   P                  ;'       g    . V4      R  \        V4       4       4      4      pV P                   P                  ;'       g    .  Uu/ uF.  pT\        YdV P                   P                  ;'       g    R4      bK0  	  pp/ VCVCpRV P                   R2p	\         P"                  ! V	4      p
W©W…3# u upi )c              3  ó(   "  € T F  q. 3x € K
  	  R # 5irT   r5   )r?  Únss   & r7   rA  Ú0_TopLevelFinder.template_vars.<locals>.<genexpr>  s   é € ÐDÑ$C˜b�b•Ó$Cùs   ‚rQ   r	  z.finder)ra   rc   rd   re   r	   r  Ú_find_top_level_modulesrf   Ú_find_package_rootsÚdictÚ_find_namespacesr  Ú_find_virtual_namespacesrˆ   r   rv   r   Úsafe_identifier)rY   rc   Ú	top_levelrf   ÚrootsÚnamespaces_ÚpkgÚlegacy_namespacesrÏ   rv   Úfinders   &          r7   Útemplate_varsÚ_TopLevelFinder.template_vars  s7  € Ø—9‘9×%Ñ%×2Ð2¬¯©ˆÜœ.¨¯©Ó3Ô5LÈTÏYÉYÓ5WÓXˆ	Ø—i‘i×+Ñ+×1Ð1¨rˆÜ# I¸HÓEˆäÜÜ  §¡×!3Ñ!3×!9Ð!9°r¸5ÓAÙDÔ$<¸UÔ$CÓDóó
ˆð —y‘y×3Ñ3×9Ð9°rÐ9ó
á9�ð Ô" 3¨t¯y©y×/AÑ/A×/GÐ/GÀRÓHÒHÙ9ð 	ð 
ð
 1�UÐ0Ð/Ð0ˆð
 ˜tŸy™y˜k¨Ð1ˆÜ×/Ò/°Ó5ˆØ˜WÐ1Ð1ùò
s   Ã<(E"Ä%E"c               ó   € V ^8„  d   QhRR/# )r1   r4   zIterator[tuple[str, bytes]]r5   )r6   s   "r7   r8   r˜  "  s   € ÷ 9ñ 9Ð$?ñ 9r:   c              #  	ó¾   "  € V P                  4       w  rr4\        \        W#V4      R 4      pV R2V3x € \        RV RV R24      pRV P                   R2V3x € R# 5i)úutf-8z.pyzimport z; z
.install()r	  rC  N)r­  ÚbytesÚ_finder_templaterD  rv   )rY   r¬  rv   rÏ   r©  Úcontents   &     r7   Úget_implementationÚ"_TopLevelFinder.get_implementation"  sn   é € Ø-1×-?Ñ-?Ó-AÑ*ˆ�gäÔ(¨¸ÓDÀgÓNˆØ�˜ˆ~˜wÐ'Ò'ä ¨ x¨r°&°¸ÐDÓEˆØ˜tŸy™y˜k¨Ð.°Ð8Ô8ùs   ‚AAc               ó(   € V ^8„  d   QhRRRRRRRR/# r;  r5   )r6   s   "r7   r8   r˜  +  s,   € ÷ *ñ *Øð*Ø'0ð*Ø;Lð*à	ñ*r:   c                	óZ   € V P                  4        F  w  rEVP                  WE4       K  	  R # rT   )rµ  rE  )rY   r¼   rÎ   rÏ   rd  r´  s   &&&&  r7   r#  Ú_TopLevelFinder.__call__+  s%   € ð "×4Ñ4Ö6‰MˆDØ�N‰N˜4Ö)ó 7r:   c               ó   € V ^8„  d   QhRR/# r&  r5   )r6   s   "r7   r8   r˜  1  rŒ  r:   c                	óJ   € R p\         P                  V\        ,           4       V # )z=Editable install will be performed using a meta path finder.
)r  rM  rN  rO  s   & r7   r(  Ú_TopLevelFinder.__enter__1  s   € ØNˆÜ�‰˜Ô.Õ.Ô/Øˆr:   c               ó(   € V ^8„  d   QhRRRRRRRR/# rS  r5   )r6   s   "r7   r8   r˜  6  s2   € ÷ 
<ñ 
<àð
<ð ð
<ð ð	
<ð
 
ñ
<r:   c                	ó8   € R p\         P                  ! RV4       R# )z¢

        Please be careful with folders in your working directory with the same
        name as your package as they may take precedence during imports.
        r’  N)r   rB   r“  s   &&&& r7   r0  Ú_TopLevelFinder.__exit__6  s   € ðˆô 	×ÒÐ5°sÖ;r:   rš  N)rG   rH   rI   rJ   r8  r­  rµ  r#  r(  r0  rN   r5   r:   r7   r  r    s%   † õõ2õ69õ*õ÷

<ñ 
<r:   r  c               ó    € V ^8„  d   QhRRRR/# )r1   r´  r‚   r4   r²  r5   )r6   s   "r7   r8   r8   C  s   € ÷ ñ ˜ð  ñ r:   c                óJ  € \         P                  ! 4       ;_uu_ 4       p\         P                  ! V\        P                  R7      pVP                  V 4       VP                  4        VP                  ^ 4       VP                  4       uuRRR4       #   + '       g   i     R# ; i)al  
Prior to Python 3.13 (see https://github.com/python/cpython/issues/77102),
.pth files are always read with 'locale' encoding, the recommendation
from the cpython core developers is to write them as ``open(path, "w")``
and ignore warnings (see python/cpython#77102, pypa/setuptools#3937).
This function tries to simulate this behavior without having to create an
actual file, in a way that supports a range of active Python versions.
(There seems to be some variety in the way different version of Python handle
``encoding=None``, not all of them use ``locale.getpreferredencoding(False)``
or ``locale.getencoding()``).
©ÚencodingN)	ÚioÚBytesIOÚTextIOWrapperr   ÚPTH_ENCODINGÚwriteÚflushÚseekÚread)r´  ÚbufferÚwrappers   &  r7   rD  rD  C  s^   € ô 
�Š�Œ˜Ü×"Ò" 6´E×4FÑ4FÔGˆà�‰�gÔØ�‰ŒØ�‰�AŒØ�{‰{‹}÷ 
��‹ús   žA(BÂB"	c               ó    € V ^8„  d   QhRRRR/# )r1   Úbase_dirr   r4   Úboolr5   )r6   s   "r7   r8   r8   X  s   € ÷ ñ  ð ¨$ñ r:   c           	     ó‚  € \        \        V P                  4       4      R 7      ;_uu_ 4       p\        VR4      \        VR4      r2VP	                  RRR7       \        \        \        \        4      ;_uu_ 4        \        P                  ! W#4       VP                  4       '       d+   VP                  RR7      R8X  d    RRR4       RRR4       R# RRR4        \        P                  ! W#4        RRR4       R	#   + '       g   i     L2; i  \         d   pRp\        T4      ThRp?ii ; i  + '       g   i     R# ; i)
)Údirz	file1.txtz	file2.txtÚfile1r±  rÂ  NTz�File system does not seem to support either symlinks or hard links. Strict editable installs require one of them to be supported.F)r   r‚   rŠ   r   Ú
write_textr   ÚAttributeErrorÚNotImplementedErrorÚOSErrorrd   ÚsymlinkÚ
is_symlinkÚ	read_textrs  ru   ÚLinksNotSupported)rÏ  r÷   Úpath1Úpath2ry   rP  s   &     r7   r�  r�  X  sø   € Ü	¤ H×$4Ñ$4Ó$6Ó 7×	8Õ	8¸CÜ˜C Ó-¬t°C¸Ó/EˆuØ×Ñ˜¨7ÐÔ3Ü”nÔ&9¼7×CÕCÜ�JŠJ�uÔ$Ø×Ñ×!Ò! e§o¡o¸w oÓ&GÈ7Ô&RØ÷ D÷ 
9Ñ	8÷ Dð
	1Ü�GŠG�EÔ!ð ÷! 
9Ñ	8÷ D×Cûô ô 	1ðPð ô $ CÓ(¨bÐ0ûð	1ú÷ 
9×	8Ð	8úsO   ¬AD-Á8AC9	Â=D-ÃD-ÃDÃ.D-Ã9D	ÄD-ÄD*ÄD%Ä%D*Ä*D-Ä-D>	c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r1   r  úIterable[str]rf   údict[str, str]rW   r   r4   rÐ  r5   )r6   s   "r7   r8   r8   l  s,   € ÷ &ñ &Øð&Ø*8ð&ØGNð&à	ñ&r:   c           	     ó˜  a€ V  Uu/ uF  q3\        W1V4      bK  	  ppV'       g   \        V4      / R039   # \        P                  P	                  \        \        VP                  4       4      4      o\        ;QJ d-    V3R lVP                  4        4       F  '       d   K   R# 	  R# ! V3R lVP                  4        4       4      # u upi )aó  Return ``True`` if:
- all packages are contained by the same parent directory, **and**
- all packages become importable if the parent directory is added to ``sys.path``.

>>> _simple_layout(['a'], {"": "src"}, "/tmp/myproj")
True
>>> _simple_layout(['a', 'a.b'], {"": "src"}, "/tmp/myproj")
True
>>> _simple_layout(['a', 'a.b'], {}, "/tmp/myproj")
True
>>> _simple_layout(['a', 'a.a1', 'a.a1.a2', 'b'], {"": "src"}, "/tmp/myproj")
True
>>> _simple_layout(['a', 'a.a1', 'a.a1.a2', 'b'], {"a": "a", "b": "b"}, ".")
True
>>> _simple_layout(['a', 'a.a1', 'a.a1.a2', 'b'], {"a": "_a", "b": "_b"}, ".")
False
>>> _simple_layout(['a', 'a.a1', 'a.a1.a2', 'b'], {"a": "_a"}, "/tmp/myproj")
False
>>> _simple_layout(['a', 'a.a1', 'a.a1.a2', 'b'], {"a.a1.a2": "_a2"}, ".")
False
>>> _simple_layout(['a', 'a.b'], {"": "src", "a.b": "_ab"}, "/tmp/myproj")
False
>>> # Special cases, no packages yet:
>>> _simple_layout([], {"": "src"}, "/tmp/myproj")
True
>>> _simple_layout([], {"a": "_a", "": "src"}, "/tmp/myproj")
False
rQ   c           	   3  óŠ   <"  € T F8  w  r\         P                  ! \        S.VP                  R 4      O5!  V4      x € K:  	  R# 5i©r‡   N)r   Ú	same_pathr   Úsplit)r?  ÚkeyÚvaluer”   s   &  €r7   rA  Ú!_simple_layout.<locals>.<genexpr>�  s:   øé € ð á(‰JˆCô 	�Šœ˜VÐ5 c§i¡i°£nÓ5°u×=Ð=Û(ùs   ƒA AFT)	r   r  rd   rg   Ú
commonpathr
   Ú_parent_pathr‚  Úall)r  rf   rW   rª  Úlayoutr”   s   &&&  @r7   r  r  l  s­   ø€ ñ> PXÓXÉxÈÔ$ S°{ÓCÒCÉx€FÐXßÜ�;Ó B¨¨ :Ñ-Ð-Ü�W‰W×Ñ¤¬°f·l±l³nÓ EÓF€Fß‹3ô à Ÿ,™,œ.ó�3Œ3ð Š3ð ˆ3ô à Ÿ,™,œ.óó ð ùò	 Ys   †Cc                óp   € VP                  V 4      pVP                  R\        P                  ,           4      # )a  Infer the parent path containing a package, that if added to ``sys.path`` would
allow importing that package.
When ``pkg`` is directly mapped into a directory with a different name, return its
own path.
>>> _parent_path("a", "src/a")
'src'
>>> _parent_path("b", "src/c")
'src/c'
rf  )ÚremovesuffixÚrstriprd   rj  )rª  Úpkg_pathr”   s   && r7   rê  rê  •  s+   € ð ×"Ñ" 3Ó'€FØ�=‰=˜œrŸv™v�Ó&Ð&r:   c               ó    € V ^8„  d   QhRRRR/# ©r1   ra   r   r4   úIterator[str]r5   )r6   s   "r7   r8   r8   £  s   € ÷ ñ ˜ð ¨-ñ r:   c              #  óð  "  € \        V P                  ;'       g    . 4       R j  x€L
  V P                  ;'       g    . pV Uu. uF  pRV9   g   K  VNK  	  ppV P                  '       d   V P                  x € MKV P                  ;'       g    . pY4 Uu. uF"  pRVP
                  9   g   K  VP
                  NK$  	  up,          pV F  pVP                  R4      w  p pVx € K  	  R #  LÄu upi u upi 5i)Nr‡   )Úiterr  Ú
py_modulesÚext_packageÚext_modulesrv   Ú
rpartition)	ra   rö  ÚmodÚnested_modulesrø  ÚxÚmoduleÚpackageÚ_s	   &        r7   r  r  £  sÕ   é € Ü�D—M‘M×'Ð' RÓ(×(Ð(à—‘×&Ð& B€JÙ%/Ó>¡Z˜c°3¸#±:—c�c¡Z€NÐ>Ø××ÐØ×ÑÓà×&Ñ&×,Ð,¨"ˆØ¨;ÓH©; a¸#ÀÇÁ¹-œ6˜1Ÿ6œ6©;ÑHÕHˆã ˆØ×)Ñ)¨#Ó.‰ˆ��AØŒó !ñ )ùò ?ùò
 IùsD   ‚#C6¥C*¦C6½C6Á	C,ÁC,Á5C6ÂC6ÂC1Â-C1Â=.C6Ã,
C6c               ó    € V ^8„  d   QhRRRR/# rò  r5   )r6   s   "r7   r8   r8   ³  s   € ÷ Fñ F ,ð F°=ñ Fr:   c              #  óÚ   "  € V P                   ;'       g    . pR  V 4        Rj  x€L
  V P                  '       g*   V P                  ;'       g    . pR V 4        Rj  x€L
  R# R#  LA L
5i)c              3  ó8   "  € T F  pR V9  g   K  Vx € K  	  R# 5irã  r5   )r?  rú  s   & r7   rA  Ú*_find_top_level_modules.<locals>.<genexpr>µ  s   é € Ð<™z˜¨S¸©^—’›zùs   ‚	�
Nc              3  ó`   "  € T F$  pR VP                   9  g   K  VP                   x € K&  	  R# 5irã  )rv   )r?  rü  s   & r7   rA  r  ¹  s!   é € ÐE¡K˜q°3¸a¿f¹fÑ3D”F�A—F–F£Kùs   ‚.š.)rö  r÷  rø  )ra   rö  rø  s   &  r7   r¡  r¡  ³  sa   é € Ø—‘×&Ð& B€JÙ<™zÓ<×<Ð<à××ÐØ×&Ñ&×,Ð,¨"ˆÙE¡KÓE×EÒEñ ñ =ñ 	Fùs,   ‚#A+¥A'¦A+¼A+ÁA+ÁA)Á	A+Á)A+c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r1   r  rß  rf   r  rc   r   r4   rà  r5   )r6   s   "r7   r8   r8   ¼  s0   € ÷ 
%ñ 
%Øð
%à"ð
%ð ð
%ð ñ	
%r:   c                ó~   € \        V 4       Uu/ uF  pV\        \        W1V4      4      bK  	  pp\        V4      # u upi rT   )ÚsortedÚ_absolute_rootr   Ú_remove_nested)r  rf   rc   rª  Ú	pkg_rootss   &&&  r7   r¢  r¢  ¼  sM   € ô ˜(Ô#ó!á#ˆCð 	Œ^Ô-¨cÀÓIÓJÒJÙ#ð ð !ô
 ˜)Ó$Ð$ùò!s   Ž:c               ó    € V ^8„  d   QhRRRR/# )r1   rg   r   r4   r‚   r5   )r6   s   "r7   r8   r8   É  s   € ÷ 2ñ 2˜ð 2 Sñ 2r:   c                óâ   € \        V 4      pVP                  pVP                  4       '       d   \        VP	                  4       4      # \        VP	                  4       VP
                  ,          4      # )z(Works for packages and top-level modules)r   r”   r„   r‚   rŠ   rv   )rg   Úpath_r”   s   &  r7   r  r  É  sK   € ä�‹J€EØ�\‰\€Fà‡|�|‡~‚~Ü�5—=‘=“?Ó#Ð#ä�6—>‘>Ó# e§j¡jÕ0Ó1Ð1r:   c               ó    € V ^8„  d   QhRRRR/# )r1   r
  rà  r4   ró  r5   )r6   s   "r7   r8   r8   Ô  s   € ÷ #ñ #¨ð #¸=ñ #r:   c           	   #  ó2  "  € V  FŒ  pRV9  d   K  VP                  R4      p\        \        V4      ^,
          ^ R4       FN  pRP                  VRV 4      p\	        \        W@R4      4      pVP                  4       '       d	   W@9  g   KJ  Vx € KP  	  KŽ  	  R# 5i)a  By carefully designing ``package_dir``, it is possible to implement the logical
structure of PEP 420 in a package without the corresponding directories.

Moreover a parent package can be purposefully/accidentally skipped in the discovery
phase (e.g. ``find_packages(include=["mypkg.*"])``, when ``mypkg.foo`` is included
by ``mypkg`` itself is not).
We consider this case to also be a virtual namespace (ignoring the original
directory) to emulate a non-editable installation.

This function will try to find these kinds of namespaces.
r‡   NrQ   éÿÿÿÿ)rå  ÚrangeÚlenrh   r   r   r„   )r
  rª  ÚpartsÚiÚpartial_namerg   s   &     r7   r¥  r¥  Ô  s   é € ó ˆØ�cŒ>ÙØ—	‘	˜#“ˆÜ”s˜5“z A•~ q¨"Ö-ˆAØŸ8™8 E¨"¨1 IÓ.ˆLÜÔ)¨,À2ÓFÓGˆDØ—;‘;—=’= LÖ$Aà"Ô"ó .ó	 ùs   ‚BBÂ	Bc               ó$   € V ^8„  d   QhRRRRRR/# )r1   r  r  r
  rà  r4   zIterator[tuple[str, list[str]]]r5   )r6   s   "r7   r8   r8   ì  s$   € ÷  ñ  Øð Ø$2ð à$ñ r:   c              #  óÊ   "  € V  FX  p\        W!R 4      p\        V4      P                  4       '       g   K0  \        VR4      P                  4       '       d   KR  W#.3x € KZ  	  R# 5i)rQ   z__init__.pyN)r   r   r„   )r  r
  rª  rg   s   &&  r7   r¤  r¤  ì  sO   é € ó ˆÜ  °Ó4ˆÜ�‹:×Ñ×Ô¤t¨D°-Ó'@×'GÑ'G×'IÔ'IØ˜�-Ôó ùs   ‚.A#µA#ÁA#c               ó    € V ^8„  d   QhRRRR/# )r1   r
  rà  r4   r5   )r6   s   "r7   r8   r8   õ  s   € ÷ 
ñ 
˜nð 
°ñ 
r:   c                óv  aa€ \        V P                  4       4      p\        \        V P	                  4       4      4       Fw  w  oo\
        ;QJ d.    VV3R  lV P	                  4        4       F  '       g   K   RM#	  RM! VV3R  lV P	                  4        4       4      '       g   Kf  VP                  S4       Ky  	  V# )c              3  ó\   <"  € T F!  w  rSV8g  ;'       d    \        SSW4      x € K#  	  R # 5irT   )Ú
_is_nested)r?  ÚotherÚ
other_pathrg   rª  s   &  €€r7   rA  Ú!_remove_nested.<locals>.<genexpr>ù  s3   øé € ð 
á%6Ñ!�ð �5‰L×EÐEœZ¨¨T°5ÓEÔEÛ%6ùs   ƒ,–,TF)r£  ÚcopyÚreversedrK  r‚  ÚanyÚpop)r
  r‡  rg   rª  s   & @@r7   r	  r	  õ  s„   ù€ Ü�)—.‘.Ó"Ó#€Fäœd 9§?¡?Ó#4Ó5Ö6‰	ˆˆTß‹3õ 
à%.§_¡_Ô%6ó
�3�3Š3õ 
à%.§_¡_Ô%6ó
÷ 
ô 
ð �J‰J�sŽOñ 7ð €Mr:   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )r1   rª  r‚   rð  r”   Úparent_pathr4   rÐ  r5   )r6   s   "r7   r8   r8     s/   € ÷ ñ �Cð  3ð °ð À#ð È$ñ r:   c                ó
  € \         P                  ! V4      pV P                  VR^4      P                  R4      P	                  R4      pV P                  V4      ;'       d%    V\         P                  ! \        V.VO5!  4      8H  # )au  
Return ``True`` if ``pkg`` is nested inside ``parent`` both logically and in the
file system.
>>> _is_nested("a.b", "path/a/b", "a", "path/a")
True
>>> _is_nested("a.b", "path/a/b", "a", "otherpath/a")
False
>>> _is_nested("a.b", "path/a/b", "c", "path/c")
False
>>> _is_nested("a.a", "path/a/a", "a", "path/a")
True
>>> _is_nested("b.a", "path/b/a", "a", "path/a")
False
rQ   r‡   )r   Únormpathri  Ústriprå  Ú
startswithr   )rª  rð  r”   r$  Únorm_pkg_pathÚrests   &&&&  r7   r  r    st   € ô —N’N 8Ó,€MØ�;‰;�v˜r 1Ó%×+Ñ+¨CÓ0×6Ñ6°sÓ;€DØ�>‰>˜&Ó!÷ ð  m´u·~²~Üˆ[Ð ˜4Ó ó8ñ 'ð r:   c               ó    € V ^8„  d   QhRRRR/# )r1   Údir_r)   r4   r5   )r6   s   "r7   r8   r8     s   € ÷ ñ �Rð ˜Bñ r:   c                ób   € \         P                  ! V RR7       \        P                  ! V 4       V # )zFCreate a directory ensured to be empty. Existing files may be removed.T)Úignore_errors)r   Úrmtreerd   Úmakedirs)r,  s   &r7   r
  r
    s!   € ä‡N‚N�4 tÕ,Ü‡K‚K�ÔØ€Kr:   c                  ó.   € ] tR tRtR R ltR tR tRtR# )r‹   i  c               ó   € V ^8„  d   QhRR/# r]   r5   )r6   s   "r7   r8   Ú _NamespaceInstaller.__annotate__   s   € ÷ %ñ %ÐSWñ %r:   c                	óD   € Wn         W@n        W n        W0n        . V n        R # rT   )rb   rc   r�   Úeditable_namerƒ  )rY   rb   r�   r5  rc   s   &&&&&r7   r8  Ú_NamespaceInstaller.__init__   s    € Ø(ÔØ ŒØ 0ÔØ*ÔØ"$ˆŽr:   c                óŒ   € \         P                  P                  V P                  V P                  V P
                  ,           4      # )zInstallation target.)rd   rg   rh   r�   r5  Ú	nspkg_extrX   s   &r7   Ú_get_nspkg_fileÚ#_NamespaceInstaller._get_nspkg_file'  s,   € ä�w‰w�|‰|˜D×1Ñ1°4×3EÑ3EÈÏÉÕ3VÓWÐWr:   c                ó>   € \        \        V P                  4      4      # )z1Where the modules/packages should be loaded from.)Úreprr‚   rc   rX   s   &r7   Ú	_get_rootÚ_NamespaceInstaller._get_root+  s   € ä”C˜Ÿ™Ó&Ó'Ð'r:   )rb   r5  r�   rƒ  rc   N)rG   rH   rI   rJ   r8  r9  r=  rN   r5   r:   r7   r‹   r‹     s   † õ%òXö(r:   r‹   a  from __future__ import annotations
import sys
from importlib.machinery import ModuleSpec, PathFinder
from importlib.machinery import all_suffixes as module_suffixes
from importlib.util import spec_from_file_location
from itertools import chain
from pathlib import Path

MAPPING: dict[str, str] = {mapping!r}
NAMESPACES: dict[str, list[str]] = {namespaces!r}
PATH_PLACEHOLDER = {name!r} + ".__path_hook__"


class _EditableFinder:  # MetaPathFinder
    @classmethod
    def find_spec(cls, fullname: str, path=None, target=None) -> ModuleSpec | None:  # type: ignore
        # Top-level packages and modules (we know these exist in the FS)
        if fullname in MAPPING:
            pkg_path = MAPPING[fullname]
            return cls._find_spec(fullname, Path(pkg_path))

        # Handle immediate children modules (required for namespaces to work)
        # To avoid problems with case sensitivity in the file system we delegate
        # to the importlib.machinery implementation.
        parent, _, child = fullname.rpartition(".")
        if parent and parent in MAPPING:
            return PathFinder.find_spec(fullname, path=[MAPPING[parent]])

        # Other levels of nesting should be handled automatically by importlib
        # using the parent path.
        return None

    @classmethod
    def _find_spec(cls, fullname: str, candidate_path: Path) -> ModuleSpec | None:
        init = candidate_path / "__init__.py"
        candidates = (candidate_path.with_suffix(x) for x in module_suffixes())
        for candidate in chain([init], candidates):
            if candidate.exists():
                return spec_from_file_location(fullname, candidate)
        return None


class _EditableNamespaceFinder:  # PathEntryFinder
    @classmethod
    def _path_hook(cls, path) -> type[_EditableNamespaceFinder]:
        if path == PATH_PLACEHOLDER:
            return cls
        raise ImportError

    @classmethod
    def _paths(cls, fullname: str) -> list[str]:
        paths = NAMESPACES[fullname]
        if not paths and fullname in MAPPING:
            paths = [MAPPING[fullname]]
        # Always add placeholder, for 2 reasons:
        # 1. __path__ cannot be empty for the spec to be considered namespace.
        # 2. In the case of nested namespaces, we need to force
        #    import machinery to query _EditableNamespaceFinder again.
        return [*paths, PATH_PLACEHOLDER]

    @classmethod
    def find_spec(cls, fullname: str, target=None) -> ModuleSpec | None:  # type: ignore
        if fullname in NAMESPACES:
            spec = ModuleSpec(fullname, None, is_package=True)
            spec.submodule_search_locations = cls._paths(fullname)
            return spec
        return None

    @classmethod
    def find_module(cls, _fullname) -> None:
        return None


def install():
    if not any(finder == _EditableFinder for finder in sys.meta_path):
        sys.meta_path.append(_EditableFinder)

    if not NAMESPACES:
        return

    if not any(hook == _EditableNamespaceFinder._path_hook for hook in sys.path_hooks):
        # PathEntryFinder is needed to create NamespaceSpec without private APIS
        sys.path_hooks.append(_EditableNamespaceFinder._path_hook)
    if PATH_PLACEHOLDER not in sys.path:
        sys.path.append(PATH_PLACEHOLDER)  # Used just to trigger the path hook
c               ó(   € V ^8„  d   QhRRRRRRRR/# )r1   rv   r‚   rÏ   r  r   zdict[str, list[str]]r4   r5   )r6   s   "r7   r8   r8   ‰  s2   € ÷ Vñ VØ
ðVØ)ðVØ7KðVàñVr:   c                ó    € \        \        VP                  4       \        P                  ! ^ 4      R7      4      p\
        P                  WVR7      # )zWCreate a string containing the code for the``MetaPathFinder`` and
``PathEntryFinder``.
)ræ  ©rv   rÏ   r   )r£  r  r‚  ÚoperatorÚ
itemgetterÚ_FINDER_TEMPLATEr6   rA  s   &&&r7   r³  r³  ‰  s<   € ô ”6˜'Ÿ-™-›/¬x×/BÒ/BÀ1Ó/EÔFÓG€GÜ×"Ñ"¨È*Ð"ÓUÐUr:   c                  ó   € ] tR tRtRtRtR# )rÛ  i“  zCFile system does not seem to support either symlinks or hard links.r5   N)rG   rH   rI   rJ   rK   rN   r5   r:   r7   rÛ  rÛ  “  s   † ÝMr:   rÛ  )crK   Ú
__future__r   rÄ  ÚloggingrB  rd   rì   rá   Úcollections.abcr   r   r   Ú
contextlibr   Úenumr   Úinspectr   Ú	itertoolsr	   r
   Úpathlibr   Útempfiler   Útypesr   Útypingr   r   r   r   r   rQ   r   r   r   r   r   r   r   r/   r   r   Ú	discoveryr   ra   r   Úwarningsr   r   r    rª   r!   r¸   r"   r   r#   r§   r$   r«   r%   rµ   Útyping_extensionsr&   Ú_vendor.wheel.wheelfiler(   r)   Ú	getLoggerrG   r  r,   rŽ  rN  rP   r  r  r  r  rD  r�  r  rê  r  r¡  r¢  r  r¥  r¤  r	  r  r
  Ú	Installerr‹   rD  r³  Ú	FileErrorrÛ  r5   r:   r7   Ú<module>rX     sb  ðñ
õ #ã 	Û Û Û 	Û Û ß 7Ñ 7Ý Ý Ý ß $Ý Ý 'Ý ß CÕ Cç J× JÝ ß !Ý )Ý ß DÝ %Ý .Ý 1Ý .Ý +Ý CçÝ&å3áˆT˜Ô!€Ø
×
Ò
˜HÓ
%€ô&$�Dô &$ðR€ðÐ ô^8�Wô ^8ôB	
�xô 
÷ñ ô<K<�
ô K<÷\><ñ ><õBõ*õ(&òR'õõ Fõ
%õ2õ#õ0 õ
õõ,ô(˜*×.Ñ.ô (ð"VÐ õrVôN˜×(Ñ(ö Nr:   