
    n&phxu              
         S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
  SSKJrJr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSKJr  SSKJr  SSKJrJrJrJr  SSKJ r!  Sr"SSSSSS.r#SSSSSS.SSSSSS.\#SSSSSS.SSSSSS.S.r$\"(       a  S S S!S"S#S.\$S$'   S S S%S&S#S.\$S''   \$RK                  \!RL                  5        Sr'S( r(S) r)S* r*S+ r+S, r,S- r-S. r.S/ r/S0 r0 " S1 S2\5      r1g)3zFdistutils.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_compatTz{base}/Lib/site-packagesz{base}/Include/{dist_name}z{base}/Scriptsz{base})purelibplatlibheadersscriptsdatazA{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}/binz!{base}/lib/{implementation_lower}z*{base}/{platlibdir}/{implementation_lower}z1{base}/include/{implementation_lower}/{dist_name}z{base}/site-packagesz{base}/include/{dist_name})posix_prefix
posix_homentpypy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            
         [         R                  " [        5         [        R                  " 5        V s0 s H  n U [        R
                  " U SS9_M     sn sS S S 5        $ s  sn f ! , (       d  f       g = f)NF)expand)
contextlibsuppressAttributeError	sysconfigget_scheme_names	get_paths)schemes    X/var/www/html/venv/lib/python3.13/site-packages/setuptools/_distutils/command/install.py_load_sysconfig_schemesr+   c   s^    			^	, $446
6 I''u==6
 
-	,
 
-	,s   A$ AA$A$$
A2c            	         [        5       =(       d    0 n [        [        R                  " [        U 5      5       Vs0 s H.  nU0 [        R                  U0 5      EU R                  U0 5      E_M0     sn$ s  snf )z5
Extend default schemes with schemes from sysconfig.
)r+   set	itertoolschainINSTALL_SCHEMESget)sysconfig_schemesr)   s     r*   _load_schemesr3   k   s    
 017R )///;LMN
 OF	 	 
!!&"-
##FB/
 	
 O  s   5A2c                 0    [        [        S5      (       a  gg)Npypy_version_infoPyPyPython)hasattrsys     r*   _get_implementationr<   {   s    s'((r;   c                    [        U[        [        U5      5      5      n[        U 5      R	                  [        U [        U5      5      5        g N)_inject_headers_load_scheme_resolve_schemevarsupdate_remove_set_scheme_attrs)obnamer)   s      r*   _select_schemerH      s4    T<0E#FGFHOOKM&$9:;r;   c                t    UR                  5        VVs0 s H  u  p#[        X5      b  M  X#_M     snn$ s  snnf )z)
Include only attrs that are None in ob.
)itemsgetattr)rF   attrskeyvalues       r*   rD   rD      s/     */S:3'":JJCJSSSs   44c                    U R                  S5      u  pn [        R                  " U5      nU$ ! [         a    [        R
                  " U 5      n U$ f = f)N_)	partitionr&   get_preferred_scheme	Exceptionfwr)   )rG   os_nameseprM   resolveds        r*   rA   rA      sT    s+G##11#6 O  #99T?O#s   .  AAc                    [        5       U    $ r>   )r3   )rG   s    r*   r@   r@      s    ?4  r;   c                F    [        U 5      nUR                  SUS   5        U$ )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)rG   r)   fallbacks      r*   r?   r?      s(     D!H
i)!45Mr;   c                F    [          Vs0 s H  nSU 3X   _M     sn$ s  snf )z<Resolve install directories by applying the install schemes.install_)SCHEME_KEYS)r)   rM   s     r*   rE   rE      s(    5@A[chsefk)[AAAs   c                  x   \ rS rSr% Sr/ SQr/ SQrS\S'   \(       a)  \R                  SSS	\
 S
345        \R                  S5        SS0rS\S'   S+S jrS+S jrS+S jrS+S jrS+S jrS+S jrS rS+S jrS+S jrS+S jrS+S jrS+S jrS+S jrS rS rS rS rS  rS! rS" rS# r S$\4S%\4S&\4S'\ 4S(S) 4/r!S*r"g),install   z'install everything from build directory))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)compileczcompile .py to .pyc [default])
no-compileNz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])forcefz1force installation (overwrite any existing files))
skip-buildNz2skip rebuilding everything (for testing/debugging))zrecord=Nz3filename in which to record list of installed files)rb   rf   rh   zClassVar[list[str]]boolean_optionsuserNzinstall in user site-package ''rd   rb   zClassVar[dict[str, str]]negative_optc                r   SU l         SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l	        SU l
        SU l        SU l        [        U l        [        U l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        g)zInitializes options.NFT)prefixexec_prefixhomerj   install_baseinstall_platbaserootinstall_purelibinstall_platlibinstall_headersinstall_libinstall_scriptsinstall_datar   install_userbaser   install_usersiterb   optimize
