hyb
2025-11-07 cadac0a99d87c53805a07f3b4ca7fd11e524fe4a
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
81
82
83
84
85
86
87
88
89
Ë
hñúh6ãóf—dZddlZddlZddlZddlZddlmZddlm    Z    ddlm
Z ddl m Z ddlmZddlmZe j$e«Zd    „Zd
efd „Ze j.d e j0zd ze j2zdze j0zdze j4zdz«Zd
efd„Zd„Zdad„Zy)z?
Utility functions related to analyzing/bundling dependencies.
éN)ÚCodeType)Úcompat)Úlog)Úbytecode)Úinclude_library)ÚExecCommandFailedcób—t|«}t|«}t|«D]n}|s|j|«Œ|tj
j |«k7sŒ:    |j}tjd||«|j|«Œpt|«}|S#t$rd}YŒDwxYw)NÚUNKNOWNzPIgnoring %s imported from %s - only basenames are supported with ctypes imports!) Ú*__recursively_scan_code_objects_for_ctypesÚsetÚlistÚremoveÚosÚpathÚbasenameÚ co_filenameÚ    ExceptionÚloggerÚwarningÚ_resolveCtypesImports)ÚcoÚbinariesÚbinaryÚfilenames    úKH:\Change_password\venv_build\Lib\site-packages\PyInstaller/depend/utils.pyÚscan_code_for_ctypesrs¬€Ü9¸"Ó=€Hô8‹}€Hܐx“.ò$ˆñà O‰O˜FÕ #Ø ”r—w‘w×'Ñ'¨Ó/Ó /ð %ØŸ>™>ô N‰NØbÐdjÐltô ð O‰O˜FÕ #ð!$ô$% XÓ.€HØ €Oøôò %Ø$’ð %úsÁ B   B.Â-B.Úcodecóø—ddlm}m}g}h|d«£|d«£|d«£|d«£|d«£|d«£|d    «£|d
«£}h|d «£}tj|«j «D]¢}|D]›\}}t |«d k(rt|dt«sŒ(||vr|j|ŽŒ<||vsŒA|d}    |    sŒI    tjj|    «}    |    sŒlt j"j%|    «}    |j|    «ŒŒ¤|t&|«j «D]}
|j)|
«Œ|S#t$rd }    tjd|d«YŒwxYw)z¹
    Detects ctypes dependencies, using reasonable heuristics that should cover most common ctypes usages; returns a
    list containing names of binaries detected as dependencies.
    r)Ú    any_aliasÚsearch_recursivelyz ctypes.CDLLzctypes.cdll.LoadLibraryz ctypes.WinDLLzctypes.windll.LoadLibraryz ctypes.OleDLLzctypes.oledll.LoadLibraryz ctypes.PyDLLzctypes.pydll.LoadLibraryzctypes.util.find_libraryéNzqctypes.util.find_library raised a FileNotFoundError. Supressing and assuming no lib with the name "%s" was found.)ÚPyInstaller.depend.bytecoderr rÚrecursive_function_callsÚvaluesÚlenÚ
isinstanceÚstrÚappendÚctypesÚutilÚ find_libraryÚFileNotFoundErrorrrrrrÚ_scan_code_for_ctypes_getattrÚextend) rrr rÚctypes_dll_namesÚfind_library_namesÚcallsÚnameÚargsÚlibnameÚis            rr r :sÈ€÷
Jà€Hð    Ù    =Ó    !ð    á    Ð,Ó    -ð    ñ
?Ó    #ð    ñ
Ð.Ó    /ð        ñ
 
?Ó    #ð     ñ
Ð.Ó    /ð     ñ
>Ó    "ð    ñ
Ð-Ó    .ð    ÐðÙ    Ð-Ó    .ðÐô×2Ñ2°4Ó8×?Ñ?ÓAò1ˆØ!ò    1‰LˆT4ܐt“9 ’>¬°D¸±G¼SÔ)AØØÐ'Ñ'à—‘ Ò&ØÐ+Ò+ð˜q™'ÚðÜ"(§+¡+×":Ñ":¸7Ó"C˜òä"$§'¡'×"2Ñ"2°7Ó";˜Ø Ÿ™¨Õ0ñ/    1ð1ñ8 Ô =¸tÓ D× KÑ KÓ MòˆØ‰˜Õðð €Oøô!-òØ"&˜ÜŸ™ð[Ø\`ÐabÑ\cöðúsà   EÅ$E9Å8E9sV
    # Matches 'foo.bar' or 'foo.bar.whizz'.
 
    # Load the 'foo'.
    (
      (?:(?:s).)*
      (?:s˜).
    )
 
    # Load the 'bar.whizz' (one opcode per name component, each possibly preceded by name reference extension).
    (
      (?:
        (?:(?:s).)*
        (?:s).
      )+
    )
