+
    SBixu                    (   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
 ^ RI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HtHtHt ^RIH t! Rt"RRRRRRRRRR/t#RRRRRRRRRRR/RRRRRRRRRRR/R ]#R!RR"RR"RR#RRRR/R$RR"RR"RR#RRRR//t$]"'       d   RR%RR%RR&RR'RR(/]$R)&   RR%RR%RR*RR+RR(/]$R,&   ]$PK                  ]!PL                  4       R8t'R- t(R. t)R/ t*R0 t+R1 t,R2 t-R3 t.R4 t/R5 t0 ! R6 R7]4      t1R# )9zFdistutils.command.install

Implements the Distutils 'install' command.)annotationsN)log)	USER_BASE	USER_SITE)ClassVar)Command)DEBUG)DistutilsOptionErrorDistutilsPlatformError)
write_file)get_config_vars)change_rootconvert_pathget_platform
subst_vars)_framework_compatTpurelibz{base}/Lib/site-packagesplatlibheadersz{base}/Include/{dist_name}scriptsz{base}/Scriptsdataz{base}posix_prefixzA{base}/lib/{implementation_lower}{py_version_short}/site-packageszN{platbase}/{platlibdir}/{implementation_lower}{py_version_short}/site-packageszM{base}/include/{implementation_lower}{py_version_short}{abiflags}/{dist_name}z
{base}/bin
posix_homez!{base}/lib/{implementation_lower}z*{base}/{platlibdir}/{implementation_lower}z1{base}/include/{implementation_lower}/{dist_name}ntpypyz{base}/site-packagesz{base}/include/{dist_name}pypy_ntz
{usersite}zF{userbase}/{implementation}{py_version_nodot_plat}/Include/{dist_name}z:{userbase}/{implementation}{py_version_nodot_plat}/Scriptsz
{userbase}nt_userzQ{userbase}/include/{implementation_lower}{py_version_short}{abiflags}/{dist_name}z{userbase}/bin
posix_userc                    \         P                  ! \        4      ;_uu_ 4        \        P                  ! 4        U u/ uF  p V \        P
                  ! V R R7      bK  	  up uuRRR4       # u up i   + '       g   i     R# ; i)F)expandN)
contextlibsuppressAttributeError	sysconfigget_scheme_names	get_paths)schemes    J/usr/lib/python3.14/site-packages/setuptools/_distutils/command/install.py_load_sysconfig_schemesr(   c   sd    			^	,	, $446
6 I''u==6
 
-	,
 
-	,	,s   A/"A*A/*A//B 	c            	         \        4       ;'       g    / p \        \        P                  ! \        V 4      4       Uu/ uF.  pV/ \        P                  V/ 4      CV P                  V/ 4      CbK0  	  up# u upi )z5
Extend default schemes with schemes from sysconfig.
)r(   set	itertoolschainINSTALL_SCHEMESget)sysconfig_schemesr&   s     r'   _load_schemesr0   k   s    
 0177R )///;LMN
 OF	 	 
!!&"-
##FB/
 	
 O  s   4A2c                 6    \        \        R 4      '       d   R# R# )pypy_version_infoPyPyPython)hasattrsys     r'   _get_implementationr9   {   s    s'((r8   c                    \        V\        \        V4      4      4      p\        V 4      P	                  \        V \        V4      4      4       R # N)_inject_headers_load_scheme_resolve_schemevarsupdate_remove_set_scheme_attrs)obnamer&   s   && r'   _select_schemerE      s4    T<0E#FGFHOOKM&$9:;r8   c                t    VP                  4        UUu/ uF  w  r#\        W4      e   K  W#bK  	  upp# u uppi )z)
Include only attrs that are None in ob.
)itemsgetattr)rC   attrskeyvalues   &&  r'   rA   rA      s/     */S:3'":JJCJSSSs   44c                    V P                  R 4      w  rp \        P                  ! V4      pV#   \         d    \        P
                  ! T 4      p T# i ; i)_)	partitionr#   get_preferred_scheme	Exceptionfwr&   )rD   os_nameseprJ   resolveds   &    r'   r>   r>      sT    s+G##11#6 O  #99T?O#s   . !AAc                $    \        4       V ,          # r;   )r0   )rD   s   &r'   r=   r=      s    ?4  r8   c                N    \        V 4      pVP                  RVR,          4       V# )z
