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
U
X±d›)ã@sØdZddlZddlZddlZddlZddlZddlmZddlmZm    Z    m
Z
ddl m Z ddgZ d    d
d d d dhZdd„Zdd„Zdd„Zddddejfdd„ZddddgZdd„e ¡DƒZdd„Zeƒd dd„ZdS)!zö
modulegraph.find_modules - High-level module dependency finding interface
=========================================================================
 
History
........
 
Originally (loosely) based on code in py2exe's build_exe.py by Thomas Heller.
éNé)Ú modulegraph)ÚAliasÚScriptÚ    Extension)Úimp_find_moduleÚ find_modulesÚparse_mf_resultsÚposixÚntZos2ÚmacZceÚriscoscCsÆdgdgdgdgdgdgddgdgdgdgd    d
d gd gddgd gdddgdgdgd    dgdddddgtdƒdœ}tjddkršd    dg|d<dg|d<d|d <tjdd!kr8tjd"d#kr8| td$ƒtd%ƒtd&ƒtd'ƒtd(ƒtd)ƒtd*ƒtd+ƒtd,ƒtd-ƒtd.ƒtd/ƒtd0ƒtd1ƒtd2ƒtd3ƒtd4ƒtd5ƒtd6ƒd7œ¡tjdd!…d8kr”d9g|d:<ddl}t |jj¡D]&\}}}|sl|d:     d;|f¡qltjdd!…d<kr²d=g|d><tt
j j ƒ|d?<|S)@NZcursesÚresourceÚtimeZ    _strptimeZ macresourceÚcopy_regÚ    cStringIOÚ    encodingsÚcopyÚstringZsreÚzlibz json.decoderÚcodecsÚcopyregÚ_compat_pickleÚgcÚsocketzxml.etree.ElementPathÚdbhashÚgdbmÚdbmÚdumbdbmÚwhichdbZwx)Z_cursesr
rrÚdatetimeÚMacOSÚcPickleÚparserrrÚ_sreÚ    zipimportÚ    _datetimeÚ_jsonÚ_pickleZ_posixsubprocessÚ_sslÚ _elementtreeÚanydbmz wxPython.wxréÚrer$r#Ú_frozen_importlibérézemail.base64mimez email.charsetzemail.encodersz email.errorszemail.feedParserzemail.generatorz email.headerzemail.iteratorsz email.messagez email.parserzemail.quoprimimez email.utilszemail.mime.audiozemail.mime.basezemail.mime.imagezemail.mime.messagezemail.mime.multipartzemail.mime.nonmultipartzemail.mime.text)zemail.base64MIMEz email.Charsetzemail.Encodersz email.Errorszemail.Feedparserzemail.Generatorz email.Headerzemail.Iteratorsz email.Messagez email.Parserzemail.quopriMIMEz email.Utilszemail.MIMEAudiozemail.MIMEBasezemail.MIMEImagezemail.MIMEMessagezemail.MIMEMultipartzemail.MIMENonMultipartzemail.MIMEText)r/r0Úpyexpatr*z xml.etree.%s)r/éÚ    itertoolsZfuture_builtinszos.path) rÚsysÚ version_infoÚupdateZ    xml.etreeÚpkgutilÚ iter_modulesÚetreeÚ__path__ÚappendÚosÚpathÚ__name__)ÚresultÚxmlÚ_Ú module_nameÚ
is_package©rDú_d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\PyInstaller/lib/modulegraph/find_modules.pyÚ get_impliessr ß% 
 í
 
rFcCs’g}g}| ¡D]X}|jdkr q|j}|r|dkrt|tƒrH| |¡qt|tƒr^| |¡q| |¡q|jdd„d|jdd„d||fS)zº
    Return two lists: the first one contains the python files in the graph,
    the second the C extensions.
 
    :param mf: a :class:`modulegraph.modulegraph.ModuleGraph` instance
    Ú__main__ú-cSs|jS©N©Úfilename©ÚvrDrDrEÚ<lambda>Žóz"parse_mf_results.<locals>.<lambda>)ÚkeycSs|jSrIrJrLrDrDrErNrO)Z