c#ó|K—d}tjt|j«D]}|j    «\}}tj
||«}tj ||«}|r    |ddk(rŒMt|«dk(r||vr
|ddz–—t|«dk(sŒx|dk(sŒ~|d|vsŒ†|ddz–—Œ‘y    ­w)
zs
    Detect uses of ``ctypes.cdll.library_name``, which implies that ``library_name.dll`` should be collected.
    )ÚcdllÚoledllÚpydllÚwindlléÿÿÿÿÚ LoadLibraryr!rú.dllér)N)rÚfinditerÚ_ctypes_getattr_regexÚco_codeÚgroupsÚloadÚloadsr%)rÚ    key_namesÚmatchr2Úattrss     rr-r-‡s¿èø€ð
6€Iä×"Ñ"Ô#8¸$¿,¹,ÓGò(ˆØ—l‘l“n‰ ˆˆe܏}‰}˜T 4Ó(ˆÜ—‘˜u dÓ+ˆá U˜2‘Y -Ò/Ø ô ˆu‹:˜Š?ؐyѠؘA‘h Ñ'Ò'ä ˆu‹:˜‹?ؐxÓ E¨!¡H°    Ò$9ؘA‘h Ñ'Ó'ñ(ùs‚BB<Â!B<Â'B<Â/ B<cóB‡    ‡
—ddlm}ddlmŠ    tj
rdŠ
ntj rdŠ
ndŠ
ˆ    ˆ
fd„}ˆ
fd„}g}|«}|D]´}    |tjj|«d«}tj
stjrß|€|}t    j‰
d
«jtj«D]a}tjjtjj!||««sŒAtjj!||«}nEt"€
t%«|t"vr*t"|}tjj|«sJ‚d    }|€ft'|«sŒ;tj(s1tjs!|j+«j-d «rŒ|t.j1d |«Œ”t'|«sŒ¡|j3||d f«Œ·||«|S#t$rd    }YŒ£wxYw)a
    Completes ctypes BINARY entries for modules with their full path.
 
    Input is a list of c-binary-names (as found by `scan_code_instruction_for_ctypes`). Output is a list of tuples
    ready to be appended to the ``binaries`` of a modules.
 
    This function temporarily extents PATH, LD_LIBRARY_PATH or DYLD_LIBRARY_PATH (depending on the platform) by
    CONF['pathex'] so shared libs will be search there, too.
 
    Example:
    >>> _resolveCtypesImports(['libgs.so'])
    [(libgs.so', ''/usr/lib/libgs.so', 'BINARY')]
    r)r+)ÚCONFÚLD_LIBRARY_PATHÚDYLD_LIBRARY_PATHÚPATHcóè•—tjj‰d«}tj‰«}|!tjj||f«}tj