Given a scheme name and the resolved scheme,
if the scheme does not include headers, resolve
the fallback scheme for the name and use headers
from it. pypa/distutils#88
r   )r=   
setdefault)rD   r&   fallbacks   && r'   r<   r<      s(     D!H
i)!45Mr8   c                L    \          Uu/ uF  pRV 2W,          bK  	  up# u upi )z<Resolve install directories by applying the install schemes.install_)SCHEME_KEYS)r&   rJ   s   & r'   rB   rB      s(    5@A[chsefk)[AAAs   !c                     ] tR t^t$ Rt. R4Ot. R5OtR]R&   ]'       d*   ]P                  RRR]
 R	234       ]P                  R4       RR/tR
]R&   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 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& tR' tR( tR) tR* tR+ tR, t R-]3R.]3R/]3R0] 3R1R2 3.t!R3t"R# )6installz'install everything from build directoryNcompile
no-compilezClassVar[list[str]]boolean_optionsuserzinstall in user site-package ''zClassVar[dict[str, str]]negative_optc                   V ^8  d   QhRR/#    returnNoner7   )formats   "r'   __annotate__install.__annotate__   s     E ED Er8   c                t   RV n         RV n        RV n        RV n        RV n        RV n        RV n        RV n        RV n        RV n	        RV n
        RV n        RV n        \        V n        \        V n        RV n        RV n        RV n        RV n        RV n        RV n        RV n        RV n        RV n        RV n        R# )zInitializes options.NFT)prefixexec_prefixhomera   install_baseinstall_platbaserootinstall_purelibinstall_platlibinstall_headersinstall_libinstall_scriptsinstall_datar   install_userbaser   install_usersiter^   optimize
extra_pathinstall_path_fileforce
skip_buildwarn_dir
build_base	build_librecordselfs   &r'   initialize_optionsinstall.initialize_options   s     #''+ $		
 ! $ $	  $##'+#  ) ) !% 
  r8   c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk   D  s     r
 r
$ r
r8   c                
   V P                   '       g%   V P                  '       g   V P                  '       d0   V P                  '       g   V P                  '       d   \        R4      hV P                  '       d0   V P                   '       g   V P                  '       d   \        R4      hV P                  '       df   V P                   '       gI   V P                  '       g7   V P                  '       g%   V P                  '       g   V P                  '       d   \        R4      h\        P                  R8w  d+   V P                  '       d   V P                  R4       RV n        V P                  R4       \        P                  R8X  d   V P                  4        MV P                  4        V P                  R4       \        P                  P                  4       ^ ,          p\!        R	R
