File: //lib64/python3.6/__pycache__/zipapp.cpython-36.opt-1.pyc
3
\ @ s d dl Z d dlZd dlZd dlZd dlZd dlZd dlZdddgZdZej j
drXdZnej 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/lib64/python3.6/zipapp.pyr ! s c c sF t | tjrt| } t | tr<t| |}|V W d Q R X n| V d S )N)
isinstancepathlibPathstropen)archivemodefr r r
_maybe_open% s
r c C s$ |r d|j t d }| j| dS )zWrite a shebang line.s #!
N)encodeshebang_encodingwrite)r interpreterZshebangr r r
_write_file_prefix0 s r c C s t | dZ}|jd}|dkr*d}|j t |d&}t|| |j| tj|| W dQ R X W dQ R X |rt|trt j
|t j|jtj
B dS )z8Copy an application archive, modifying the shebang line.rb s #! wbN)r readreadliner r shutilZcopyfileobjr r oschmodstatst_modeS_IEXEC)r Znew_archiver srcZfirst_2dstr r r
_copy_archive7 s
r( c C s d}t | drt | drd}ntj| } | j r4d}|rHt| || dS | j sXtd| d j }|rt|rttd|pz|std d}|r|jd
\}}} tdd |j d
D }
tdd | j d
D }|d
ko|
o|std| t
j|| d}|dkr| jd}nt |ds"tj|}t
|d~}t|| tj|d\}
tj| }x2|jdD ]$}t|j|}|
jt|| q\W |r|
jd|jd W dQ R X W dQ R X |rt |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).0partr 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: )modulefnz.pyzr r w*zutf-8)hasattrr r
is_filer( existsr partitionallsplit
MAIN_TEMPLATEformatZwith_suffixr r zipfileZZipFileZrglobr Zrelative_tor Zwritestrr r"