
    ǆi9                       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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  \R"                  R%                  S5      (       a  S SKJs  Js  Js  Jr  O\R*                  \R2                     r \r\r/ SQrS S jr \	RB                  S S j5       r"\	RB                  S	 5       r#\	RB                  S
 5       r$\	RB                  S 5       r% " S S\&5      r' " S S5      r(\	RB                  S 5       r)S r*\	RB                  S 5       r+\	RB                  S 5       r,1 Skr-S r.S r/S r0 " S S5      r1\2" \S5      (       a  \Rf                  /r4O/ r4 " S S\15      r5\Rl                  " \Rn                  SRq                  5        V s/ s H  n \9" \U S 5      PM     sn 5      r: " S S\5      r;g! \ a    Sr GN>f = fs  sn f )!    )annotationsN)DistutilsError)working_setjava)AbstractSandboxDirectorySandboxSandboxViolation	run_setupc                    Sn[        X5       nUR                  5       nSSS5        Uc  Un[        WU S5      n[        XaU5        g! , (       d  f       N-= f)z&
Python 3 implementation of execfile.
rbNexec)openreadcompiler   )filenameglobalslocalsmodestreamscriptcodes          b/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/setuptools/sandbox.py	_execfiler   &   sN     D	h	 
~68V,D 
	s   A
Ac              #     #    [         R                  S S  nU b  U [         R                  S S &  Uv   U[         R                  S S & g ! U[         R                  S S & f = f7fN)sysargv)replsaveds     r   	save_argvr    3   sI     HHQKEes   *AA AAAc               #     #    [         R                  S S  n  U v   U [         R                  S S & g ! U [         R                  S S & f = f7fr   )r   pathr   s    r   	save_pathr$   >   s6     HHQKEes   A/ AAAc              #     #    [         R                  " U SS9  [        R                  nU [        l         Sv   U[        l        g! U[        l        f = f7f)zD
Monkey-patch tempfile.tempdir with replacement, ensuring it exists
T)exist_okN)osmakedirstempfiletempdir)replacementr   s     r   override_tempr,   G   s@     
 KKd+E"H! 5s   1AA AAAc              #     #    [         R                  " 5       n[         R                  " U 5         Uv   [         R                  " U5        g ! [         R                  " U5        f = f7fr   )r'   getcwdchdir)targetr   s     r   pushdr1   X   s<     IIKEHHV
s   ,A%A
 A%
A""A%c                  (    \ rS rSrSr\S 5       rSrg)UnpickleableExceptionb   zH
An exception representing another Exception that could not be pickled.
c           	          [         R                  " U 5      [         R                  " U5      4$ ! [         a)    SSKJn  UR                  X"" [        U5      5      5      s $ f = f)zq
Always return a dumped (pickled) type and exc. If exc can't be pickled,
wrap it in UnpickleableException first.
r   )r3   )pickledumps	Exceptionsetuptools.sandboxr3   dumprepr)typeexcclss      r   r:   UnpickleableException.dumpg   sO    	1<<%v||C'888 	1G88CT#Y00		1s   +. 0A! A! N)__name__
__module____qualname____firstlineno____doc__staticmethodr:   __static_attributes__r@       r   r3   r3   b   s     1 1rH   r3   c                  *    \ rS rSrSrS rS rS rSrg)ExceptionSaverv   zQ
A Context Manager that will save an exception, serialize, and restore it
later.
c                    U $ r   r@   selfs    r   	__enter__ExceptionSaver.__enter__|   s    rH   c                T    U(       d  g[         R                  X5      U l        X0l        g)NFT)r3   r:   _saved_tb)rN   r<   r=   tbs       r   __exit__ExceptionSaver.__exit__   s&     ,00; rH   c                    S[        U 5      ;  a  g[        [        R                  U R                  5      u  pUR                  U R                  5      e)z"restore and re-raise any exceptionrR   N)varsmapr6   loadsrR   with_tracebackrS   )rN   r<   r=   s      r   resumeExceptionSaver.resume   s>     4:%dkk2	  **rH   )rR   rS   N)	rA   rB   rC   rD   rE   rO   rU   r\   rG   r@   rH   r   rJ   rJ   v   s    
	+rH   rJ   c               #  B  ^#    [         R                  R                  5       m[        5        n Tv   SSS5        [         R                  R	                  T5        U4S j[         R                   5       n[        U5        W R                  5         g! , (       d  f       Nc= f7f)z
Context in which imported modules are saved.

Translates exceptions internal to the context into the equivalent exception
outside the context.
Nc              3  h   >#    U  H'  nUT;  d  M  UR                  S 5      (       a  M#  Uv   M)     g7f)z
encodings.N
startswith).0mod_namer   s     r   	<genexpr>save_modules.<locals>.<genexpr>   s7      #H5  	 ##L1	 	#s   
22	2)r   modulescopyrJ   update_clear_modulesr\   )	saved_excdel_modulesr   s     @r   save_modulesrl      sq      KKE		Y 
 KKuK ; 
	s   )BBAB