4      w  r# \        P"                  pRV P&                  P)                  4       RV P&                  P+                  4       RV P&                  P-                  4       RVR\        P.                  P0                   R\        P.                  P2                   2R\        P.                  P0                   \        P.                  P2                   2RVR	VRVR
VRVR\5        \        RR4      R\7        4       P9                  4       R\7        4       /p\;        \5        \        RR4      P=                  RR4      R7      p\>        '       d   V P@                  VR&   V PB                  VR&   \D        PF                  ! V\H        P                   ! 4       V\J        PL                  ! 4       4      V n'        V PQ                  4        V P                  R4       V P                  VR&   V P                  VR &   \R        '       d-   ^ R!I*H*p \W        R"4       V! \;        V PN                  4      4       V PY                  4        V P                  R#4       V P                  '       d   V P[                  4        V P\                  fD   V P&                  P_                  4       '       d   V P`                  V n.        MV Pb                  V n.        V Pe                  RR$R%R&R'R(RR4       V Pg                  4        V P\                  V n4        \        Pj                  Pm                  V P\                  V Pn                  4      V n.        V Pp                  e   V Ps                  R)RR$R%R&R'R(4       V P                  R*4       V Pu                  R+R,R-4       R#   \$         d    Rp ELmi ; i).zFinalizes options.zWmust supply either prefix/exec-prefix/home or install-base/install-platbase -- not bothz9must supply either home or prefix/exec-prefix -- not bothzGcan't combine user with prefix, exec_prefix/home, or install_(plat)baseposixz+exec-prefix option ignored on this platformNzpre-finalize_{unix,other}zpost-finalize_{unix,other}()rm   rn    	dist_namedist_versiondist_fullname
py_versionpy_version_short.py_version_nodot
sys_prefixsys_exec_prefixabiflags
platlibdirlibimplementation_lowerimplementationwinver)py_version_nodot_platuserbaseusersitezpost-expand_basedirs()baseplatbase)pprintzconfig vars:zpost-expand_dirs()r   r   r   r   r   libbasezafter prepending rootbuild)r   r   )r   r   );rm   rn   ro   rp   rq   r	   ra   osrD   warn	dump_dirsfinalize_unixfinalize_otherr6   versionsplitr   r   r"   distributionget_nameget_versionget_fullnameversion_infomajorminorrH   r9   lowerdictreplaceHAS_USER_SITEry   rz   collectionsChainMapr#   rQ   r?   config_varsexpand_basedirsr   r   printexpand_dirscreate_home_pathrv   has_ext_modulesrt   rs   convert_pathshandle_extra_pathinstall_libbasepathjoin
extra_dirsrr   change_rootsset_undefined_options)r   r   rm   rn   r   
local_varscompat_varsr   s   &       r'   finalize_optionsinstall.finalize_optionsD  sc     KKK4+++tyyy!6!6!6&i  999$+++)9)9)9&K  999KKKyyy   $$$&:  77g		GH#'  	2377g !56 [[&&(+
 /- H	||H
 **335D--99;T..;;=*3#3#3#9#9":!C<L<L<R<R;S T3#3#3#9#9":3;K;K;Q;Q:R S&f{;'#|U;"$7$9$?$?$A13

$ ")#x"<"D"DS""M

 =%)%:%:Jz"%)%:%:Jz"&//%%'GGI	
 	/0 "..
6!%!6!6
:5%.!4(()* 	+, 999!!# #  0022#'#7#7 #'#7#7  			
  	 #//77<<(8(8$//J 99 5)Y	69 	./ 	""13M	
Q  	H	s   )U U'&U'c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk     s     1 1 1r8   c                   \         '       g   R# ^RIHp \        P                  ! VR,           4       V P
                   F  pV^ ,          pVR,          R8X  d   V^ R pW@P                  9   d6   V P                  V,          pVP                  V4      p\        W4      '       * pMVP                  V4      p\        W4      p\        P                  ! RWE4       K  	  R# )zDumps the list of user options.N)longopt_xlate:=z  %s: %s)	r   fancy_getoptr   r   debuguser_optionsrc   	translaterH   )r   msgr   optopt_namevals   &&    r'   r   install.dump_dirs  s    u0		#)$$C1vH|s"#Ab>,,,,,X6#--m<!$11#--m<d-IIj(0 %r8   c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk     s     // //t //r8   c                x   V P                   f   V P                  e   V P                  RJ ;'       d-    V P                  RJ ;'       d    V P                  RJ ;'       g;    V P
                  RJ ;'       g%    V P                  RJ ;'       g    V P                  RJ pV'       d   \        R4      hR# V P                  '       dE   V P                  f   \        R4      hV P                  ;V n         V n        V P                  R4       R# V P                  e,   V P                  ;V n         V n        V P                  R4       R# V P                  f   V P                  e   \        R4      h\!        \"        RR4      p\$        P&                  P)                  \*        P                  4      V,           V n        \$        P&                  P)                  \*        P                  4      V,           V n        MV P                  f   V P                  V n        V P                  V n         V P                  V n        V P                  R	4       R# )
z&Finalizes options for posix platforms.NzPinstall-base or install-platbase supplied, but installation scheme is incomplete$User base directory is not specifiedr   r   z*must not supply exec-prefix without prefix_prefix_additionr   r   )rp   rq   rv   rs   rt   ru   rw   rx   r	   ra   ry   r
   select_schemero   rm   rn   rH   r#   r   r   normpathr6   )r   incomplete_schemer   s   &  r'   r   install.finalize_unix  s   (D,A,A,M $$, 5 5,,45 5,,4- -
 ''4/- - ''4/- - $$,  !*8  999$$,,-STT8<8M8MMD 5|,YY"8<		AD 5|,{{"##/.D 
 $+96H"#M  gg..szz:=MM#%77#3#3COO#DGW#W  ##+'+{{D$ $D$($4$4D!~.r8   c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk   @  s       r8   c                   V P                   '       dZ   V P                  f   \        R4      hV P                  ;V n        V n        V P                  \        P                  R,           4       R# V P                  e,   V P                  ;V n        V n        V P                  R4       R# V P                  f3   \        P                  P                  \        P                  4      V n	        V P                  ;V n        V n         V P                  \        P                  4       R#   \         d    \        R\        P                   R24      hi ; i)z)Finalizes options for non-posix platformsNr   _userr   z&I don't know how to install stuff on 'rb   )ra   ry   r
   rp   rq   r   r   rD   ro   rm   r   r   r6   KeyErrorr   s   &r'   r   install.finalize_other@  s    999$$,,-STT8<8M8MMD 5rww01YY"8<		AD 5|,{{" gg..szz:8<CD 5""277+ ,<RWWIQG s   >D )Ec                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk   V  s     # #T #r8   c                	    \        W4       R # r;   )rE   )r   rD   s   &&r'   r   install.select_schemeV  s
    t"r8   c                	    V Fi  p\        W4      pVf   K  \        P                  R9   d    \        P                  P	                  V4      p\        W0P                  4      p\        WV4       Kk  	  R # )N)r   r   )rH   r   rD   r   
expanduserr   r   setattr)r   rI   attrr   s   &&  r'   _expand_attrsinstall._expand_attrsY  sU    D$%C77o-'',,S1C &6&67C( r8   c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk   b  s     I I Ir8   c                ,    V P                  . RO4       R# )zFCalls `os.path.expanduser` on install_base, install_platbase and
root.N)rp   rq   rr   r   r   s   &r'   r   install.expand_basedirsb  s     	GHr8   c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk   g  s     	 	T 	r8   c                ,    V P                  . RO4       R# )z+Calls `os.path.expanduser` on install dirs.N)rs   rt   rv   ru   rw   rx   r   r   s   &r'   r   install.expand_dirsg  s     
 	r8   c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk   r  s     C Ct Cr8   c                f    V F*  pRV,           p\        W\        \        W4      4      4       K,  	  R# )z!Call `convert_path` over `names`.rZ   N)r   r   rH   r   namesrD   r   s   &*  r'   r   install.convert_pathsr  s*    D$DDWT-@ AB r8   c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk   x  s     !% !%4 !%r8   c                   V P                   f   V P                  P                   V n         V P                   e   \        P                  ! R4       \	        V P                   \
        4      '       d!   V P                   P                  R4      V n         \        V P                   4      ^8X  d   V P                   ^ ,          ;rM4\        V P                   4      ^8X  d   V P                   w  rM\        R4      h\        V4      pMRpRpWn
        W n        R# )z4Set `path_file` and `extra_dirs` using `extra_path`.NzIDistribution option extra_path is deprecated. See issue27919 for details.,zY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsr   )r|   r   r   warning