iter_graphÚ
identifierrKÚ
isinstancerr;rÚsort)ÚmfÚpy_filesÚ
extensionsÚitemÚsrcrDrDrEr    qs 
 
 
  cCsD| dddg¡tj d¡s,| dddg¡tjdkrR| d    d
d d d ddddg    ¡tjdksŽ| dddddddddddddd dd!d"d#d$d%g¡tjd&ks¦| d'd(g¡tjd)kr¼tj d*¡rÈ| d)g¡tjd+ksÞ| d,g¡| tttjƒ¡| d-¡| d.¡| d/¡z td0ƒWn"t    k
r>| d0g¡YnXdS)1NÚwarningsÚ unicodedataÚweakrefZirixÚALZsgiÚvms_lib)r ÚdarwinZ    Audio_macz Carbon.Filez Carbon.FolderzCarbon.FoldersZ EasyDialogsr!ZmacfsZ
macostoolsZ_scproxyÚwin32Ú
nturl2pathÚwin32apiZwin32conZ win32ctypesZ
win32eventÚwin32evtlogutilÚ win32evtlogZ    win32fileZwin32guiZ    win32pipeZ win32processZ win32securityZ
pywintypesZwinsoundÚ_winregÚ_winapiÚmsvcrtÚwinregZ _subprocessr Z riscosenvironZ
rourl2pathÚdoszms-dosZos2emxZ    _emx_linkZOverrideFrom23zOverrideFrom23._ResZ_dummy_threadingÚpoll)
r6r4ÚplatformÚ
startswithÚ_PLATFORM_MODULESÚsetÚbuiltin_module_namesÚaddrÚ ImportError)ÚincludesÚpackagesÚexcludesrDrDrEÚ plat_prepare“s‚ ý
÷
ì
þÿ
ÿ
 
 
 ÿrtrDc     Csx|dkrt ¡}|D]}| |¡q|D]`}z8|dd…dkrX| |dd…ddg¡n
| |¡Wq(tk
r†|d|fƒYq(Xq(|D]ä}| |¡}|dk    r°|jd}n:zt||jƒd}Wn$tk
rè|d|ƒYqŽYnXt     
|¡D]|\}    }
} d| krd|      |¡rd|d    |    t |ƒdd…  t    jd    ¡} |  d    ¡rR| dd
…} | | ddg¡}qôg|
dd…<qôqŽ|S) Néþÿÿÿz.*Ú*zNo module named %srrzNo package named %sz __init__.pyÚ.éÿÿÿÿ)rÚ ModuleGraphZ
add_scriptZ import_hookrpZ    find_nodeZ packagepathrr=r<ÚwalkrkÚlenÚreplaceÚsepÚendswith) rTÚscriptsrqrrÚwarnr=ÚmodÚfÚmÚdirpathÚdirnamesÚ    filenamesÚpackagerDrDrEÚfind_needed_modulesçs8 
 
 
&  rˆz.pyz.pywz.pyoz.pyccCs"g|]}|dtjkr|d‘qS)r/r)ÚimpÚ C_EXTENSION)Ú.0Z_triplerDrDrEÚ
<listcomp>#sÿrŒcCs*ddi}| ¡D]\}}t ||¡qdS)NZ_xmlplusr@)ÚitemsrZreplacePackage)ZREPLACEPACKAGESÚkrMrDrDrEÚ_replacePackages.s
ÿrcCsVt|ƒ}t|ƒ}t|ƒ}t|ƒ}t|||ƒtj|||tƒ|d}t||||ƒ|S)a
    High-level interface, takes iterables for:
        scripts, includes, packages, excludes
 
    And returns a :class:`modulegraph.modulegraph.ModuleGraph` instance,
    python_files, and extensions
 
    python_files is a list of pure python dependencies as modulegraph.Module
    objects, extensions is a list of platform-specific C extension dependencies
    as modulegraph.Module objects
    )r=rsZimpliesÚdebug)rmrtrryrFrˆ)rrqrrrsr=rrTrDrDrEr9s  ü)rDrDrDrDNr)Ú__doc__r4r<r‰rYr7ÚrrrrÚutilrÚ__all__rlrFr    rtr€rˆZ PY_SUFFIXESZ get_suffixesZ
C_SUFFIXESrrrDrDrDrEÚ<module>sD      ÿV"Uÿ
; ÿ ÿ