
    ϶vg::                    p   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlmZ d dlmZmZmZ d dlZd dlmZ d dlmZ erd dlZn<e
j                            d          rd dlmc mc mc mZ ne
j        ej                 Ze Z!erd dl"m#Z# g d	Z$d$d
Z%ej&        d$d            Z'ej&        d             Z(ej&        d             Z)ej&        d             Z* G d de+          Z, G d d          Z-ej&        d             Z.d Z/ej&        d             Z0ej&        d             Z1h dZ2d Z3d Z4d Z5 G d d          Z6 e7ed          r	ej8        gZ9ng Z9 G d de6          Z: ej;        ej<        d  d!=                                D                       Z> G d" d#e          Z?dS )%    )annotationsN)TracebackType)TYPE_CHECKINGAnyClassVar)working_set)DistutilsErrorjava)Self)AbstractSandboxDirectorySandboxSandboxViolation	run_setupc                    d}t          | |          5 }|                                }ddd           n# 1 swxY w Y   ||}t          || d          }t          |||           dS )z.
    Python 3 implementation of execfile.
    rbNexec)openreadcompiler   )filenameglobalslocalsmodestreamscriptcodes          O/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/setuptools/sandbox.py	_execfiler   *   s     D	h		               ~68V,,Dws   488c              #     K   t           j        d d          }| | t           j        d d <   	 |V  |t           j        d d <   d S # |t           j        d d <   w xY wN)sysargv)replsaveds     r   	save_argvr%   7   sf      HQQQKEes   A Ac               #     K   t           j        d d          } 	 | V  | t           j        d d <   d S # | t           j        d d <   w xY wr    )r!   pathr$   s    r   	save_pathr)   B   sQ      HQQQKEes	   / Ac              #     K   t          j        | d           t          j        }| t          _        	 dV  |t          _        dS # |t          _        w xY w)zL
    Monkey-patch tempfile.tempdir with replacement, ensuring it exists
    T)exist_okN)osmakedirstempfiletempdir)replacementr$   s     r   override_tempr1   K   s]      
 Kd++++E"H! 5    s   A Ac              #     K   t          j                    }t          j        |            	 |V  t          j        |           d S # t          j        |           w xY wr    )r,   getcwdchdir)targetr$   s     r   pushdr6   \   sR      IKKEHV
s   A Ac                  (    e Zd ZdZed             ZdS )UnpickleableExceptionzP
    An exception representing another Exception that could not be pickled.
    c           	         	 t          j        |           t          j        |          fS # t          $ r5 ddlm} |                    | |t          |                              cY S w xY w)z
        Always return a dumped (pickled) type and exc. If exc can't be pickled,
        wrap it in UnpickleableException first.
        r   )r8   )pickledumps	Exceptionsetuptools.sandboxr8   dumprepr)typeexcclss      r   r>   zUnpickleableException.dumpk   s{    	1<%%v|C'8'888 	1 	1 	1GGGGGG88CT#YY00000		1s   '* <A)(A)N)__name__
__module____qualname____doc__staticmethodr>        r   r8   r8   f   s9          1 1 \1 1 1rI   r8   c                  (    e Zd ZdZddZddZd ZdS )ExceptionSaverz]
    A Context Manager that will save an exception, serialize, and restore it
    later.
    returnr   c                    | S r    rH   selfs    r   	__enter__zExceptionSaver.__enter__   s    rI   r@   type[BaseException] | NonerA   BaseException | NonetbTracebackType | Noneboolc                \    |sdS t                               ||          | _        || _        dS )NFT)r8   r>   _saved_tb)rO   r@   rA   rS   s       r   __exit__zExceptionSaver.__exit__   s8      	5 ,00s;; trI   c                    dt          |           vrdS t          t          j        | j                  \  }}|                    | j                  )z"restore and re-raise any exceptionrW   N)varsmapr:   loadsrW   with_tracebackrX   )rO   _typerA   s      r   resumezExceptionSaver.resume   sG     4::%%Ft{33