isinstancestrr   lenr	   r   	path_filer   )r   r  r   s   &  r'   r   install.handle_extra_pathx  s    ??""//::DO??&KK. $//3//"&//"7"7"<4??#q()-);;	JT__%*(,%	:*B  &j1JIJ #$r8   c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk     s     M Md Mr8   c                |    V F5  pRV,           p\        W\        V P                  \        W4      4      4       K7  	  R# )z:Change the install directories pointed by name using root.rZ   N)r   r   rr   rH   r   s   &*  r'   r   install.change_roots  s0    D$DDDIIwt7J KL r8   c                   V ^8  d   QhRR/# re   r7   )ri   s   "r'   rj   rk     s     ) )$ )r8   c                   V P                   '       g   R# \        \        P                  P	                  R4      4      pV P
                  P                  4        Fx  p\        V4      P                  V4      '       g   K%  \        P                  P                  V4      '       d   KL  V P                  RV R24       \        P                  ! VR4       Kz  	  R# )zCreate directories under ~.N~zos.makedirs('z	', 0o700)i  )ra   r   r   r   r   r   valuesr   
startswithisdirdebug_printmakedirs)r   ro   r   s   &  r'   r   install.create_home_path  s    yyyBGG..s34$$++-D4y##D))"''--2E2E  =i!@AD%( .r8   c                   V P                   '       gc   V P                  R4       V P                  P                  R4      P                  pV P
                  '       d   V\        4       8w  d   \        R4      hV P                  4        F  pV P                  V4       K  	  V P                  '       d   V P                  4        V P                  '       d   V P                  4       pV P                  '       d>   \        V P                  4      p\        \        V4      4       F  pW5,          VR W5&   K  	  V P!                  \"        V P                  V3RV P                   R24       \%        \&        P(                  P*                  \,        P(                  4      p\%        \&        P(                  P.                  V4      p\&        P(                  P/                  \&        P(                  P+                  V P0                  4      4      pV P
                  '       dR   V P                  '       d   V P2                  '       g,   Wv9  d$   \4        P6                  ! RV P0                  4       R# R# R# R# )zRuns the command.r   z"Can't install when cross-compilingNz$writing list of installed files to 'rb   zmodules installed to '%s', which is not in Python's module search path (sys.path) -- you'll have to change the search path yourself)r   run_commandr   get_command_obj	plat_namer   r   r
   get_sub_commandsr  create_path_filer   get_outputsrr   r   rangeexecuter   mapr   r   r   r6   normcaserv   r}   r   r   )r   
