
    vKg~u              
          S 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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%'   \!RE                  \RF                  5        Sr$S& r%S' r&S( r'S) r(S* r)S+ r*S, r+S- r,S. r-S/ r. " S0 S1\5      r/g)2zFdistutils.command.install

Implements the Distutils 'install' command.    N)log)	USER_BASE	USER_SITE   )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    e/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/setuptools/_distutils/command/install.py_load_sysconfig_schemesr)   a   s^    			^	, $446
6 I''u==6
 
-	,
 
-	,s   A#AA#A##
A1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_schemesr1   i   s    
 017R )///;LMN
 OF	 	 
!!&"-
##FB/
 	
 O  s   4A1c                  0    [        [        S5      (       a  gg)Npypy_version_infoPyPyPython)hasattrsys     r(   _get_implementationr:   y   s    s'((r9   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_schemerF      s4    T<0E#FGFHOOKM&$9:;r9   c                 r    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)rD   attrskeyvalues       r(   rB   rB      s/     */S:3'":JJCJSSSs   33c                     U R                  S5      u  pn [        R                  " U5      nU$ ! [         a#    [        R
                  " [        U 5      5      n U$ f = f)N_)	partitionr$   get_preferred_scheme	Exceptionfwr'   
_pypy_hack)rE   os_nameseprK   resolveds        r(   r?   r?      sZ    s+G#/11#6 O  /99Z-.O/s   . )AAc                     [        5       U    $ r<   )r1   )rE   s    r(   r>   r>      s    ?4  r9   c                 X    [        [        U 5      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>   rS   
setdefault)rE   r'   fallbacks      r(   r=   r=      s-     Jt,-H
i)!45Mr9   c                 D    [          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'   rK   s     r(   rC   rC      s(    5@A[chsefk)[AAAs   c                     [         R                  S:  n[        [         S5      =(       a    UnU R                  S5      (       + nSS[        R
                  S:H  -  -   nU(       a	  U(       a  U$ U $ )N)      r3   )_user_homer   _ntr   )r7   version_infor6   endswithosrE   )rE   PY37old_pypyprefix	pypy_names        r(   rS   rS      s\    f$Ds/09TH122F"''T/22I V955r9   c                   2   \ rS rSrSr/ SQr/ SQr\(       a)  \R                  SSS\	 S345        \R                  S5        S	S
0r
S rS rS rS rS rS rS rS rS rS rS rS rS 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)rn   rr   rt   userNzinstall in user site-package ''rp   rn   c                 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)ri   exec_prefixhomeru   install_baseinstall_platbaserootinstall_purelibinstall_platlibinstall_headersinstall_libinstall_scriptsinstall_datar   install_userbaser   install_usersitern   optimize
extra_pathinstall_path_filerr   
skip_buildwarn_dir
build_base	build_librecordselfs    r(   initialize_optionsinstall.initialize_options   s     		
 ! $	  $###  ) ) !% 
  r9   c                 
   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S[        R.                  SS -  S[        R.                  SS -  UUUUU[1        [        SS5      [3        5       R5                  5       [3        5       S.n[7        [1        [        SS5      R9                  SS5      S9n[:        (       a  U R<                  US'   U R>                  US'   [@        RB                  RE                  [F        RH                  " 5       U[J        R                   " 5       U/5      U l&        U RO                  5         U R                  S5        U R                  US'   U R                  US'   [P        (       a,  S	SK)J)n  [U        S5        U" [7        U RL                  5      5        U RW                  5         U R                  S5        U R                  (       a  U RY                  5         U RZ                  cB  U R&                  R]                  5       (       a  U R^                  U l-        OU R`                  U l-        U Rc                  SSSS S!S"SS5        U Re                  5         U RZ                  U l3        [        Rh                  Rk                  U RZ                  U Rl                  5      U l-        U Rn                  b  U Rq                  S#SSSS S!S"5        U R                  S$5        U Rs                  S%S&S'5        g! [$         a    Sn GNf = 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   ri   rx    z%d.%dr   z%d%d
platlibdirlib)	dist_namedist_versiondist_fullname
py_versionpy_version_shortpy_version_nodot
sys_prefixri   sys_exec_prefixrx   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   ):ri   rx   ry   rz   r{   r	   ru   rf   rE   warn	dump_dirsfinalize_unixfinalize_otherr7   versionsplitr   r   r#   distributionget_nameget_versionget_fullnamerd   rI   r:   lowerdictreplaceHAS_USER_SITEr   r   jaracocollections	DictStackrR   r@   r$   config_varsexpand_basedirsr   r   printexpand_dirscreate_home_pathr   has_ext_modulesr~   r}   convert_pathshandle_extra_pathinstall_libbasepathjoin
extra_dirsr|   change_rootsset_undefined_options)r   r   ri   rx   r   
local_varscompat_varsr   s           r(   finalize_optionsinstall.finalize_optionsJ  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;!..;;=$ '#*:*:2A*> > &)9)9"1)= = *& !#|U;$7$9$?$?$A13

$ ")#x"<"D"DS""M

 =%)%:%:Jz"%)%:%:Jz"!--77GGI%%'	9
  	/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   S3 3T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_optionsnegative_opt	translaterI   )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 %r9   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   )rz   r{   r   r}   r~   r   r   r   r	   ru   r   r
   select_schemery   ri   rx   rI   r$   rf   r   normpathr7   )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!~.r9   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   ra   r   z&I don't know how to install stuff on 'rv   )ru   r   r
   rz   r{   r   rf   rE   ry   ri   r   r   r7   KeyErrorr   s    r(   r   install.finalize_otherF  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<   )rF   )r   rE   s     r(   r   install.select_scheme\  s
    t"r9   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   )rI   rf   rE   r   
expanduserr   r   setattr)r   rJ   attrr   s       r(   _expand_attrsinstall._expand_attrs_  sU    D$%C77o-'',,S1C &6&67C( r9   c                 *    U R                  / SQ5        g)zFCalls `os.path.expanduser` on install_base, install_platbase and
root.)rz   r{   r|   Nr   r   s    r(   r   install.expand_basedirsh  s     	GHr9   c                 *    U R                  / SQ5        g)z+Calls `os.path.expanduser` on install dirs.)r}   r~   r   r   r   r   Nr   r   s    r(   r   install.expand_dirsm  s     
 	r9   c                 \    U H&  nSU-   n[        X[        [        X5      5      5        M(     g)z!Call `convert_path` over `names`.r\   N)r   r   rI   r   namesrE   r   s       r(   r   install.convert_pathsx  s*    D$DDWT-@ AB r9   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_path~  s    ??""//::DO??&KK. $//3//"&//"7"7"<4??#q()-);;	JT__%*(,%	:*B  &j1JIJ #$r9   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   r|   rI   r   s       r(   r   install.change_roots  s0    D$DDDIIwt7J KL r9   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  )ru   r   rf   r   r   r   valuesr   
startswithisdirdebug_printmakedirs)r   ry   r   s      r(   r   install.create_home_path  s    yyBGG..s34$$++-D4y##D))"''--2E2E  =i!@AD%( .r9   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 'rv   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_outputsr|   r   rangeexecuter   maprf   r   r   r7   normcaser   r   r   r   )r   
build_platcmd_nameoutputsroot_lencountersys_pathr   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    , )? r9   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)
rf   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:];<r9   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   rf   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r9   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 r9   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	
r9   c                 6    U R                   R                  5       $ )zDReturns true if the current distribution has any headers to
install.)r   has_headersr   s    r(   r0  install.has_headers         ,,..r9   c                 6    U R                   R                  5       $ )zEReturns true if the current distribution has any scripts to.
install.)r   has_scriptsr   s    r(   r4  install.has_scripts  r2  r9   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1r9   r   r   r   r   install_egg_infoc                     g)NTr8   r   s    r(   <lambda>install.<lambda>*  s    $r9   )r   r   rn   r   rx   r   r   rr   ry   rz   r   r   r   r   r   r{   r~   r}   r   r   r   r   r   ri   r   r|   r   ru   r   )"__name__
__module____qualname____firstlineno__descriptionr   boolean_optionsr   r#  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r(  r-  r0  r4  r8  sub_commands__static_attributes__r8   r9   r(   rl   rl      s    ;K8Lt 9O,YKq9
 	
 	v& ),LEZr
n1(//b,#)I
	C!%FM)0d= 
/
/
2 
 	K(	K(	"	./Lr9   rl   )0__doc__r!   r,   rf   r7   r$   distutils._logr   siter   r   jaraco.collectionsr   corer   r   r   errorsr	   r
   	file_utilr   r   utilr   r   r   r   r   r   rR   r   WINDOWS_SCHEMEr.   rA   schemesr]   r)   r1   r:   rF   rB   r?   r>   r=   rC   rS   rl   r8   r9   r(   <module>rP     s`  /   	 
   %    A " ' F F % *)+ W+3 7?F ))/ *)/#3 F O"OI  3#%OL!   rzz " C
 <
T!B
6w	g w	r9   