
    .PhH                        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m	Z	 ddl
mZmZmZ ddlmZ ddlmZmZmZmZmZmZ  ej        e          Zd                                Z ej        d	          Zd
Zej        dk    sej        dk    rOej         dk    rDe!                    dd          d          Z"d  ee"          #                    d          D             Z$d Z%e%Z& G d de'          Z(dS )    )BytesION)ZipInfo   )	sysconfigdetect_encodingZipFile)finder)FileOperatorget_export_entryconvert_pathget_executableget_platformin_venva  
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 <assemblyIdentity version="1.0.0.0"
 processorArchitecture="X86"
 name="%s"
 type="win32"/>

 <!-- Identify the application security requirements. -->
 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
 <security>
 <requestedPrivileges>
 <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
 </requestedPrivileges>
 </security>
 </trustInfo>
</assembly>s   ^#!.*pythonw?[0-9.]*([ 	].*)?$z# -*- coding: utf-8 -*-
import re
import sys
from %(module)s import %(import_name)s
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(%(func)s())
ntjava.c                 \    i | ])}|j                             d           |j         |j        *S ).exe)nameendswithbytes).0rs     O/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/distlib/scripts.py
<dictcomp>r   @   sB       6??6""	       c                     d| v rj|                      d          r;|                     dd          \  }}d|v r|                     d          s|d|d} n|                      d          sd| z  } | S )N z/usr/bin/env r   "z "z"%s")
startswithsplit)
executableenv_executables      r   enquote_executabler&   G   s    
j
   11 	1)//Q77Ck!!+*@*@*E*E!*-##{{{;
((-- 1#j0
r   c                   2   e Zd ZdZeZdZddZd Ze	j
                            d          rd Zd	 Zd
 ZddZd ZeZd Zd ZdZd ZddZd Zed             Zej        d             Zej        dk    sej        dk    rej        dk    rd ZddZ ddZ!dS )ScriptMakerz_
    A class to copy or create scripts from source scripts or callable
    specifications.
    NTFc                    || _         || _        || _        d| _        d| _        t
          j        dk    pt
          j        dk    ot
          j        dk    | _        t          d          | _
        |pt          |          | _        t
          j        dk    pt
          j        dk    ot
          j        dk    | _        t          j        | _        d S )NFposixr   )r   X.Yr   )
source_dir
target_diradd_launchersforceclobberosr   _nameset_modesetvariantsr
   _fileop_is_ntsysversion_info)selfr,   r-   r.   dry_runfileops         r   __init__zScriptMaker.__init__d   s    $$*
G+[F1B1ZrxSZGZK((6g!6!6goQ"'V*;*PD@P,r   c                     |                     dd          r_| j        rXt          j                            |          \  }}|                    dd          }t          j                            ||          }|S )NguiFpythonpythonw)getr7   r1   pathr"   replacejoin)r:   r#   optionsdnfns        r   _get_alternate_executablez%ScriptMaker._get_alternate_executabler   sf    ;;ue$$ 	. 	.W]]:..FBHi00Bb"--Jr   r   c                     	 t          |          5 }|                    d          dk    cddd           S # 1 swxY w Y   dS # t          t          f$ r t                              d|           Y dS w xY w)zl
            Determine if the specified executable is a script
            (contains a #! line)
               z#!NzFailed to open %sF)openreadOSErrorIOErrorloggerwarning)r:   r#   fps      r   	_is_shellzScriptMaker._is_shell{   s    
*%% .771::-. . . . . . . . . . . . . . . . . .W%   2J???uus,   A 7A ;A ;A ,A43A4c                     |                      |          r*dd l}|j        j                            d          dk    r|S n)|                                                    d          r|S d|z  S )Nr   zos.nameLinuxz
jython.exez/usr/bin/env %s)rS   r   langSystemgetPropertylowerr   )r:   r#   r   s      r   _fix_jython_executablez"ScriptMaker._fix_jython_executable   s|    ~~j)) "9#//	::gEE%% F!!##,,\:: "!!$z11r   c                 &   t           j        dk    rd}nZt          t          dd          rd}nAt	          |          t	          |          z   dz   }t          j        dk    rd}nd}d	|vo||k    }|rd
|z   |z   dz   }nd}|d|z   |z   dz   z  }|dz  }|S )a  
        Build a shebang line. In the simple case (on Windows, or a shebang line
        which is not too long or contains spaces) use a simple formulation for
        the shebang. Otherwise, use /bin/sh as the executable, with a contrived
        shebang which allows the script to run either under Python or sh, using
        suitable quoting. Thanks to Harald Nordgren for his input.

        See also: http://www.in-ulm.de/~mascheck/various/shebang/#length
                  https://hg.mozilla.org/mozilla-central/file/tip/mach
        r*   Tcross_compilingF   darwini          s   #!   
s
   #!/bin/sh