s  ***rI   N)rL   r   )r@   rQ   rA   rR   rS   rT   rL   rU   )rC   rD   rE   rF   rP   rY   r`   rH   rI   r   rK   rK   z   sU         
       + + + + +rI   rK   c               #  P  K   t           j                                        t                      5 } V  ddd           n# 1 swxY w Y   t           j                                       fdt           j        D             }t          |           |                                  dS )z
    Context in which imported modules are saved.

    Translates exceptions internal to the context into the equivalent exception
    outside the context.
    Nc              3  N   K   | ]}|v|                     d           |V   dS )z
encodings.N
startswith).0mod_namer$   s     r   	<genexpr>zsave_modules.<locals>.<genexpr>   sP        5  ##L11 ! 	     rI   )r!   modulescopyrK   update_clear_modulesr`   )	saved_excdel_modulesr$   s     @r   save_modulesrn      s       KE			 Y               Ku     K ;s   AAAc                D    t          |           D ]}t          j        |= d S r    )listr!   rh   )module_namesrf   s     r   rk   rk      s0    && " "K!!" "rI   c               #     K   t          j                    } 	 | V  t          j        |            d S # t          j        |            w xY wr    )pkg_resources__getstate____setstate__r(   s    r   save_pkg_resources_staterv      sP      &((E*"5)))))"5))))s	   1 Ac              #  Z  K   t           j                            | d          }t                      5  t	                      5  t                      5  t                       t                      5  t          |          5  t          |           5  t          d           d V  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Ntemp
setuptools)r,   r'   joinrv   rn   r)   hide_setuptoolsr%   r1   r6   
__import__)	setup_dirtemp_dirs     r   setup_contextr      s     w||Iv..H	!	#	# 	" 	"^^ 	" 	" " "!!![[ " "&x00 " ""9-- " "&|444!EEE" " " " " " " " " " " " " " "" " " " " " " " " " " " " " "" " " " " " " " " " " " " " "" " " " " " " " " " " " " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   D  DC1,C	<CB, C,B00C3B04C7C	CC	
CC	C1CC1!C"C1%D1C55D8C59D<D D	D D	D  D$'D$>   Cython	distutilsry   rs   _distutils_hackc                L    |                      dd          d         }|t          v S )aH  
    >>> _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)rf   base_modules     r   _needs_hidingr      s(    " ..a((+K***rI   c                     t           j                            dd          } | |                                  t	          t
          t           j                  }t          |           dS )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!   rh   get_remove_shimfilterr   rk   )r   rh   s     r   r{   r{      sW     koo&7>>O"$$&&&]CK00G7rI   c                   t           j                            t           j                            |                     }t	          |          5  	 | gt          |          z   t          j        dd<   t          j                            d|           t          j
                     t          j                            d            t          |          5  t          | d          }t          | |           ddd           n# 1 swxY w Y   n,# t           $ r}|j        r|j        d         r Y d}~nd}~ww xY wddd           dS # 1 swxY w Y   dS )z8Run a distutils setup script, sandboxed in its directoryNr   c                *    |                                  S r    )activate)dists    r   <lambda>zrun_setup.<locals>.<lambda>
  s    dmmoo rI   __main__)__file__rC   )r,   r'   abspathdirnamer   rp   r!   r"   insertr   __init__	callbacksappendr   dictr   
