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
Ë
hñúh)<ãóҗddlZddlZddlmZddlmZddlmZddlmZejrddl
m Z eje«Zej d„«ZGd„d    «Ze«Zy)
éN)Úcompat)Úisolated)Úlog)Ú    bindepend)ÚosxcóF—    ddl}ddl}    |j«}|j d«}    |j d«d}dt|dd«|j|j||dœS#t$rYywxYw#|j$rYywxYw#|j$rd}YŒ_wxYw)    a›
    Isolated-subprocess helper to retrieve the basic Tcl/Tk information:
     - tkinter_extension_file = the value of __file__ attribute of the _tkinter binary extension (path to file).
     - tcl_data_dir = path to the Tcl library/data directory.
     - tcl_version = Tcl version
     - tk_version = Tk version
     - tcl_theaded = boolean indicating whether Tcl/Tk is built with multi-threading support.
    rNz info libraryztcl_platform(threaded)TFÚ__file__)Ú    availableÚtkinter_extension_fileÚ tcl_versionÚ
tk_versionÚ tcl_threadedÚ tcl_data_dir)
ÚtkinterÚ_tkinterÚ ImportErrorÚTclÚTclErrorÚevalÚgetvarÚgetattrÚ TCL_VERSIONÚ
TK_VERSION)rrÚtclrrs     úQH:\Change_password\venv_build\Lib\site-packages\PyInstaller/utils/hooks/tcl_tk.pyÚ_get_tcl_tk_infors¿€ðÛÛð؏k‰k‹mˆð
—8‘8˜NÓ+€LðØ 
‰
Ð+Ô,؈ ð
ä")¨(°JÀÓ"EØ×+Ñ+Ø×)Ñ)Ø$Ø$ñ ðøô' òáðûð
× Ñ òÙðûð × Ñ òØŠ ðús3‚A(‹A7­B Á(    A4Á3A4Á7B    ÂB     B ÂB cón—eZdZdZdZd„Zd„Zd„Zd„Ze    d d„«Z
e    d    „«Z e    d
„«Z e    d „«Z y) Ú    TclTkInfoÚ    _tcl_dataÚ_tk_datacó—y©N©©Úselfs rÚ__init__zTclTkInfo.__init__Qs€Ø ócó—y)Nrr#r$s rÚ__repr__zTclTkInfo.__repr__Ts€Ør'cól—d|jvr t|«‚|j«t||«S)Nr
)Ú__dict__ÚAttributeErrorÚ_load_tcl_tk_infor)r%Únames  rÚ __getattr__zTclTkInfo.__getattr__Xs4€Ø ˜$Ÿ-™-Ñ 'ä  Ó&Ð &ð     ×ÑÔ ät˜TÓ"Ð"r'có¸
—tjd|«d|_d|_d|_d|_d|_d|_d|_d|_    d|_
d|_ d|_ g|_     t«}|€tj#d|«y|j%«D]\}}t'|||«Œt)d„|jj+d«ddD««|_t)d„|j
j+d«ddD««|_|jr€    |j-|j«\|_ |_ t.j0rG|j3|j«|_
|js|j5|j«t.j0r³|jr§t7j8|j«s|jj;d «rmt<j>jA|j«}t<j>jCt<j>jE|«d d«|_nlt<j>jCt<j>jE|j«d|j
d›d|j
d›«|_t<j>jCt<j>jE|j«d|jd›«|_    |jrtjd|«yt<j>jG|j«r>|xj|jI|j|jJgd¢¬«z c_ n!tj!d||j«t<j>jG|j«r>|xj|jI|j|jLgd¢¬«z c_ n!tj!d||j«t<j>jG|j«rX|xj|jI|jt<j>jO|j«¬«z c_ ytj!d||j«y#t$r!}tj!d||«Yd}~yd}~wwxYw#t$rtj!d    |d
¬ «YŒ    wxYw)Nz&%s: initializing cached Tcl/Tk info...Fz$%s: failed to obtain Tcl/Tk info: %szI%s: failed to obtain Tcl/Tk info: tkinter/_tkinter could not be imported.c3ó2K—|]}t|«–—Œy­wr"©Úint©Ú.0Úxs  rú    <genexpr>z.TclTkInfo._load_tcl_tk_info.<locals>.<genexpr>‰sèø€Ò!R¨Q¤# a§&Ñ!Rùó‚ú.éc3ó2K—|]}t|«–—Œy­wr"r2r4s  rr7z.TclTkInfo._load_tcl_tk_info.<locals>.<genexpr>Šsèø€Ò P¨A¤ Q§Ñ Pùr8z;%s: failed to determine Tcl and Tk shared library location!T)Úexc_infozTk.framework/TkÚ    ResourcesÚScriptsÚtkrérzD%s: using macOS system Tcl/Tk framework - not collecting data files.)Údemosú*.libz tclConfig.sh)ÚprefixÚexcludesz1%s: Tcl library/data directory %r does not exist!)rArBz tkConfig.shz0%s: Tk library/data directory %r does not exist!)rCz+%s: Tcl module directory %r does not exist!)(ÚloggerÚinfor
r r r rrÚ tk_data_dirÚtcl_module_dirÚis_macos_system_frameworkÚtcl_shared_libraryÚtk_shared_libraryÚ
data_filesrÚ    ExceptionÚwarningÚdebugÚitemsÚsetattrÚtupleÚsplitÚ_find_tcl_tk_shared_librariesrÚ    is_darwinÚ_check_macos_system_frameworkÚ"_warn_if_using_activetcl_or_teapotÚosxutilsÚis_framework_bundle_libÚendswithÚosÚpathÚrealpathÚjoinÚdirnameÚisdirÚ_collect_files_from_directoryÚ TCL_ROOTNAMEÚ TK_ROOTNAMEÚbasename)r%Ú tcl_tk_infoÚeÚkeyÚvalueÚtk_lib_realpaths      rr-zTclTkInfo._load_tcl_tk_infobsQ€Ü ‰ Ð<¸dÔCðˆŒØ&*ˆÔ#ØˆÔØˆŒØ!ˆÔØ ˆÔàˆÔØ"ˆÔà).ˆÔ&Ø"&ˆÔØ!%ˆÔàˆŒð    Ü*Ó,ˆKð Ð Ü L‰LÐdÐfjÔ kØ ð&×+Ñ+Ó-ò    &‰JˆCÜ D˜#˜uÕ %ð    &ô!Ñ!R°$×2BÑ2B×2HÑ2HÈÓ2MÈbÈqÐ2QÔ!RÓSˆÔÜÑ P°·±×1FÑ1FÀsÓ1KÈBÈQÐ1OÔ PÓQˆŒð × &Ò &ð sð×6Ñ6°t×7RÑ7RÓSñØÔ+ØÔ*ô×ÒØ15×1SÑ1SÐTX×TkÑTkÓ1lÔ.ð×5Ò5Ø×;Ñ;¸D×<MÑ<MÔNô × Ò  × 6Ò 6ä × -Ñ -¨d×.DÑ.DÔ Eà × #Ñ #× -Ñ -Ð.?Ô @ô !Ÿg™g×.Ñ.¨t×/EÑ/EÓFˆOä!Ÿw™wŸ|™|¬B¯G©G¯O©O¸OÓ,LÈkÐ[dÓeˆDÕ ä!Ÿw™wŸ|™|Ü—‘—‘ × 1Ñ 1Ó2ؐT—_‘_ QÑ'Ð(¨¨$¯/©/¸!Ñ*<Ð)=Ð>ó ˆDÔ ô!Ÿg™gŸl™lÜ G‰GO‰O˜D×-Ñ-Ó .ؐ$×"Ñ" 1Ñ%Ð&Ð 'ó
ˆÔð × )Ò )Ü K‰KÐ^Ð`dÕ eôw‰w}‰}˜T×.Ñ.Ô/Ø—’ 4×#EÑ#EØ×%Ñ%Ø×,Ñ,Ú?ð$Fó$ñ–ô —‘ÐRÐTXÐZ^×ZkÑZkÔläw‰w}‰}˜T×-Ñ-Ô.Ø—’ 4×#EÑ#EØ×$Ñ$Ø×+Ñ+Ú>ð$Fó$ñ–ô —‘ÐQÐSWÐY]×YiÑYiÔjôw‰w}‰}˜T×0Ñ0Ô1Ø—’ 4×#EÑ#EØ×'Ñ'ÜŸ7™7×+Ñ+¨D×,?Ñ,?Ó@ð$Fó$ñ–ô
—‘ÐLÈdÐTX×TgÑTgÕhøô_ò    Ü N‰NÐAÀ4ÈÔ KÜ ûð    ûô:ò sÜ—‘Ð\Ð^bÐmq×rð sús*Á,
TÄ'(T4Ô    T1ÔT,Ô,T1Ô4!UÕUNc󯇗|xsg}||fg}g}|rÐ|j«\}}tj|«D]¢Štˆfd„|D««rŒtjj |‰«}|r tjj |‰«n‰}tjj |«r|j||f«Œ|j||df«Œ¤|rŒÐ|S)zò
        A minimal port of PyInstaller.building.datastruct.Tree() functionality, which allows us to avoid using Tree
        here. This way, the TclTkInfo data structure can be used without having PyInstaller's config context set up.
        c3óJ•K—|]}tj‰|«–—Œy­wr")Úfnmatch)r5ÚexcludeÚentrys  €rr7z:TclTkInfo._collect_files_from_directory.<locals>.<genexpr>ùsøèø€ÒP¸GœŸ™¨¨w×7ÑPùsƒ #ÚDATA)Úpopr[ÚlistdirÚanyr\r^r`Úappend)    ÚrootrCrDÚtodoÚoutputÚ
