File: //usr/lib/python3.7/__pycache__/zipapp.cpython-37.pyc
B
{ao @ s d dl Z d dlZd dlZd dlZd dlZd dlZd dlZdddgZdZej
drXdZne ZG dd de
Ze jd d
Zdd Zdd
dZdddZdd ZdddZedkre dS ) NZipAppErrorcreate_archiveget_interpreterz8# -*- coding: utf-8 -*-
import {module}
{module}.{fn}()
winzutf-8c @ s e Zd ZdS )r N)__name__
__module____qualname__ r r /usr/lib/python3.7/zipapp.pyr ! s c c s8 t | ttjfr.t| |}|V W d Q R X n| V d S )N)
isinstancestrosPathLikeopen)archivemodefr r r
_maybe_open% s r c C s$ |r d| t d }| | dS )zWrite a shebang line.s #!
N)encodeshebang_encodingwrite)r interpreterZshebangr r r
_write_file_prefix. s r c
C s t | dZ}|d}|dkr*d}| t |d&}t|| || t|| W dQ R X W dQ R X |rt|trt
|t |jtj
B dS )z8Copy an application archive, modifying the shebang line.rb s #! wbN)r readreadliner r shutilZcopyfileobjr r r
chmodstatst_modeS_IEXEC)r Znew_archiver srcZfirst_2dstr r r
_copy_archive5 s
r' Fc
C s d}t | drt | drd}nt| } | r4d}|rHt| || dS | sXtd| d }|rt|rttd|s|std d}|r|d
\} }
}tdd | d
D }tdd | d
D }
|
d
kr|r|
std| t
j| |d}|dkr| d}nt |ds"t|}t
|d}t|| |rDtjntj}tj|d|db}xB| dD ]4}|| }|dks||rh||| qhW |r|d|d W dQ R X W dQ R X |rt |ds|| 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 | ]}| V qd S )N)isidentifier).0partr r r
<genexpr>{ s z!create_archive.<locals>.<genexpr>.c s s | ]}| V qd S )N)r) )r* r+ r r r
r, | s zInvalid entry point: )modulefnz.pyzr r w)compression*zutf-8)hasattrpathlibZPathis_filer' existsr partitionallsplit
MAIN_TEMPLATEformatZwith_suffixr r zipfileZZIP_DEFLATEDZ
ZIP_STOREDZZipFileZrglobZrelative_tor Zas_posixZwritestrr r! r"