SystemExitargs)setup_scriptr   r}   nsvs        r   r   r     s    = =>>I	y	!	!  	'.4::5CHQQQKHOOAy))) """!(()E)EFFF!),, , ,<*EEE,+++, , , , , , , , , , , , , , ,  	 	 	v !&) 	                 sa   EBD"D 4D D	DD	DE
D5D0+E0D55EE	E	c                     e Zd ZdZdZd"dZd Zd"dZd#dZd Z	d$dZ
dD ]$Z eee          r e
e           e            e<   %d%d$dZ ede          ZdD ]$Z eee          r ee           e            e<   %d$dZdD ]$Z eee          r ee           e            e<   %d$dZdD ]$Z eee          r ee           e            e<   %d Zd Zd Zd Zerd&d!ZdS dS )'r   zDWrap 'os' module and 'open()' builtin for virtualizing setup scriptsFrL   Nonec                R      fdt          t                    D              _        d S )Nc                ^    g | ])}|                     d           t          |          '|*S )_)rd   hasattr)re   namerO   s     r   
<listcomp>z,AbstractSandbox.__init__.<locals>.<listcomp>  sO     
 
 
??3''
 -4D$,?,?

 
 
rI   )dir_os_attrsrN   s   `r   r   zAbstractSandbox.__init__  s7    
 
 
 
C
 
 
rI   c           	     b    | j         D ]&}t          t          |t          ||                     'd S r    )r   setattrr,   getattr)rO   sourcer   s      r   _copyzAbstractSandbox._copy!  s<    K 	5 	5DBgfd334444	5 	5rI   c                `    |                      |            | j        t          _        d| _        d S )NT)r   _openbuiltinsr   _activerN   s    r   rP   zAbstractSandbox.__enter__%  s(    

4
rI   exc_typerQ   	exc_valuerR   	tracebackrT   c                j    d| _         t          t          _        |                     t
                     d S NF)r   r   r   r   r   r   )rO   r   r   r   s       r   rY   zAbstractSandbox.__exit__*  s%     

3rI   c                N    | 5   |            cddd           S # 1 swxY w Y   dS )zRun 'func' under os sandboxingNrH   )rO   funcs     r   runzAbstractSandbox.run4  su     	 	466	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   
r   strc                @     t          t                      fd}|S )Nc                X    | j         r | j        ||g|R i |\  }} ||g|R i |S r    )r   _remap_pair)rO   srcdstr   kwr   originals        r   wrapz3AbstractSandbox._mk_dual_path_wrapper.<locals>.wrap<  sZ    | I+4+D#sHTHHHRHHS8C2t222r222rI   r   r   r   r   r   s   ` @r   _mk_dual_path_wrapperz%AbstractSandbox._mk_dual_path_wrapper9  s8    3%%	3 	3 	3 	3 	3 	3
 rI   )renamelinksymlinkNc                D     pt          t                      fd}|S )Nc                N    | j         r | j        |g|R i |} |g|R i |S r    )r   _remap_inputrO   r'   r   r   r   r   s       r   r   z5AbstractSandbox._mk_single_path_wrapper.<locals>.wrapJ  sR    | B(t(tAdAAAbAA8D.4...2...rI   r   )r   r   r   s   `` r   _mk_single_path_wrapperz'AbstractSandbox._mk_single_path_wrapperG  s=    1wsD11	/ 	/ 	/ 	/ 	/ 	/
 rI   r   )statlistdirr4   r   chmodchownmkdirremoveunlinkrmdirutimelchownchrootlstat	startfilemkfifomknodpathconfaccessc                @     t          t                      fd}|S )Nc                    | j         r2 | j        |g|R i |}|                      |g|R i |          S  |g|R i |S r    )r   r   _remap_outputr   s       r   r   z4AbstractSandbox._mk_single_with_return.<locals>.wrapm  s    | M(t(tAdAAAbAA))$0K0K0K0K0K0KLLL8D.4...2...rI   r   r   s   ` @r   _mk_single_with_returnz&AbstractSandbox._mk_single_with_returnj  s8    3%%	/ 	/ 	/ 	/ 	/ 	/ rI   )readlinktempnamc                @     t          t                      fd}|S )Nc                R     |i |}| j         r|                     |          S |S r    )r   r   )rO   r   r   retvalr   r   s       r   r   z'AbstractSandbox._mk_query.<locals>.wrap|  s<    Xt*r**F| 8))$777MrI   r   r   s   ` @r   	_mk_queryzAbstractSandbox._mk_queryy  s8    3%%	 	 	 	 	 	 rI   )r3   tmpnamc                    |S )z=Called to remap or validate any path, whether input or outputrH   )rO   r'   s     r   _validate_pathzAbstractSandbox._validate_path  s    rI   c                ,    |                      |          S zCalled for path inputsr   rO   	operationr'   r   r   s        r   r   zAbstractSandbox._remap_input      ""4(((rI   c                ,    |                      |          S )zCalled for path outputsr   )rO   r   r'   s      r   r   zAbstractSandbox._remap_output  r   rI   c                V     | j         |dz   |g|R i | | j         |dz   |g|R i |fS )?Called for path pairs like rename, link, and symlink operationsz-fromz-to)r   rO   r   r   r   r   r   s         r   r   zAbstractSandbox._remap_pair  s\     Di'13DDDDDDDi%/BtBBBrBB
 	
rI   r   c                    d S r    rH   )rO   r   s     r   __getattribute__z AbstractSandbox.__getattribute__  s      rI   rL   r   )r   rQ   r   rR   r   rT   )r   r   r    )r   r   rL   r   )rC   rD   rE   rF   r   r   r   rP   rY   r   r   _AbstractSandbox__namer   r   r   r   r   r   r   r   r   r   r   r   r   rH   rI   r   r   r     sA       NNG
 
 
 