s	   '''exec' s    "$0" "$@"
s   ' '''
)r1   r   getattrr8   lenplatform)r:   r#   post_interpsimple_shebangshebang_lengthmax_shebang_lengthresults          r   _build_shebangzScriptMaker._build_shebang   s     7g!NNS+U33 	c
 #NN !__s;/?/??!CN|x''%(""%("#:5aNN`<`N 	!Z'+5=FF#FlZ/+=OOFj Fr   r   c                    d}| j         r| j         }d}n,t          j                    st                      }n	t	                      rHt
          j                            t          j        d          dt          j	        d          z            }nt
          j
        dk    rHt
          j                            t          j	        d          dt          j	        d          z            }n[t
          j                            t          j	        d          dt          j	        d	          t          j	        d                    }|r|                     ||          }t          j                            d
          r|                     |          }|rt!          |          }|                    d          }t          j        dk    rd|vr	d|vr|dz  }|                     ||          }	 |                    d           n # t(          $ r t+          d|z            w xY w|dk    r;	 |                    |           n$# t(          $ r t+          d|d|d          w xY w|S )NTFscriptszpython%sEXEr   BINDIRr@   VERSIONr   utf-8cliz	-X:Framesz-X:FullFramess
    -X:Framesz,The shebang (%r) is not decodable from utf-8zThe shebang (z-) is not decodable from the script encoding ())r#   r   is_python_buildr   r   r1   rC   rE   get_pathget_config_varr   rI   r8   rd   r!   rZ   r&   encoderj   decodeUnicodeDecodeError
ValueError)r:   encodingre   rF   enquoter#   shebangs          r   _get_shebangzScriptMaker._get_shebang   s   ? 	kJGG*,, 	k'))JJYY 	ki&8&C&CZR[RjkpRqRqEqrrJJw$  W\\)*B8*L*L*4	8PQV8W8W*XZ Z

  W\\,X666$-$<Y$G$G$GIabgIhIhIhik k
  	M77
GLLJ<""6** 	A44Z@@J  	8+J77J  &&w//
LE!!k&D&D{22=(K%%j+>>	WNN7####! 	W 	W 	WKgUVVV	W
 wXx((((% X X X jDKGGXXX"W X X XX s   'G= =H$H: :!Ic                     | j         t          |j        |j                            d          d         |j                  z  S )Nr   r   )moduleimport_namefunc)script_templatedictprefixsuffixr"   )r:   entrys     r   _get_script_textzScriptMaker._get_script_text   sH    #d<U\-?-?-D-DQ-Gel'\ '\ '\ \ 	\r   c                 T    t           j                            |          }| j        |z  S N)r1   rC   basenamemanifest)r:   exenamebases      r   get_manifestzScriptMaker.get_manifest   s$    w((}t##r   c                 z   | j         o| j        }|s||z   }n|dk    r|                     d          }n|                     d          }t                      }t	          |d          5 }	t
          j                            d          }
|
rQt          j	        t          |
                    d d         }t          d|          }|	                    ||           n|	                    d|           d d d            n# 1 swxY w Y   |                                }||z   |z   }|D ]}t
          j                            | j        |          }|r.t
          j                            |          \  }}|                    d          r|}d	|z  }	 | j                            ||           nx# t*          $ r t,                              d
           d|z  }t
          j                            |          rt          j        |           t          j        ||           | j                            ||           t,                              d           	 t          j        |           n# t*          $ r Y nw xY wY nw xY w| j        r|                    d|z             s|d|}t
          j                            |          r$| j        st,                              d|           | j                            ||           | j        r| j                            |g           |                     |           d S )NpytwSOURCE_DATE_EPOCH   z__main__.py)filename	date_timez.pyz%s.exez:Failed to write executable - trying to use .deleteme logicz%s.deletemez0Able to replace executable using .deleteme logicr   zSkipping existing file %s)!r.   r7   _get_launcherr   r   r1   environrB   timegmtimeintr   writestrgetvaluerC   rE   r-   splitextr!   r6   write_binary_file	ExceptionrP   rQ   existsremoverenamedebugr   r0   r3   set_executable_modeappend)r:   namesr|   script_bytes	filenamesextuse_launcherlauncherstreamzfsource_date_epochr   zinfozip_datar   outnamenedfnames                      r   _write_scriptzScriptMaker._write_script  s   )9dk 	9"\1LLd{{--c22--c22YYF%% =$&JNN3F$G$G!$ = $C0A,B,B C CBQB GI#]iPPPEKK|4444KK|<<<= = = = = = = = = = = = = = = ((H#g-8L !	& !	&Dgll4?D99G @w''001<<&&  G"W,L227LIIII    NN $9 : : :*W4Fw~~f-- *	&)))Igv...L227LIIILL "3 4 4 4	&))))$     ; 7w'7'7c	'B'B 7)0##6G7>>'** 4< NN#>HHH..wEEE= @L44gY???W%%%%C!	& !	&sJ   'B	C<<D D F,,B&I;I('I;(