target_dirÚsrc_pathÚ    dest_pathrns            @rraz'TclTkInfo._collect_files_from_directoryêsËø€ð ’>˜rˆàvÐˆØˆÙØ!%§¡£Ñ ˆJ˜äŸ™ JÓ/ò AäÓPÀxÔPÔQØäŸ7™7Ÿ<™<¨
°EÓ:Ù;AœBŸG™GŸL™L¨°Ô7Àu    ä—7‘7—=‘= Ô*Ø—K‘K ¨9Р5Õ6ð—M‘M 9¨h¸Ð"?Õ@ð Aòð"ˆ r'có̗d}d}tj|«D]E\}}|€Œ    tjj    |«}|j «}d|vr|}Œ?d|vsŒD|}ŒG||fS)zi
        Find Tcl and Tk shared libraries against which the _tkinter extension module is linked.
        Nrr?)rÚ get_importsr[r\rdÚlower)Útkinter_ext_fileÚtcl_libÚtk_libÚ_Úlib_pathÚlib_nameÚlib_name_lowers       rrTz'TclTkInfo._find_tcl_tk_shared_librariess~€ð
ˆØˆä$×0Ñ0Ð1AÓBò     "‰KˆAˆxØÐØô—w‘w×'Ñ'¨Ó1ˆHØ%Ÿ^™^Ó-ˆNà˜Ñ&Ø"‘ؘÒ'Ø!‘ð     "ð˜ˆÐr'có—|€yd|vS)NTz Library/Frameworks/Tcl.frameworkr#)Útcl_shared_libs rrVz'TclTkInfo._check_macos_system_frameworks€ð
Ð !Øð2°^ÐCÐCr'cóÆ—|€ytjj|d«}tjj|«syd}d}t    |dd¬«5}|j «D]E}|j «j«}|jd«rŒ3d|vrd    }d
|vrd    }|sŒB|sŒEnddd«|r|rtjd |›d «yyy#1swYŒ)xYw) a
        Check if Tcl installation is a Teapot-distributed version of ActiveTcl, and log a non-fatal warning that the
        resulting frozen application will (likely) fail to run on other systems.
 
        PyInstaller does *not* freeze all ActiveTcl dependencies -- including Teapot, which is typically ignorable.
        Since Teapot is *not* ignorable in this case, this function warns of impending failure.
 
        See Also
        -------
        https://github.com/pyinstaller/pyinstaller/issues/621
        Nzinit.tclFÚrÚutf8)Úencodingú#Ú    activetclTÚteapotz—You appear to be using an ActiveTcl build of Tcl/Tk, which PyInstaller has