5 5 5   
     
    0 = =73 	=44V<<FFHHV     $#FE22E ? ?* 73 	?66v>>FFHHV	 	 	 	 * > >73 	>55f==FFHHV	 	 	 	 ' 1 173 	1(y00FFHHV  ) ) )) ) )
 
 
  : 	:99999: :rI   r   devnullc                      e Zd ZU dZe                    g d          Zded<   g Zded<   	 e	fdd	Z
d
 ZddZddZd Zd Zd Zd ZdddZdS )r   z<Restrict operations to a single subdirectory - pseudo-chroot)r   r   r   r   r   r   r   r   r   r   r   r   r   zClassVar[dict[str, None]]	write_opszlist[str | re.Pattern]_exception_patternsrL   r   c                2   t           j                            t           j                            |                    | _        t           j                            | j        d          | _        d |D             | _        t          	                    |            d S )N c                    g | ]>}t           j                            t           j                            |                    ?S rH   )r,   r'   normcaserealpath)re   r'   s     r   r   z-DirectorySandbox.__init__.<locals>.<listcomp>  sE     
 
 
9=BGRW--d3344
 
 
rI   )
r,   r'   r  r  _sandboxrz   _prefix_exceptionsr   r   )rO   sandbox
exceptionss      r   r   zDirectorySandbox.__init__  s    (()9)9')B)BCCw||DM266
 
AK
 
 
 	  &&&&&rI   c                (    ddl m}  ||||          )Nr   )r   )r=   r   )rO   r   r   r   r   s        r   
_violationzDirectorySandbox._violation  s)    777777y$333rI   rc                |    |dvr(|                      |          s | j        d||g|R i | t          ||g|R i |S )N)r  rtr   rUUr   )_okr  r   )rO   r'   r   r   r   s        r   r   zDirectorySandbox._open  sc    333DHHTNN3DOFD$<<<<<<<T4-$---"---rI   c                0    |                      d           d S )Nr   )r  rN   s    r   r   zDirectorySandbox.tmpnam  s    !!!!!rI   c                4   | j         }	 d| _         t          j                            t          j                            |                    }|                     |          p$|| j        k    p|                    | j                  	 || _         S # || _         w xY wr   )	r   r,   r'   r  r  	_exemptedr  rd   r  )rO   r'   activer  s       r   r  zDirectorySandbox._ok  s    		" DLw''(8(8(>(>??Hx(( 5t},5&&t|44 "DLL6DL!!!!s   A<B 	Bc                    fd| j         D             }fd| j        D             }t          j        ||          }t	          |          S )Nc              3  B   K   | ]}                     |          V  d S r    rc   )re   	exceptionfilepaths     r   rg   z-DirectorySandbox._exempted.<locals>.<genexpr>  sB       
 
