Your IP : 18.117.72.244


Current Path : /opt/alt/python310/lib64/python3.10/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/__pycache__/zipapp.cpython-310.pyc

o

6��fo�@s�ddlZddlZddlZddlZddlZddlZddlZgd�ZdZej	�
d�r+dZne��ZGdd�de
�Zejdd	��Zd
d�Zddd
�Z		ddd�Zdd�Zddd�Zedkr`e�dSdS)�N)�ZipAppError�create_archive�get_interpreterz8# -*- coding: utf-8 -*-
import {module}
{module}.{fn}()
�win�utf-8c@seZdZdS)rN)�__name__�
__module__�__qualname__�r
r
�-/opt/alt/python310/lib64/python3.10/zipapp.pyr!srccsR�t|ttjf�r$t||��}|VWd�dS1swYdS|VdS�N)�
isinstance�str�os�PathLike�open)�archive�mode�fr
r
r�_maybe_open%s�"�
rcCs(|rd|�t�d}|�|�dSdS)zWrite a shebang line.�#!�
N)�encode�shebang_encoding�write)r�interpreterZshebangr
r
r�_write_file_prefix.s�rc	Cs�t|d��<}|�d�}|dkrd}|��t|d��}t||�|�|�t�||�Wd�n1s5wYWd�n1sDwY|r_t|t�rat	�
|t	�|�jtj
B�dSdSdS)z8Copy an application archive, modifying the shebang line.�rb�r��wbN)r�read�readlinerr�shutilZcopyfileobjr
rr�chmod�stat�st_mode�S_IEXEC)rZnew_archiver�srcZfirst_2Zdstr
r
r�
_copy_archive5s


����r)Fc	Csd}t|d�rt|d�rd}nt�|�}|��rd}|r$t|||�dS|��s,td��|d��}|r:|r:td��|sB|sBtd	��d}|r{|�d
�\}	}
}tdd�|	�	d
�D��}tdd�|�	d
�D��}
|
d
krn|rn|
sttd|��t
j|	|d�}|dur�|�d�}n
t|d�s�t�|�}t
|d��U}t||�|r�tjntj}tj|d|d��0}|�d�D]}|�|�}|dus�||�r�|�||���q�|r�|�d|�d��Wd�n1s�wYWd�n1s�wY|�rt|d��s	|�|��jtjB�dSdSdS)abCreate an application archive from SOURCE.

    The SOURCE can be the name of a directory, or a filename or a file-like
    object referring to an existing archive.

    The content of SOURCE is packed into an application archive in TARGET,
    which can be a filename or a file-like object.  If SOURCE is a directory,
    TARGET can be omitted and will default to the name of SOURCE with .pyz
    appended.

    The created application archive will have a shebang line specifying
    that it should run with INTERPRETER (there will be no shebang line if
    INTERPRETER is None), and a __main__.py which runs MAIN (if MAIN is
    not specified, an existing __main__.py will be used).  It is an error
    to specify MAIN for anything other than a directory source with no
    __main__.py, and it is an error to omit MAIN if the directory has no
    __main__.py.
    Fr!r"TNzSource does not existz__main__.pyz8Cannot specify entry point if the source has __main__.pyzArchive has no entry point�:cs��|]}|��VqdSr��isidentifier��.0�partr
r
r�	<genexpr>{��z!create_archive.<locals>.<genexpr>�.csr+rr,r.r
r
rr1|r2zInvalid entry point: )�module�fnz.pyzrr �w)�compression�*r)�hasattr�pathlibZPath�is_filer)�existsr�	partition�all�split�
MAIN_TEMPLATE�formatZwith_suffixrr�zipfileZZIP_DEFLATEDZ
ZIP_STOREDZZipFileZrglobZrelative_torZas_posixZwritestrrr$r%r&r')�source�targetr�main�filter�
compressedZsource_is_fileZhas_mainZmain_py�mod�sepr5Zmod_okZfn_ok�fdr7�z�childZarcnamer
r
rrLsd
�



�
������rcCs^t|d�� }|�d�dkr|�����t�Wd�SWd�dS1s(wYdS)Nrrr)rr!r"�strip�decoder)rrr
r
rr�s�"�rcCs2ddl}|��}|jddddd�|jdddd	d�|jd
dddd�|jd
dddd�|jddddd�|jddd�|�|�}|jrbtj�|j�sOt	d��t
|j�}td�|pZd��t
�d�tj�|j�r�|jdus~tj�|j�r�tj�|j|j�r�t	d��|jr�t	d��t|j|j|j|j|jd�dS)z�Run the zipapp command line interface.

    The ARGS parameter lets you specify the argument list directly.
    Omitting ARGS (or setting it to None) works as for argparse, using
    sys.argv[1:] as the argument list.
    rNz--outputz-ozAThe name of the output archive. Required if SOURCE is an archive.)�default�helpz--pythonz-pzEThe name of the Python interpreter to use (default: no shebang line).z--mainz-mzLThe main function of the application (default: use an existing __main__.py).z
--compressz-c�
store_truezQCompress files with the deflate method. Files are stored uncompressed by default.)�actionrPz--infoFz)Display the interpreter from the archive.)rOrRrPrCz'Source directory (or existing archive).)rPz%Can only get info for an archive filezInterpreter: {}z<none>z-In-place editing of archives is not supportedz,Cannot change the main function when copying)rrErG)�argparse�ArgumentParser�add_argument�
parse_args�infor�path�isfilerC�
SystemExitr�printrA�sys�exit�outputr<�samefilerErZpython�compress)�argsrS�parserrr
r
rrE�sL
�
�
�
�
��


�

�rE�__main__r)NNNNF)�
contextlibrr:r#r%r\rB�__all__r@�platform�
startswithr�getfilesystemencoding�
ValueErrorr�contextmanagerrrr)rrrErr
r
r
r�<module>s2



�J
1
�

?>