build_platcmd_nameoutputsroot_lencountersys_pathrv   s   &       r'   runinstall.run  s    W%**::7CMMJ }}}|~!=,-QRR --/HX& 0 >>>!!# ;;;&&(Gyyytyy>$S\2G'.'7	'BG$  3LLg&6t{{m1E rww''2rww''2gg&&rww'7'78H8H'IJMMM^^^(>(>(>+IIE    , )? r8   c                   \         P                  P                  V P                  V P                  R,           4      pV P
                  '       d)   V P                  \        WP                  .3RV 24       R# V P                  RV R24       R# )zCreates the .pth file.pthz	creating zpath file 'z' not createdN)
r   r   r   r   r  r}   r  r   r   r   )r   filenames   & r'   r  install.create_path_file  sl    77<< 4 4dnnv6MN!!!LLX'89Yxj;Q IIH:];<r8   c                   . pV P                  4        FD  pV P                  V4      pVP                  4        F  pWA9  g   K  VP                  V4       K  	  KF  	  V P                  '       d]   V P
                  '       dK   VP                  \        P                  P                  V P                  V P                  R,           4      4       V# )z.Assembles the outputs of all the sub-commands.r#  )
r  get_finalized_commandr  appendr  r}   r   r   r   r   )r   r  r  cmdr$  s   &    r'   r  install.get_outputs  s    --/H,,X6C  OO-*NN8, .	 0 >>>d444NN277<<(<(<dnnv>UVWr8   c                    . pV P                  4        F3  pV P                  V4      pVP                  VP                  4       4       K5  	  V# )z*Returns the inputs of all the sub-commands)r  r'  extend
get_inputs)r   inputsr  r)  s   &   r'   r-  install.get_inputs  sF     --/H,,X6CMM#..*+ 0 r8   c                z    V P                   P                  4       ;'       g    V P                   P                  4       # )zKReturns true if the current distribution has any Python
modules to install.)r   has_pure_modulesr   r   s   &r'   has_libinstall.has_lib  s2     ..0WWD4E4E4U4U4W	
r8   c                6    V P                   P                  4       # )zDReturns true if the current distribution has any headers to
install.)r   has_headersr   s   &r'   r5  install.has_headers         ,,..r8   c                6    V P                   P                  4       # )zEReturns true if the current distribution has any scripts to.
install.)r   has_scriptsr   s   &r'   r9  install.has_scripts  r7  r8   c                6    V P                   P                  4       # )zBReturns true if the current distribution has any data to.
install.)r   has_data_filesr   s   &r'   has_datainstall.has_data  s       //11r8   rv   ru   rw   rx   install_egg_infoc                	    R # )Tr7   r   s   &r'   <lambda>install.<lambda>$  s    $r8   )r   r   r^   r   rn   r   r|   r~   ro   rp   rx   ru   rv   r   r}   rq   rt   rs   rw   ry   rz   r{   r  rm   r   rr   r   ra   r   ))zprefix=Nzinstallation prefix)zexec-prefix=Nz.(Unix only) prefix for platform-specific files)zhome=Nz+(Unix only) home directory to install under)zinstall-base=Nz;base installation directory (instead of --prefix or --home))zinstall-platbase=Nz\base installation directory for platform-specific files (instead of --exec-prefix or --home))zroot=Nz<install everything relative to this alternate root directory)zinstall-purelib=Nz;installation directory for pure Python module distributions)zinstall-platlib=Nz8installation directory for non-pure module distributions)zinstall-lib=Nzginstallation directory for all module distributions (overrides --install-purelib and --install-platlib))zinstall-headers=Nz(installation directory for C/C++ headers)zinstall-scripts=Nz)installation directory for Python scripts)zinstall-data=Nz%installation directory for data files)r^   czcompile .py to .pyc [default])r_   Nzdon't compile .py files)z	optimize=Ozlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0])r~   fz1force installation (overwrite any existing files))
skip-buildNz2skip rebuilding everything (for testing/debugging))zrecord=Nz3filename in which to record list of installed files)r^   r~   rF  )#__name__
__module____qualname____firstlineno__descriptionr   r`   __annotations__r   r(  r   rc   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r-  r2  r5  r9  r=  sub_commands__static_attributes__r7   r8   r'   r]   r]      s
   ;K8Lt ,NO(M,YKq9
 	
 	v&.:I-FL*FEZr
n1(//b,#)I
	C!%FM)0d= 
/
/
2 
 	K(	K(	"	./Lr8   r]   )r   r   r   r   r   )2__doc__
__future__r   r   r    r+   r   r6   r#   distutils._logr   siter   r   typingr   corer   r   r   errorsr	   r
   	file_utilr   r   utilr   r   r   r   r   r   rQ   r   WINDOWS_SCHEMEr-   r@   schemesr[   r(   r0   r9   rE   rA   r>   r=   r<   rB   r]   r7   r8   r'   <module>rZ     s  / #    	 
   %    A " ' F F % ))+
H V + 3< 6?F< 	.
))/< ))/#3 F << O"OI 	<< 3#%OL!   rzz " C
 <
T!B
w	g w	r8   