Your IP : 18.116.20.205
3
� f� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZdddgZdZej j
d�rXdZnej� ZG dd� de
�Ze jd d
� �Zdd� Zdd
d�Zddd�Zdd� Zddd�Zedkr�e� dS )� N�ZipAppError�create_archive�get_interpreterz8# -*- coding: utf-8 -*-
import {module}
{module}.{fn}()
�winzutf-8c @ s e Zd ZdS )r N)�__name__�
__module__�__qualname__� r r �+/opt/alt/python36/lib64/python3.6/zipapp.pyr ! s c c sF t | tj�rt| �} t | t�r<t| |��}|V W d Q R X n| V d S )N)�
isinstance�pathlib�Path�str�open)�archive�mode�fr r r
�_maybe_open% s
r c C s$ |r d|j t� d }| j|� dS )zWrite a shebang line.s #!�
N)�encode�shebang_encoding�write)r �interpreterZshebangr r r
�_write_file_prefix0 s r c C s� t | d��Z}|jd�}|dkr*d}|j� t |d��&}t||� |j|� tj||� W dQ R X W dQ R X |r�t|t�r�t j
|t j|�jtj
B � dS )z8Copy an application archive, modifying the shebang line.�rb� s #!� �wbN)r �read�readliner r �shutilZcopyfileobjr r �os�chmod�stat�st_mode�S_IEXEC)r Znew_archiver �srcZfirst_2�dstr r r
�
_copy_archive7 s
r( c C s� d}t | d�rt | d�rd}ntj| �} | j� r4d}|rHt| ||� dS | j� sXtd��| d j� }|rt|rttd��|pz|s�td ��d}|r�|jd
�\}}} tdd� |j d
�D ��}
tdd� | j d
�D ��}|d
ko�|
o�|s�td| ��t
j|| d�}|dk�r| jd�}nt |d��s"tj|�}t
|d��~}t||� tj|d��\}
tj| �}x2|jd�D ]$}t|j|��}|
jt|�|� �q\W |�r�|
jd|jd�� W dQ R X W dQ R X |�r�t |d� �r�|j|j� jtjB � dS )ab Create 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�:c s s | ]}|j � V qd S )N)�isidentifier)�.0�partr r r
� <genexpr>| s z!create_archive.<locals>.<genexpr>�.c s s | ]}|j � V qd S )N)r* )r+ r, r r r
r- } s zInvalid entry point: )�module�fnz.pyzr r �w�*zutf-8)�hasattrr r
�is_filer( �existsr � partition�all�split�
MAIN_TEMPLATE�formatZwith_suffixr r �zipfileZZipFileZrglobr Zrelative_tor Zwritestrr r"