/8H	**
 
 
 
 
 
rI   c              3  B   K   | ]}t          j        |          V  d S r    )rematch)re   patternr  s     r   rg   z-DirectorySandbox._exempted.<locals>.<genexpr>  s@       
 
,3BHWh''
 
 
 
 
 
rI   )r  r   	itertoolschainany)rO   r  start_matchespattern_matches
candidatess    `   r   r  zDirectorySandbox._exempted  sx    
 
 
 
<@<L
 
 

 
 
 
7;7O
 
 
 _]ODD
:rI   c                    || j         v rD|                     |          s/ | j        |t          j                            |          g|R i | |S r   )r   r  r  r,   r'   r  r   s        r   r   zDirectorySandbox._remap_input  sW    &&txx~~&DOIrw'7'7'='=KKKKKKKrI   c                    |                      |          r|                      |          s | j        |||g|R i | ||fS )r   )r  r  r   s         r   r   zDirectorySandbox._remap_pair  sU    xx}} 	>DHHSMM 	>DOIsC=$==="===SzrI     r   intc                    |t           z  r)|                     |          s | j        d|||g|R i | t          j        |||g|R i |S )zCalled for low-level os.open()zos.open)WRITE_FLAGSr  r  r   r   )rO   fileflagsr   r   r   s         r   r   zDirectorySandbox.open  sn    ; 	Gtxx~~ 	GDOItUDF4FFF2FFFxeT7D777B777rI   Nr   )r  )r'  )r   r(  rL   r(  )rC   rD   rE   rF   r   fromkeysr   __annotations__r   _EXCEPTIONSr   r  r   r   r  r  r   r   r   rH   rI   r   r   r     s        FF+/== : : : , ,I      3544444+6 ' ' ' ' '4 4 4
. . . .
" " " "" " "      8 8 8 8 8 8 8rI   r   c                :    g | ]}t          t          |d           S )r   r   )re   as     r   r   r     s4        	Q  rI   z4O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC O_TEMPORARYc                  ^    e Zd ZdZ ej        d                                          ZddZdS )r   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.
        rL   r   c                T    | j         \  }}} | j        j        di t                      S )NrH   )r   tmplformatr   )rO   cmdr   kwargss       r   __str__zSandboxViolation.__str__  s/     IT6ty++&((+++rI   N)rL   r   )	rC   rD   rE   rF   textwrapdedentlstripr4  r8  rH   rI   r   r   r     sT        OO8?
	  fhh 	, , , , , ,rI   r   r    )@
__future__r   r   
contextlib	functoolsr  operatorr,   r:   r  r!   r.   r9  typesr   typingr   r   r   rs   r   distutils.errorsr	   r   platformrd   $org.python.modules.posix.PosixModulepythonrh   posixPosixModuler   r   r   typing_extensionsr   __all__r   contextmanagerr%   r)   r1   r6   r<   r8   rK   rn   rk   rv   r   r   r   r{   r   r   r   r   r/  r   reduceor_r   r*  r   rH   rI   r   <module>rM     s   " " " " " "               				  				 



         / / / / / / / / / /     % % % % % % + + + + + + \V$$ 6666666666666666
+bg
C  '&&&&&&  
  
  
  
         ! ! !    1 1 1 1 1I 1 1 1( +  +  +  +  +  +  +  +F   2" " "
 * * * " " "   + + +*    (I: I: I: I: I: I: I: I:X 72y :,KKKR8 R8 R8 R8 R8 R8 R8 R8j iL GMMOO   , , , , ,~ , , , , ,rI   