extra_pathinstall_path_filerf   
skip_buildwarn_dir
build_base	build_librecordselfs    r*   initialize_optionsinstall.initialize_options   s     #''+ $		
 ! $ $	  $##'+#  ) ) !% 
  r;   c                z
   U R                   (       d"  U R                  (       d  U R                  (       a-  U R                  (       d  U R                  (       a  [        S5      eU R                  (       a-  U R                   (       d  U R                  (       a  [        S5      eU R                  (       a`  U R                   (       dD  U R                  (       d3  U R                  (       d"  U R                  (       d  U R                  (       a  [        S5      e[        R                  S:w  a)  U R                  (       a  U R                  S5        SU l        U R                  S5        [        R                  S:X  a  U R                  5         OU R                  5         U R                  S5        [        R                  R                  5       S	   n[!        S
S5      u  p# [        R"                  nU R&                  R)                  5       U R&                  R+                  5       U R&                  R-                  5       U[        R.                  R0                   S[        R.                  R2                   3[        R.                  R0                   [        R.                  R2                   3UUUUU[5        [        SS5      [7        5       R9                  5       [7        5       S.n[;        [5        [        SS5      R=                  SS5      S9n[>        (       a  U R@                  US'   U RB                  US'   [D        RF                  " U[H        R                   " 5       U[J        RL                  " 5       5      U l'        U RQ                  5         U R                  S5        U R                  US'   U R                  US'   [R        (       a,  S	SK*J*n  [W        S5        U" [;        U RN                  5      5        U RY                  5         U R                  S5        U R                  (       a  U R[                  5         U R\                  cB  U R&                  R_                  5       (       a  U R`                  U l.        OU Rb                  U l.        U Re                  SSSSSSSS5        U Rg                  5         U R\                  U l4        [        Rj                  Rm                  U R\                  U Rn                  5      U l.        U Rp                  b  U Rs                  S SSSSSS5        U R                  S!5        U Ru                  S"S#S$5        g! [$         a    Sn GNUf = f)%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}()r   rn   ro    .
platlibdirlib)	dist_namedist_versiondist_fullname
py_versionpy_version_shortpy_version_nodot
sys_prefixrn   sys_exec_prefixro   abiflagsr   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   );rn   ro   rp   rq   rr   r   rj   osrG   warn	dump_dirsfinalize_unixfinalize_otherr9   versionsplitr   r   r%   distributionget_nameget_versionget_fullnameversion_infomajorminorrK   r<   lowerdictreplaceHAS_USER_SITErz   r{   collectionsChainMapr&   rT   rB   config_varsexpand_basedirsr
   r   printexpand_dirscreate_home_pathrw   has_ext_modulesru   rt   convert_pathshandle_extra_pathinstall_libbasepathjoin
extra_dirsrs   change_rootsset_undefined_options)r   r   rn   ro   r   
local_varscompat_varsr   s           r*   finalize_optionsinstall.finalize_optionsD  s     KK4++tyy!6!6&i  99$++)9)9&K  99KKyy  $$&:  77g		GH#'  	2377g !56 [[&&(+
 /- H	||H
 **335 --99;!..;;=$#&#3#3#9#9":!C<L<L<R<R;S T#&#3#3#9#9":3;K;K;Q;Q:R S *& !#|U;$7$9$?$?$A13

$ ")#x"<"D"DS""M

 =%)%:%:Jz"%)%:%:Jz"&//%%'GGI	
 	/0 "..
6!%!6!6
:5%.!4(()* 	+, 99!!# #  0022#'#7#7 #'#7#7  			
  	 #//77<<(8(8$//J 99 5)Y	69 	./ 	""13M	
Q  	H	s   T* *T:9T:c                   [         (       d  gSSKJn  [        R                  " US-   5        U R
                   H  nUS   nUS   S:X  a  USS nX@R                  ;   a1  U R                  U   nUR                  U5      n[        X5      (       + nOUR                  U5      n[        X5      n[        R                  " SXE5        M     g)	zDumps the list of user options.Nr   )longopt_xlate:r   =z  %s: %s)	r
   fancy_getoptr   r   debuguser_optionsrl   	translaterK   )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 %r;   c                D   U R                   c  U R                  b  U R                  SL =(       a#    U R                  SL =(       a    U R                  SL =(       d8    U R
                  SL =(       d#    U R                  SL =(       d    U R                  SL nU(       a  [        S5      egU R                  (       aB  U R                  c  [        S5      eU R                  =U l         U l        U R                  S5        gU R                  b*  U R                  =U l         U l        U R                  S5        gU R                  c  U R                  b  [        S5      e[!        ["        SS5      n[$        R&                  R)                  [*        R                  5      U-   U l        [$        R&                  R)                  [*        R                  5      U-   U l        OU R                  c  U R                  U l        U R                  U l         U R                  U l        U R                  S	5        g)
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   )rq   rr   rw   rt   ru   rv   rx   ry   r   rj   rz   r   select_schemerp   rn   ro   rK   r&   r   r   normpathr9   )r   incomplete_schemer   s      r*   r   install.finalize_unix  s   (D,A,A,M $$, 5,,45,,4-
 ''4/- ''4/- $$,  !*8  99$$,,-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!~.r;   c                ~   U R                   (       aS  U R                  c  [        S5      eU R                  =U l        U l        U R                  [        R                  S-   5        gU R                  b*  U R                  =U l        U l        U R                  S5        gU R                  c2  [        R                  R                  [        R                  5      U l	        U R                  =U l        U l         U R                  [        R                  5        g! [         a    [        S[        R                   S35      ef = f)z)Finalizes options for non-posix platformsNr   _userr   z&I don't know how to install stuff on 'rk   )rj   rz   r   rq   rr   r   r   rG   rp   rn   r   r   r9   KeyErrorr   s    r*   r   install.finalize_other@  s    99$$,,-STT8<8M8MMD 5rww01YY"8<		AD 5|,{{" gg..szz:8<CD 5""277+ ,<RWWIQG s   4D (D<c                    [        X5        g r>   )rH   )r   rG   s     r*   r   install.select_schemeV  s
    t"r;   c                    U Hg  n[        X5      nUc  M  [        R                  S;   a  [        R                  R	                  U5      n[        X0R                  5      n[        XU5        Mi     g )N)r   r   )rK   r   rG   r   
expanduserr   r   setattr)r   rL   attrr   s       r*   _expand_attrsinstall._expand_attrsY  sU    D$%C77o-'',,S1C &6&67C( r;   c                *    U R                  / SQ5        g)zFCalls `os.path.expanduser` on install_base, install_platbase and
root.)rq   rr   rs   Nr   r   s    r*   r   install.expand_basedirsb  s     	GHr;   c                *    U R                  / SQ5        g)z+Calls `os.path.expanduser` on install dirs.)rt   ru   rw   rv   rx   ry   Nr   r   s    r*   r   install.expand_dirsg  s     
 	r;   c                \    U H&  nSU-   n[        X[        [        X5      5      5        M(     g)z!Call `convert_path` over `names`.r]   N)r   r   rK   r   namesrG   r   s       r*   r   install.convert_pathsr  s*    D$DDWT-@ AB r;   c                
   U R                   c  U R                  R                   U l         U R                   b  [        R                  " S5        [	        U R                   [
        5      (       a   U R                   R                  S5      U l         [        U R                   5      S:X  a  U R                   S   =pO3[        U R                   5      S:X  a  U R                   u  pO[        S5      e[        U5      nOSnSnXl
        X l        g)	z4Set `path_file` and `extra_dirs` using `extra_path`.NzIDistribution option extra_path is deprecated. See issue27919 for details.,r   r   r   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 #$r;   c                r    U H1  nSU-   n[        X[        U R                  [        X5      5      5        M3     g)z:Change the install directories pointed by name using root.r]   N)r   r   rs   rK   r   s       r*   r   install.change_roots  s0    D$DDDIIwt7J KL r;   c                   U R                   (       d  g[        [        R                  R	                  S5      5      nU R
                  R                  5        Hv  n[        U5      R                  U5      (       d  M$  [        R                  R                  U5      (       a  MJ  U R                  SU S35        [        R                  " US5        Mx     g)zCreate directories under ~.N~zos.makedirs('z	', 0o700)i  )rj   r   r   r   r   r   valuesr   
startswithisdirdebug_printmakedirs)r   rp   r   s      r*   r   install.create_home_path  s    yyBGG..s34$$++-D4y##D))"''--2E2E  =i!@AD%( .r;   c                   U R                   (       d`  U R                  S5        U R                  R                  S5      R                  nU R
                  (       a  U[        5       :w  a  [        S5      eU R                  5        H  nU R                  U5        M     U R                  (       a  U R                  5         U R                  (       a  U R                  5       nU R                  (       a9  [        U R                  5      n[        [        U5      5       H  nX5   US X5'   M     U R!                  ["        U R                  U4SU R                   S35        [%        [&        R(                  R*                  [,        R(                  5      n[%        [&        R(                  R.                  U5      n[&        R(                  R/                  [&        R(                  R+                  U R0                  5      5      nU R
                  (       aK  U R                  (       a  U R2                  (       d(  Xv;  a"  [4        R6                  " SU R0                  5        gggg)zRuns the command.r   z"Can't install when cross-compilingNz$writing list of installed files to 'rk   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_outputsrs   r   rangeexecuter   mapr   r   r   r9   normcaserw   r~   r   r   )r   
build_platcmd_nameoutputsroot_lencountersys_pathrw   s           r*   runinstall.run  s    W%**::7CMMJ }}|~!=,-QRR --/HX& 0 >>!!# ;;&&(Gyytyy>$S\2G'.'7	'BG$  3LLg&6t{{m1E rww''2rww''2gg&&rww'7'78H8H'IJMM^^(>(>+IIE    , )? r;   c                   [         R                  R                  U R                  U R                  S-   5      nU R
                  (       a'  U R                  [        XR                  /4SU 35        gU R                  SU S35        g)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  si    77<< 4 4dnnv6MN!!LLX'89Yxj;Q IIH:];<r;   c                   / nU R                  5        HC  nU R                  U5      nUR                  5        H  nXA;  d  M
  UR                  U5        M     ME     U R                  (       aW  U R
                  (       aF  UR                  [        R                  R                  U R                  U R                  S-   5      5        U$ )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NN277<<(<(<dnnv>UVWr;   c                    / nU R                  5        H3  nU R                  U5      nUR                  UR                  5       5        M5     U$ )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 r;   c                x    U R                   R                  5       =(       d    U R                   R                  5       $ )zKReturns true if the current distribution has any Python
modules to install.)r   has_pure_modulesr   r   s    r*   has_libinstall.has_lib  s/     ..0WD4E4E4U4U4W	
r;   c                6    U R                   R                  5       $ )zDReturns true if the current distribution has any headers to
install.)r   has_headersr   s    r*   r*  install.has_headers         ,,..r;   c                6    U R                   R                  5       $ )zEReturns true if the current distribution has any scripts to.
install.)r   has_scriptsr   s    r*   r.  install.has_scripts  r,  r;   c                6    U R                   R                  5       $ )zBReturns true if the current distribution has any data to.
install.)r   has_data_filesr   s    r*   has_datainstall.has_data  s       //11r;   rw   rv   rx   ry   install_egg_infoc                    g)NTr:   r   s    r*   <lambda>install.<lambda>$  s    $r;   )r   r   rb   r   ro   r   r}   rf   rp   rq   ry   rv   rw   r   r~   rr   ru   rt   rx   rz   r{   r|   r   rn   r   rs   r   rj   r   )returnNone)#__name__
__module____qualname____firstlineno__descriptionr   ri   __annotations__r   r  r   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r
  r"  r'  r*  r.  r2  sub_commands__static_attributes__r:   r;   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(	"	./Lr;   r`   )2__doc__
__future__r   r   r#   r.   r   r9   r&   distutils._logr   siter   r   typingr   corer	   r   r
   errorsr   r   	file_utilr   r   utilr   r   r   r   r   r   rT   r   WINDOWS_SCHEMEr0   rC   schemesr^   r+   r3   r<   rH   rD   rA   r@   r?   rE   r`   r:   r;   r*   <module>rM     sa  / #    	 
   %    A " ' F F % *)+ W+3 7?F ))/ *)/#3 F O"OI  3#%OL!   rzz " C
 <
T!B
w	g w	r;   