Your IP : 3.149.24.70


Current Path : /usr/lib64/python3.8/__pycache__/
Upload File :
Current File : //usr/lib64/python3.8/__pycache__/zipapp.cpython-38.pyc

U

e5do�@s�ddlZddlZddlZddlZddlZddlZddlZdddgZdZej	�
d�rXdZne��ZGdd�de
�Zejd	d
��Zdd�Zdd
d�Zddd�Zdd�Zddd�Zedkr�e�dS)�N�ZipAppError�create_archive�get_interpreterz8# -*- coding: utf-8 -*-
import {module}
{module}.{fn}()
�win�utf-8c@seZdZdS)rN)�__name__�
__module__�__qualname__�r
r
�/usr/lib64/python3.8/zipapp.pyr!sc	cs8t|ttjf�r.t||��}|VW5QRXn|VdS�N)�
isinstance�str�os�PathLike�open)�archive�mode�fr
r
r�_maybe_open%srcCs$|r d|�t�d}|�|�dS)zWrite a shebang line.�#!�
N)�encode�shebang_encoding�write)r�interpreterZshebangr
r
r�_write_file_prefix.src
Cs�t|d��Z}|�d�}|dkr*d}|��t|d��&}t||�|�|�t�||�W5QRXW5QRX|r�t|t�r�t	�
|t	�|�jtj
B�dS)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
Cs�d}t|d�rt|d�rd}nt�|�}|��r4d}|rHt|||�dS|��sXtd��|d��}|rt|rttd��|s�|s�td	��d}|r�|�d
�\}	}
}tdd�|	�	d
�D��}tdd�|�	d
�D��}
|
d
kr�|r�|
s�td|��t
j|	|d�}|dk�r|�d�}nt|d��s"t�|�}t
|d���}t||�|�rDtjntj}tj|d|d��^}|�d�D]4}|�|�}|dk�s�||��rf|�||����qf|�r�|�d|�d��W5QRXW5QRX|�r�t|d��s�|�|��jtjB�dS)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�:css|]}|��VqdSr��isidentifier��.0�partr
r
r�	<genexpr>{sz!create_archive.<locals>.<genexpr>�.css|]}|��VqdSrr+r-r
r
rr0|szInvalid entry point: )�module�fnz.pyzrr �w)�compression�*r)�hasattr�pathlib�Path�is_filer)�existsr�	partition�all�split�
MAIN_TEMPLATE�formatZwith_suffixrr�zipfileZZIP_DEFLATEDZ
ZIP_STOREDZZipFileZrglob�relative_torZas_posixZwritestrrr$r%r&r')�source�targetr�main�filter�
compressedZsource_is_fileZhas_mainZmain_py�mod�sepr3Zmod_okZfn_ok�fdr5�zZchildZarcnamer
r
rrLsX
�


�
&c
CsFt|d��2}|�d�dkr8|�����t�W5QR�SW5QRXdS)Nrrr)rr!r"�strip�decoder)rrr
r
rr�scCs<ddl}|��}|jddddd�|jdddd	d�|jd
dddd�|jd
dddd�|jddddd�|jddd�|�|�}|jr�tj�|j�s�t	d��t
|j�}td�|p�d��t
�d�tj�|j��r|jdk�stj�|j��rtj�|j|j��rt	d��|j�rt	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.)�actionrOz--infoFz)Display the interpreter from the archive.)rNrQrOrCz'Source directory (or existing archive).)rOz%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�printr@�sys�exit�outputr;�samefilerEr�python�compress)�argsrR�parserrr
r
rrE�sN
�
�
�
�
��


�
�rE�__main__)N)NNNNF)N)�
contextlibrr8r#r%r[rA�__all__r?�platform�
startswithr�getfilesystemencoding�
ValueErrorr�contextmanagerrrr)rrrErr
r
r
r�<module>s0



�
J
1

?>