BBc                J    [        U 5       H  n[        R                  U	 M     g r   )listr   rf   )module_namesrc   s     r   ri   ri      s    &KK! 'rH   c               #     #    [         R                  " 5       n  U v   [         R                  " U 5        g ! [         R                  " U 5        f = f7fr   )pkg_resources__getstate____setstate__r#   s    r   save_pkg_resources_statert      s9     &&(E*""5)""5)s   A4 AAAc              #  2  #    [         R                  R                  U S5      n[        5          [	        5          [        5          [        5         [        5          [        U5         [        U 5         [        S5        S v   S S S 5        S S S 5        S S S 5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N7= f! , (       d  f       N@= f! , (       d  f       NI= f! , (       d  f       NR= f! , (       d  f       N[= f! , (       d  f       g = f7f)Ntemp
setuptools)r'   r"   joinrt   rl   r$   hide_setuptoolsr    r,   r1   
__import__)	setup_dirtemp_dirs     r   setup_contextr}      s     ww||Iv.H	!	#^![&x0"9-&|4! . 1 !   
$	# .- 10 ![  ^ 
$	#s   +DDC5C$C	$C0B1 CC	C$C5 D(	D1
B?;C
CC	
C!C$$
C2.C55
D	?D
DD>   Cython	distutilsrw   rq   _distutils_hackc                >    U R                  SS5      S   nU[        ;   $ )a  
>>> _needs_hiding('setuptools')
True
>>> _needs_hiding('pkg_resources')
True
>>> _needs_hiding('setuptools_plugin')
False
>>> _needs_hiding('setuptools.__init__')
True
>>> _needs_hiding('distutils')
True
>>> _needs_hiding('os')
False
>>> _needs_hiding('Cython')
True
.   r   )split_MODULES_TO_HIDE)rc   base_modules     r   _needs_hidingr      s%    " ..a(+K***rH   c                     [         R                  R                  SS5      n U b  U R                  5         [	        [
        [         R                  5      n[        U5        g)a  
Remove references to setuptools' modules from sys.modules to allow the
invocation to import the most appropriate setuptools. This technique is
necessary to avoid issues such as #315 where setuptools upgrading itself
would fail to find a function declared in the metadata.
r   N)r   rf   get_remove_shimfilterr   ri   )r   rf   s     r   ry   ry      sC     kkoo&7>O"$$&]CKK0G7rH   c                   [         R                  R                  [         R                  R                  U 5      5      n[	        U5          U /[        U5      -   [        R                  SS& [        R                  R                  SU5        [        R                  " 5         [        R                  R                  S 5        [        U5         [        U SS9n[        X5        SSS5        SSS5        g! , (       d  f       N= f! [          a0  nUR"                  (       a  UR"                  S   (       a  e  SnANOSnAff = f! , (       d  f       g= f)z8Run a distutils setup script, sandboxed in its directoryNr   c                "    U R                  5       $ r   )activate)dists    r   <lambda>run_setup.<locals>.<lambda>  s
    dmmorH   __main__)__file__rA   )r'   r"   abspathdirnamer}   rn   r   r   insertr   __init__	callbacksappendr   dictr   
SystemExitargs)setup_scriptr   r{   nsvs        r   r
   r
      s     =>I	y	!	'.4:5CHHQKHHOOAy)  "!!(()EF!),<*E,+ - 
"	! -,  	vv!&&)	 
"	!sU   D?
B D
C1 D1
C?	;D>D??D
D<&D72D?7D<<D??
Ec                     \ rS rSrSrSrS rS rS rS r	S r
SS	 jrS
 H#  r\" \\5      (       d  M  \" \5      \" 5       \'   M%     SSS jjr\(       a	  \" S\5      r\" S\5      rS H#  r\" \\5      (       d  M  \" \5      \" 5       \'   M%     SS jrS H#  r\" \\5      (       d  M  \" \5      \" 5       \'   M%     SS jrS H#  r\" \\5      (       d  M  \" \5      \" 5       \'   M%     S rS rS rS rSrg)r   i  zDWrap 'os' module and 'open()' builtin for virtualizing setup scriptsFc                    [        [        5       Vs/ s H/  nUR                  S5      (       a  M  [        X5      (       d  M-  UPM1     snU l        g s  snf )N_)dir_osra   hasattr_attrs)rN   names     r   r   AbstractSandbox.__init__  sE     C
 ??3' ,3D,?  
 
s   AAAc           	     ^    U R                    H  n[        [        U[        X5      5        M     g r   )r   setattrr'   getattr)rN   sourcer   s      r   _copyAbstractSandbox._copy  s!    KKDBgf34  rH   c                    U R                  U 5        [        (       a  U R                  [        l        U R                  [        l        SU l        g )NT)r   _filebuiltinsfile_openr   _activerM   s    r   rO   AbstractSandbox.__enter__  s0    

45 JJHM

rH   c                    SU l         [        (       a  [        [        l        [        [        l        U R                  [        5        g NF)r   r   r   r   r   r   r   r   )rN   exc_type	exc_value	tracebacks       r   rU   AbstractSandbox.__exit__#  s'    5!HM

3rH   c                J    U    U" 5       sSSS5        $ ! , (       d  f       g= f)zRun 'func' under os sandboxingNr@   )rN   funcs     r   runAbstractSandbox.run*  s    6 TTs   
"c                8   ^ ^ [        [        T 5      mU U4S jnU$ )Nc                p   > U R                   (       a  U R                  " TX/UQ70 UD6u  pT" X/UQ70 UD6$ r   )r   _remap_pair)rN   srcdstr   kwr   originals        r   wrap3AbstractSandbox._mk_dual_path_wrapper.<locals>.wrap2  s=    ||++D#HTHRHC2t2r22rH   r   r   r   r   r   s   ` @r   _mk_dual_path_wrapper%AbstractSandbox._mk_dual_path_wrapper/  s    3%	3
 rH   )renamelinksymlinkNc                J   ^ ^ T=(       d    [        [        T 5      mU U4S jnU$ )Nc                l   > U R                   (       a  U R                  " TU/UQ70 UD6nT" U/UQ70 UD6$ r   )r   _remap_inputrN   r"   r   r   r   r   s       r   r   5AbstractSandbox._mk_single_path_wrapper.<locals>.wrap@  s;    ||((tAdAbAD.4.2..rH   r   )r   r   r   s   `` r   _mk_single_path_wrapper'AbstractSandbox._mk_single_path_wrapper=  s     1wsD1	/
 rH   r   r   )statlistdirr/   r   chmodchownmkdirremoveunlinkrmdirutimelchownchrootlstat	startfilemkfifomknodpathconfaccessc                8   ^ ^ [        [        T 5      mU U4S jnU$ )Nc                   > U R                   (       a3  U R                  " TU/UQ70 UD6nU R                  TT" U/UQ70 UD65      $ T" U/UQ70 UD6$ r   )r   r   _remap_outputr   s       r   r   4AbstractSandbox._mk_single_with_return.<locals>.wrape  s]    ||((tAdAbA))$0K0K0KLLD.4.2..rH   r   r   s   ` @r   _mk_single_with_return&AbstractSandbox._mk_single_with_returnb  s    3%	/ rH   )readlinktempnamc                8   ^ ^ [        [        T 5      mU U4S jnU$ )Nc                ^   > T" U0 UD6nU R                   (       a  U R                  TU5      $ U$ r   )r   r   )rN   r   r   retvalr   r   s       r   r   'AbstractSandbox._mk_query.<locals>.wrapt  s1    t*r*F||))$77MrH   r   r   s   ` @r   	_mk_queryAbstractSandbox._mk_queryq  s    3%	 rH   )r.   tmpnamc                    U$ )z=Called to remap or validate any path, whether input or outputr@   )rN   r"   s     r   _validate_pathAbstractSandbox._validate_path  s    rH   c                $    U R                  U5      $ zCalled for path inputsr   rN   	operationr"   r   r   s        r   r   AbstractSandbox._remap_input      ""4((rH   c                $    U R                  U5      $ )zCalled for path outputsr   )rN   r   r"   s      r   r   AbstractSandbox._remap_output  r   rH   c                j    U R                   " US-   U/UQ70 UD6U R                   " US-   U/UQ70 UD64$ )?Called for path pairs like rename, link, and symlink operationsz-fromz-to)r   rN   r   r   r   r   r   s         r   r   AbstractSandbox._remap_pair  sL     i'13DDDi%/BtBrB
 	
rH   )r   r   )r   strr   )rA   rB   rC   rD   rE   r   r   r   rO   rU   r   r   _AbstractSandbox__namer   r   r   r   r   r   r   r   r   r   r   r   rG   r@   rH   r   r   r     s   NG
5
 034V<FHV 0 '6#FE2E* 36v>FHV-0	 *35f=FHV *	 '3(0FHV '))
rH   r   devnullc                      \ rS rSr% Sr\R                  / SQ5      r/ rS\	S'    \
4S jrS r\(       a  SS jrSS	 jrS
 rS rS rS rS rSS jrSrg)r   i  z<Restrict operations to a single subdirectory - pseudo-chroot)r   r   r   r   r   r   r   r   r   r   r   r   r   zlist[str | re.Pattern]_exception_patternsc                   [         R                  R                  [         R                  R                  U5      5      U l        [         R                  R                  U R                  S5      U l        U Vs/ s H?  n[         R                  R                  [         R                  R                  U5      5      PMA     snU l        [        R                  U 5        g s  snf )N )
r'   r"   normcaserealpath_sandboxrx   _prefix_exceptionsr   r   )rN   sandbox
exceptionsr"   s       r   r   DirectorySandbox.__init__  s    (()9)9')BCww||DMM26AK
AKBGGRWW--d34
 	  &
s   5ACc                     SSK Jn  U" XU5      e)Nr   )r	   )r9   r	   )rN   r   r   r   r	   s        r   
_violationDirectorySandbox._violation  s    7y33rH   c                    US;  a-  U R                  U5      (       d  U R                  " SX/UQ70 UD6  [        X/UQ70 UD6$ )Nrrtr   rUUr   )_okr  r   rN   r"   r   r   r   s        r   r   DirectorySandbox._file  sD    77@T@R@1d1b11rH   c                    US;  a-  U R                  U5      (       d  U R                  " SX/UQ70 UD6  [        X/UQ70 UD6$ )Nr  r   )r  r  r   r   s        r   r   DirectorySandbox._open  sD    33DHHTNNOOFD<<<T-$-"--rH   c                &    U R                  S5        g )Nr   )r  rM   s    r   r   DirectorySandbox.tmpnam  s    !rH   c                V   U R                   n SU l         [        R                  R                  [        R                  R	                  U5      5      nU R                  U5      =(       d0    X0R                  :H  =(       d    UR                  U R                  5       X l         $ ! X l         f = fr   )	r   r'   r"   r  r  	_exemptedr  ra   r  )rN   r"   activer  s       r   r  DirectorySandbox._ok  s~    		" DLww''(8(8(>?Hx( 5}},5&&t||4 "L6Ls   B
B   B(c                   ^ U4S jU R                    5       nU4S jU R                   5       n[        R                  " X#5      n[	        U5      $ )Nc              3  F   >#    U  H  nTR                  U5      v   M     g 7fr   r`   )rb   	exceptionfilepaths     r   rd   -DirectorySandbox._exempted.<locals>.<genexpr>  s#      
<LyH	**<Ls   !c              3  R   >#    U  H  n[         R                  " UT5      v   M     g 7fr   )rematch)rb   patternr-  s     r   rd   r.    s#      
7OGBHHWh''7Os   $')r  r  	itertoolschainany)rN   r-  start_matchespattern_matches
candidatess    `   r   r'  DirectorySandbox._exempted  sG    
<@<L<L

7;7O7O
 __]D
:rH   c                    XR                   ;   aJ  U R                  U5      (       d4  U R                  " U[        R                  R                  U5      /UQ70 UD6  U$ r   )	write_opsr  r  r'   r"   r  r   s        r   r   DirectorySandbox._remap_input  sD    &txx~~OOIrww'7'7'=KKKrH   c                    U R                  U5      (       a  U R                  U5      (       d  U R                  " XU/UQ70 UD6  X#4$ )r  )r  r  r  s         r   r   DirectorySandbox._remap_pair  s;    xx}}DHHSMMOOIC=$="=zrH   c                    U[         -  (       a.  U R                  U5      (       d  U R                  " SXU/UQ70 UD6  [        R                  " XU/UQ70 UD6$ )zCalled for low-level os.open()zos.open)WRITE_FLAGSr  r  r   r   )rN   r   flagsr   r   r   s         r   r   DirectorySandbox.open  sK    ;txx~~OOItDF4F2FxxT7D7B77rH   )r   r  r  r  N)r  )  )rA   rB   rC   rD   rE   r   fromkeysr;  r  __annotations___EXCEPTIONSr   r  r   r   r   r  r'  r   r   r   rG   r@   rH   r   r   r     sc    F  I  35/44+6 '4
 	2
.
""8rH   r   z4O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC O_TEMPORARYc                  ^    \ rS rSrSr\R                  " S5      R                  5       rS r	Sr
g)r	   rC  zEA setup script attempted to modify the filesystem outside the sandboxa  
        SandboxViolation: {cmd}{args!r} {kwargs}

        The package setup script has attempted to modify files on your system
        that are not within the EasyInstall build area, and has been aborted.

        This package cannot be safely installed by EasyInstall, and may not
        support alternate installation locations even if you run its setup
        script by hand.  Please inform the package's author and the EasyInstall
        maintainers to find out if a fix or workaround is available.
        c                h    U R                   u  pnU R                  R                  " S0 [        5       D6$ )Nr@   )r   tmplformatr   )rN   cmdr   kwargss       r   __str__SandboxViolation.__str__  s*     II6yy+&(++rH   r@   N)rA   rB   rC   rD   rE   textwrapdedentlstriprI  rM  rG   r@   rH   r   r	   r	     s)    O??
	 fh 	,rH   r	   r   )<
__future__r   r'   r   r)   operator	functoolsr3  r0  
contextlibr6   rO  r   rq   distutils.errorsr   r   platformra   $org.python.modules.posix.PosixModulepythonrf   posixPosixModuler   r   r   r   	NameErrorr   r   __all__r   contextmanagerr    r$   r,   r1   r8   r3   rJ   rl   ri   rt   r}   r   r   ry   r
   r   r   r	  rF  r   reduceor_r   r   r@  r	   )as   0r   <module>rb     s   " 	 
     	      + %<<6""66
++bgg
CE 	
      ! !   1I 1(+ +<  2"
 * * " " +*(E
 E
P 2y::,KKY8 Y8x LL HMMOOA 	QO,~ ,M  E~s   G G
GG