difficulty freezing. To fix this, comment out all references to 'teapot' in
zP
See https://github.com/pyinstaller/pyinstaller/issues/621 for more information.) r[r\r^ÚisfileÚopenÚ    readlinesÚstripr|Ú
startswithrErN)Útcl_rootÚinit_tclÚmentions_activetclÚmentions_teapotÚfpÚlines      rrWz,TclTkInfo._warn_if_using_activetcl_or_teapot*só€ð Ð Ø ô—7‘7—<‘< ¨*Ó5ˆÜw‰w~‰~˜hÔ'Ø à"ÐØˆô(˜C¨&Ô 1ð
    °RØŸ ™ ›ò     Ø—z‘z“|×)Ñ)Ó+Ø—?‘? 3Ô'ØØ $Ñ&Ø)-Ð&ؘtÑ#Ø&*OÚ%ª/Ùð     ÷
    ñ ¡/Ü N‰Nð`à,ðbðbõ ð#2Ð ÷
    ð
    úsÁACÂ)CÂ,CÃC )NN)Ú__name__Ú
__module__Ú __qualname__rbrcr&r)r/r-Ú staticmethodrarTrVrWr#r'rrrEsw„ð€LØ€Kò òò#òFiðPòóðð8ñóðð.ñDóðDðñ+óñ+r'r)r[rlÚ PyInstallerrrrÚloggingÚPyInstaller.dependrrUÚPyInstaller.utilsrrXÚ    getLoggerr˜rEÚdecoraterrÚ
tcltk_infor#r'rú<module>r£shðó
ÛåÝ Ý&Ý(à    ×ÒÝ1à    ˆ×    Ñ    ˜8Ó    $€ð
×Ññ'óð'÷TQñQñh‹[
r'