zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
U
X±dðã@s|ddlZddlZddlZddlZddlZddlZejjZdZ    dZ
dZ dZ dZ Gdd„deƒZGdd    „d    ƒZGd
d „d ƒZdS) éNééééc@s eZdZdS)ÚArchiveReadErrorN)Ú__name__Ú
__module__Ú __qualname__©r
r
úZd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\PyInstaller/loader/pyimod01_archive.pyr'src@s(eZdZdZdd„Zdd„Zdd„ZdS)    ÚCipherz<
    This class is used only to decrypt Python modules.
    cCsrddl}|j}t|ƒtkst‚t|ƒtkr:|dt…|_n | t¡|_t|jƒtksXt‚ddl}||_    t
j d=dS)NrÚtinyaes) Úpyimod00_crypto_keyÚkeyÚtypeÚstrÚAssertionErrorÚlenÚCRYPT_BLOCK_SIZEÚzfillr Ú_aesmodÚsysÚmodules)Úselfrrr r
r
r Ú__init__/s  zCipher.__init__cCs|j |j ¡|¡S©N)rZAESrÚencode)rZivr
r
r Z__create_cipherBszCipher.__create_ciphercCs$| |dt…¡}| |td…¡Sr)Ú_Cipher__create_cipherrZCTR_xcrypt_buffer)rÚdataÚcipherr
r
r ÚdecryptGszCipher.decryptN)rrr    Ú__doc__rrr r
r
r
r r +sr c@sDeZdZdZdZddd„Zedd„ƒZd    d
„Zd d „Z    dd d„Z
dS)ÚZlibArchiveReaderzª
    Reader for PyInstaller's PYZ (ZlibArchive) archive. The archive is used to store collected byte-compiled Python
    modules, as individually-compressed entries.
    sPYZNFc        Csþ||_||_i|_d|_z tƒ|_Wntk
r8YnX|dkrT| |¡\|_|_t|jdƒ”}| |jt    j
¡|  t |j ƒ¡}||j kr”tdƒ‚|  t tƒ¡}|r¶|tkr¶tdƒ‚t d|  d¡¡^}}| |j|t    j
¡tt |¡ƒ|_W5QRXdS)NÚrbzPYZ magic pattern mismatch!zPython magic pattern mismatch!z!ié)Ú    _filenameÚ _start_offsetÚtocrr Ú ImportErrorÚ_parse_offset_from_filenameÚopenÚseekÚosÚSEEK_SETÚreadrÚ_PYZ_MAGIC_PATTERNrÚPYTHON_MAGIC_NUMBERÚstructÚunpackÚdictÚmarshalÚload)    rÚfilenameZ start_offsetZ check_pymagicÚfpÚmagicZpymagicZ
toc_offsetÚ_r
r
r rSs* 
 zZlibArchiveReader.__init__cCs`d}| d¡}|dkr||fSz$t||dd…ƒ}|d|…}Wntk
rVYnX||fS)z\
        Parse the numeric offset from filename, stored as: `/path/to/file?offset`.
        rú?éÿÿÿÿrN)ÚrfindÚintÚ
ValueError)r6ÚoffsetÚidxr
r
r r)}s
z-ZlibArchiveReader._parse_offset_from_filenamecCs.|j |¡}|dkrdS|\}}}|ttfkS)zg
        Check if the given name refers to a package entry. Used by FrozenImporter at runtime.
        NF)r'ÚgetÚ PYZ_ITEM_PKGÚPYZ_ITEM_NSPKG©rÚnameÚentryÚtypecodeÚ entry_offsetÚ entry_lengthr
r
r Ú
is_package‘s
 
zZlibArchiveReader.is_packagecCs*|j |¡}|dkrdS|\}}}|tkS)zq
        Check if the given name refers to a namespace package entry. Used by FrozenImporter at runtime.
        NF)r'rArCrDr
r
r Úis_pep420_namespace_package›s
 
z-ZlibArchiveReader.is_pep420_namespace_packagec
 
Csô|j |¡}|dkrdS|\}}}z6t|jdƒ }| |j|¡| |¡}W5QRXWn$tk
r|t|j›dƒ‚YnXz<|j    r’|j     
|¡}t   |¡}|t ttfkr¸|s¸t |¡}Wn4tk
rî}    ztd|›dƒ|    ‚W5d}    ~    XYnX|S)zß
        Extract data from entry with the given name.
 
        If the entry belongs to a module or a package, the data is loaded (unmarshaled) into code object. To retrieve
        raw data, set `raw` flag to True.
        Nr#z… appears to have been moved or deleted since this application was launched. Continouation from this state is impossible. Exiting now.zFailed to unmarshal PYZ entry ú!)r'rAr*r%r+r&r.ÚFileNotFoundErrorÚ
SystemExitrr ÚzlibÚ
decompressÚPYZ_ITEM_MODULErBrCr4ÚloadsÚEOFErrorr()
rrEÚrawrFrGrHrIr7ÚobjÚer
r
r Úextract¥s* 
 
ÿ
 
$zZlibArchiveReader.extract)NF)F) rrr    r!r/rÚ staticmethodr)rJrKrWr
r
r
r r"Ls
*
 
 
r")rr,r1r4rOÚ_frozen_importlibÚ_bootstrap_externalÚ MAGIC_NUMBERr0rrQrBZ PYZ_ITEM_DATArCÚ RuntimeErrorrr r"r
r
r
r Ú<module>s!