Mini Shell

Direktori : /proc/self/root/lib64/python3.9/__pycache__/
Upload File :
Current File : //proc/self/root/lib64/python3.9/__pycache__/zipapp.cpython-39.pyc

a

�DOgo�@s�ddlZddlZddlZddlZddlZddlZddlZgd�ZdZej	�
d�rVdZne��ZGdd�de
�Zejdd	��Zd
d�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.9/zipapp.pyr!srccsLt|ttjf�rBt||��}|VWd�qH1s60Yn|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��x}|�d�}|dkr*d}|��t|d��0}t||�|�|�t�||�Wd�n1sj0YWd�n1s�0Y|r�t|t�r�t	�
|t	�|�jtj
B�dS)z8Copy an application archive, modifying the shebang line.�rb�r��wbN)r�read�readlinerr�shutil�copyfileobjr
rr�chmod�stat�st_mode�S_IEXEC)rZnew_archiver�srcZfirst_2�dstr
r
r�
_copy_archive5s


Hr+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�}|du�r|�d�}nt|d��s"t�|�}t
|d���}t||�|�rDtjntj}tj|d|d��h}|�d�D]4}|�|�}|du�s�||��rf|�||����qf|�r�|�d|�d��Wd�n1�s�0YWd�n1�s�0Y|�rt|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>{rz!create_archive.<locals>.<genexpr>�.css|]}|��VqdSrr-r/r
r
rr2|rzInvalid entry point: )�module�fnz.pyzrr �w)�compression�*r)�hasattr�pathlib�Path�is_filer+�existsr�	partition�all�split�
MAIN_TEMPLATE�format�with_suffixrr�zipfile�ZIP_DEFLATEDZ
ZIP_STORED�ZipFile�rglob�relative_tor�as_posixZwritestrrr%r&r'r()�source�targetr�main�filter�
compressedZsource_is_fileZhas_mainZmain_py�mod�sepr5Zmod_okZfn_ok�fdr7�z�childZarcnamer
r
rrLsX
�


�
RrcCs\t|d��>}|�d�dkr:|�����t�Wd�SWd�n1sN0YdS)Nrrr)rr!r"�strip�decoder)rrr
r
rr�srcCs<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|jdu�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.)�actionrWz--infoFz)Display the interpreter from the archive.)rVrYrWrJz'Source directory (or existing archive).)rWz%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)rrLrN)�argparse�ArgumentParser�add_argument�
parse_args�infor�path�isfilerJ�
SystemExitr�printrB�sys�exit�outputr=�samefilerLrZpython�compress)�argsrZ�parserrr
r
rrL�sL
�
�
�
�
��


�
�rL�__main__)N)NNNNF)N)�
contextlibrr:r#r&rcrD�__all__rA�platform�
startswithr�getfilesystemencoding�
ValueErrorr�contextmanagerrrr+rrrLrr
r
r
r�<module>s.


�
J
1

Zerion Mini Shell 1.0