I52I;4I55I;:I;-c                 <   t                      }d| j        v r|                    |           d| j        v r$|                    || j        d                    d| j        v r9|                    || j        | j        d         d| j        d                    |S )Nr   Xr   r+   r   r   )r4   r5   addr9   variant_separator)r:   r   ri   s      r   get_script_filenamesz ScriptMaker.get_script_filenames<  s    JJt$-JJt'8';';<===DM!!JJddD,B,BDDUVWDXDXDXZ^ZklmZnZnopppr   c                    d}|rE|                     dg           }|r-dd                    |          z  }|                    d          }|                     d||          }|                     |                              d          }|                     |j                  }|r|                     dd          rd	}	nd
}	|                     |||||	           d S )Nr   interpreter_argsz %sr   rp   rF   r?   Fpywr   )rB   rE   rv   r}   r   r   r   r   )
r:   r   r   rF   re   argsr|   scriptscriptnamesr   s
             r   _make_scriptzScriptMaker._make_scriptF  s     	3;;1266D 3sxx~~-"kk'22##G['#JJ&&u--44W==//
;; 	w{{5%00 	CCC;CHHHHHr   c                 N   d}t           j                            | j        t	          |                    }t           j                            | j        t           j                            |                    }| j        s8| j        	                    ||          st                              d|           d S 	 t          |d          }|                                }|st                              d|           d S t                              |                    dd                    }|rd}|                    d          pd	}n# t&          $ r | j        s d }Y nw xY w|sj|r|                                 | j                            ||           | j        r| j                            |g           |                    |           d S t                              d
|| j                   | j        j        st7          |j                  \  }	}
|                    d           |                     |	|          }d|v rd}nd}t           j                            |          }|                     |g||                                ||           |r|                                 d S d S )NFznot copying %s (up-to-date)rbz%s is an empty file (skipping)s   
ra   Tr   r   zcopying and adjusting %s -> %sr   s   pythonwr   r   ) r1   rC   rE   r,   r   r-   r   r/   r6   newerrP   r   rL   readlinerQ   FIRST_LINE_REmatchrD   grouprO   r;   close	copy_filer3   r   r   infor   seekr}   r   rM   )r:   r   r   adjustr   f
first_liner   re   rz   linesr|   r   r   s                 r   _copy_scriptzScriptMaker._copy_scriptV  s   do|F/C/CDD',,t0@0@0H0HIIz 	$,"4"4VW"E"E 	LL6???F
	4VT""A J ?HHH!''
(:(:7E(J(JKKE 4#kk!nn3  	 	 	< AAA	  	 			L""67333} <00';;;W%%%%%KK8&$/RRR<' 	K"1!*"="=%q			++HkBB++CCCG$$W--""A39cJJJ 					 s   7E EEc                     | j         j        S r   r6   r;   )r:   s    r   r;   zScriptMaker.dry_run  s    |##r   c                     || j         _        d S r   r   )r:   values     r   r;   zScriptMaker.dry_run  s    $r   r   c                     t          j        d          dk    rd}nd}t                      dk    rdnd}|||d}|t          vrd	|d
t          }t          |          t          |         S )NP   6432z	win-arm64z-armr   r   zUnable to find resource z in package )structcalcsizer   WRAPPERSDISTLIB_PACKAGEry   )r:   kindbitsplatform_suffixr   msgs         r   r   zScriptMaker._get_launcher  s    s##q(((4+(E(Eff2O#'4?D8###oo/ oo%D>!r   c                     g }t          |          }||                     ||           n|                     |||           |S )a  
        Make a script.

        :param specification: The specification, which is either a valid export
                              entry specification (to make a script from a
                              callable) or a filename (to make a script by
                              copying from a source location).
        :param options: A dictionary of options controlling script generation.
        :return: A list of all absolute pathnames written to.
        Nr   )r   r   r   )r:   specificationrF   r   r   s        r   makezScriptMaker.make  sU     	 //=mY7777eY@@@r   c                 f    g }|D ]+}|                     |                     ||                     ,|S )z
        Take a list of specifications and make scripts from them,
        :param specifications: A list of specifications.
        :return: A list of all absolute pathnames written to,
        )extendr   )r:   specificationsrF   r   r   s        r   make_multiplezScriptMaker.make_multiple  sE     	+ 	@ 	@MTYY}g>>????r   )TFN)r   Nr   )"__name__
__module____qualname____doc__SCRIPT_TEMPLATEr   r#   r=   rI   r8   rd   r!   rS   rZ   rj   r}   r   _DEFAULT_MANIFESTr   r   r   r   r   r   r   propertyr;   setterr1   r   r2   r   r   r    r   r   r(   r(   [   s         &OJ- - - -   |v&& 2
	 
	 
	
	2 
	2 
	2" " "H@ @ @ @D\ \ \ !H$ $ $5& 5& 5&n   I I I I 0 0 0d $ $ X$ ^% % ^% 
w$27f,,T1A1A	" 	" 	"   &	 	 	 	 	 	r   r(   ))ior   loggingr1   rer   r8   r   zipfiler   compatr   r   r   	resourcesr	   utilr
   r   r   r   r   r   	getLoggerr   rP   stripr   compiler   r   r   r2   rsplitr   iteratorr   r&   _enquote_executableobjectr(   r   r   r   <module>r     s          				 				  



        7 7 7 7 7 7 7 7 7 7       g g g g g g g g g g g g g g g g		8	$	$  uww! & 
=>>" 7d??rw&((RX-=-= ooc1--a0O ((11"55  H  " ) d d d d d& d d d d dr   