‰|«|S)NÚpathex)rÚpathsepÚjoinrÚgetenvÚsetenv)rÚoldrIÚenvvars  €€rÚ    _setPathsz(_resolveCtypesImports.<locals>._setPathsºsUø€Üz‰z‰˜t H™~Ó.ˆÜm‰m˜FÓ#ˆØ ˆ?Ü—:‘:—?‘? D¨# ;Ó/ˆD܏ ‰ f˜dÔ#؈
ócób•—|€tj‰«ytj‰|«y)N)rÚunsetenvrR)rSrTs €rÚ _restorePathsz,_resolveCtypesImports.<locals>._restorePathsÂs"ø€Ø ˆ;Ü O‰O˜FÕ #ä M‰M˜& #Õ &rVNÚr=z(Library %s required via ctypes not foundÚBINARY)Ú ctypes.utilr+ÚPyInstaller.configrIrÚis_unixÚ    is_darwinrrÚsplitextr,Ú    is_cygwinrQÚsplitrOÚisfilerPÚLDCONFIG_CACHEÚload_ldconfig_cacherÚis_winÚlowerÚendswithrrr() Ú    cbinariesr+rUrYÚretrSÚcbinÚcpathÚdrIrTs          @@rrr¡s¾ù€õ)å'ä ‡~‚~Ø"‰Ü    ×    Ò    Ø$‰àˆõô'ð €Cñ ‹+€CØó)0ˆð    ñ!¤§¡×!1Ñ!1°$Ó!7¸Ñ!:Ó;ˆEô >Š>œV×-Ò-ðˆ}ؐä—]‘] 6¨2Ó.×4Ñ4´R·Z±ZÓ@ò !Ü—7‘7—>‘>¤"§'¡'§,¡,¨q°%Ó"8Õ9ÜŸG™GŸL™L¨¨EÓ2EÙð !ô
"Ð)Ü'Ô)ØœNÑ*Ü*¨5Ñ1EÜŸ7™7Ÿ>™>¨%Ô0Ð0Ð0ࠐEØ ˆ=ô# 4Ô(Ùô—M’M¬&×*:Ò*:ÀÇ
Á
à ×@UÑ@UÐV\Ô@]ÙÜ N‰NÐEÀtÖ Lä" 5Ô)ÙØ J‰J˜˜e XÐ.Ö /ðS)0ñT#ÔØ €JøôM!ò    à‹Eð    úsÁ(HÈ HÈHcóH—tytjriaytjriayt    j
d«}|€t    j
dd¬«}|€iaytj stjrd}d}tjd«}nd}d    }tjd
«}    tj||«}|j«j«|d}ia|D]    }|j!|«}|€.tj"d |«rntjd |«ŒE|j%«d}tj stjrnt&j(j+|«j-dd    «d}d|j/d    «z}    |    j1|«sJ‚|dz|    t3|«dz}    n|j/d    «}    |    tvsŒ|t|    <Œ y#t$rtjd «iaYywxYw)zš
    Create a cache of the `ldconfig`-output to call it only once.
    It contains thousands of libraries and running it on every dylib is expensive.
    NÚldconfigz/usr/sbin:/sbin:/usr/bin:/bin)rz-rr>z^\s+\d+:-l(\S+)(\s.*)? => (\S+)z-pr!z^\s+(\S+)(\s.*)? => (\S+)z/Failed to execute ldconfig. Disabling LD cache.zCache generated by:z,Unrecognised line of output %r from ldconfigr;z.sorÚlib)rdrraÚis_muslÚshutilÚwhichÚ
is_freebsdÚ
is_openbsdÚreÚcompileÚ exec_commandrrrÚstripÚ
splitlinesrFÚsearchrBrrrrbÚgroupÚ
startswithr%)
roÚ ldconfig_argÚsplitlines_countÚpatternÚtextÚlineÚmrÚbnamer2s
          rrereþsþ€ôÐ!Øä ×ÒàˆØä ‡~‚~ðˆØä|‰|˜JÓ'€HØÐô—<‘< 
Ð1PÔQˆð Р؈NØ ä ×ÒœF×-Ò-ðˆ ØÐÜ—*‘*Ð?Ó@‰ðˆ ØÐÜ—*‘*Ð9Ó:ˆðÜ×"Ñ" 8¨\Ó:ˆð :‰:‹<× "Ñ "Ó $Ð%5Ð%6Ð 7€Dà€NØó(ˆà M‰M˜$Ó ˆð ˆ9äy‰yÐ.°Ô5àä—‘ÐMÈtÔTØ àx‰x‹z˜"‰~ˆÜ × Ò ¤× 1Ò 1ô—G‘G×$Ñ$ TÓ*×0Ñ0°¸Ó:¸1Ñ=ˆEؘ1Ÿ7™7 1›:Ñ%ˆDØ—?‘? 5Ô)Ð )Ð)ؘ5‘= 4¬¨E«
¨ Ð#4Ñ4‰Dà—7‘7˜1“:ˆDð ”~Ó %Ø#'ŒN˜4Ó  ñ7(øô ò܏‰ÐHÔI؈ÙðúsÂ5G>Ç> H!È H!) Ú__doc__r\r)rrvrrÚtypesrÚ PyInstallerrrÚloggingÚPyInstaller.dependrÚPyInstaller.depend.dylibrÚPyInstaller.exceptionsrÚ    getLoggerÚ__name__rrr Úbytecode_regexÚ_OPCODES_EXTENDED_ARGÚ_OPCODES_FUNCTION_GLOBALÚ_OPCODES_FUNCTION_LOADr@r-rrdre©rVrú<module>r“sððñóÛ    Û    Û ÝåÝ&Ý'Ý4Ý4à    ˆ×    Ñ    ˜8Ó    $€òð85°Xó5ðp0˜×/Ñ/ðð
×0Ñ0ñ 1ð
4 ñ  ð ×0Ñ0ñ 1ð 4ñ ð×2Ñ2ñ 3ð6ñ ð×0Ñ0ñ 1ð4ñóÐð*(¨ó(ò4Wðt€óZ(rV