+
    IV-j.  ã                   óŽ   € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^RIH	t	H
t
 ^RIHt RRR./t. ROt ! R	 R]4      tR
 t]t]tR# )z…
Tkinter GUI progress bar decorator for iterators.

Usage:
>>> from tqdm.tk import trange, tqdm
>>> for i in trange(10):
...     ...
N)Úwarn)ÚTqdmExperimentalWarningÚTqdmWarning)Útqdmzgithub.com/ÚrichardsheridanÚ	casperdclÚtqdm_tkc                   ó‚   a a€ ] tR t^t oRtV 3R ltR tR tR tRR lt	RR lt
R tRV 3R	 llt]R
 4       tRtVtV ;t# )r   zü
Experimental Tkinter GUI version of tqdm!

Note: Window interactivity suffers if `tqdm_tk` is not running within
a Tkinter mainloop and values are generated infrequently. In this case,
consider calling `tqdm_tk.refresh()` frequently in the Tk thread.
c                óü  <a € VP                  4       pRVR&   \        VP                  RR4      4      VR&   RV9   S n        VP	                  RR4      pVP	                  RR4      pVP	                  R	R4      S n        \        SS `  ! V/ VB  S P                  '       d   R# VfL    \        P                  pTf   \        P                  ! 4       S n        M6\        P                  ! 4       S n        M\        P                  ! V4      S n        \        R\         ^R7       S P#                  4       S n        S P                  P'                  RS P(                  4       S P                  P+                  S P,                  4       S P                  P/                  R^4       S P                  P1                  ^ V 3R l4       \        P2                  ! S P                  ^ R7      S n        \        P6                  ! S P                  4      S n        \:        P<                  ! S P                  ^R7      pVP?                  4        \:        P@                  ! VS P8                  RRRR7      pVP?                  4        \:        PB                  ! VS P4                  RR7      S n"        S PF                  e(   S PD                  PI                  S PF                  R7       MS PD                  PI                  RR7       S PD                  P?                  4        S P
                  e4   \:        PJ                  ! VRS P(                  R7      pVP?                  4        V'       d   S P                  PM                  4        R# R#   \         d    \        R
4      hi ; i)až  
This class accepts the following parameters *in addition* to
the parameters accepted by `tqdm`.

Parameters
----------
grab  : bool, optional
    Grab the input across all windows of the process.
tk_parent  : `tkinter.Wm`, optional
    Parent Tk window.
cancel_callback  : Callable, optional
    Create a cancel button and set `cancel_callback` to be called
    when the cancel or window close button is clicked.
TÚguiÚdisableFÚleaveÚgrabÚ	tk_parentNÚcancel_callbackz9`tk_parent` required when using `tkinter.NoDefaultRoot()`zGUI is experimental/alpha©Ú
stacklevelÚWM_DELETE_WINDOWú-topmostc                  ó<   <€ S P                   P                  R ^ 4      # )r   )Ú
_tk_windowÚwm_attributes©Úselfs   €ÚX/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/tqdm/tk.pyÚ<lambda>Ú"tqdm_tk.__init__.<locals>.<lambda>P   s   ø€ ¨¯©×)FÑ)FÀzÐSTÔ)Uó    )Úvalue)ÚpaddingiX  Úcenter)ÚtextvariableÚ
wraplengthÚanchorÚjustifyiÂ  )ÚvariableÚlength)ÚmaximumÚindeterminate)ÚmodeÚCancel)ÚtextÚcommand)'ÚcopyÚboolÚgetÚ_warn_leaveÚpopÚ_cancel_callbackÚsuperÚ__init__r   ÚtkinterÚ_default_rootÚAttributeErrorÚTkr   ÚToplevelr   r   Ú_tk_dispatching_helperÚ_tk_dispatchingÚprotocolÚcancelÚwm_titleÚdescr   ÚafterÚ	DoubleVarÚ	_tk_n_varÚ	StringVarÚ_tk_text_varÚttkÚFrameÚpackÚLabelÚProgressbarÚ_tk_pbarÚtotalÚ	configureÚButtonÚgrab_set)	r   ÚargsÚkwargsr   r   Ú
pbar_frameÚ	_tk_labelÚ
_tk_buttonÚ	__class__s	   f*,     €r   r4   Útqdm_tk.__init__!   s›  ù€ ð —‘“ˆØˆˆu‰ä  §¡¨I°uÓ!=Ó>ˆˆyÑØ" fÑ,ˆÔØ�z‰z˜& %Ó(ˆØ—J‘J˜{¨DÓ1ˆ	Ø &§
¡
Ð+<¸dÓ CˆÔÜ‰Ò˜$Ð) &Ò)à�<�<ˆ<ÙàÒðQÜ#×1Ñ1�	ð Ò Ü")§*¢*£,�•ä")×"2Ò"2Ó"4�•ä%×.Ò.¨yÓ9ˆDŒOäÐ(Ô*AÈaÕPØ#×:Ñ:Ó<ˆÔà�‰× Ñ Ð!3°T·[±[ÔAØ�‰× Ñ  §¡Ô+Ø�‰×%Ñ% j°!Ô4Ø�‰×Ñ˜aÔ!UÔVÜ ×*Ò*¨4¯?©?À!ÔDˆŒÜ#×-Ò-¨d¯o©oÓ>ˆÔÜ—Y’Y˜tŸ™¸Ô:ˆ
Ø�‰ÔÜ—I’I˜j°t×7HÑ7HØ),°XÀxôQˆ	à�‰ÔÜŸšØ §¡¸ô=ˆŒà�:‰:Ò!Ø�M‰M×#Ñ#¨D¯J©JÐ#Õ7à�M‰M×#Ñ#¨Ð#Ô9Ø�‰×ÑÔØ× Ñ Ò,ÜŸš J°XÀtÇ{Á{ÔSˆJØ�O‰OÔßØ�O‰O×$Ñ$Ö&ñ øôE "ô QÜ$ØOóQð QðQús   Â$M$ Í$M;c                óÔ  a € S P                   '       d   R # RS n         S P                  4       ;_uu_ 4        S P                  P                  S 4       R R R 4       V 3R lpS P                  P                  RV4       S P                  '       g
   V! 4        R # S P                  '       g.   S P                  '       d   \        R\        ^R7       V! 4        R # R #   + '       g   i     LŽ; i)NTc                  óÄ   <€ S P                   P                  R S P                   P                  4       S P                  '       g   S P                   P	                  4        R# R# )ÚidleN)r   r@   Údestroyr;   Úupdater   s   €r   Ú_closeÚtqdm_tk.close.<locals>._closen   sB   ø€ Ø�O‰O×!Ñ! &¨$¯/©/×*AÑ*AÔBØ×'×'Ð'Ø—‘×&Ñ&Ö(ñ (r   r   z-leave flag ignored if not in tkinter mainloopr   )r   Úget_lockÚ
_instancesÚremover   r<   r   r;   r0   r   r   )r   r[   s   f r   ÚcloseÚtqdm_tk.closee   sž   ø€ Ø�<�<ˆ<ÙàˆŒà�]‰]�_�_Ø�O‰O×"Ñ" 4Ô(÷ õ	)ð
 	�‰× Ñ Ð!3°VÔ<ð �z�zˆzÙŽHØ×%×%Ð%Ø××ÐÜÐDÜ ¨Qõ0áŽHñ	 &÷ �_ús   µCÃC'	c                ó   € R # ©N© )r   Ú_Ú__s   &*,r   ÚclearÚtqdm_tk.clear   s   € Ùr   c                óÈ  € V P                   P                  V P                  4       V P                  pVR ,          ;'       g    RP	                  RR4      VR &   V P
                  ! R/ VB pRV9   d)   RP                  \        P                  ! RV^R7      4      pV P                  P                  V4       V P                  '       g   V P                  P                  4        R# R# )	Ú
bar_formatz{l_bar}<bar/>{r_bar}z{bar}z<bar/>Ú z\|?<bar/>\|?)ÚmaxsplitNrd   )rB   ÚsetÚnÚformat_dictÚreplaceÚformat_meterÚjoinÚreÚsplitrD   r;   r   rZ   )r   re   rf   ÚdÚmsgs   &*,  r   ÚdisplayÚtqdm_tk.display‚   s³   € Ø�‰×Ñ˜4Ÿ6™6Ô"Ø×Ñˆà˜\�?×DÐDÐ.D×MÑMØ�Xóˆˆ,‰à×ÒÑ$ !Ñ$ˆØ�sŒ?Ø—'‘'œ"Ÿ(š( ?°CÀ!ÔDÓEˆCØ×Ñ×Ñ˜cÔ"Ø×#×#Ð#Ø�O‰O×"Ñ"Ö$ñ $r   c                ó(   € V P                  W4       R # rc   )Úset_description_str©r   r?   Úrefreshs   &&&r   Úset_descriptionÚtqdm_tk.set_description�   s   € Ø× Ñ  Ö/r   c                óà   € Wn         V P                  '       gV   V P                  P                  V4       V'       d1   V P                  '       g   V P                  P                  4        R # R # R # R # rc   )r?   r   r   r>   r;   rZ   r{   s   &&&r   rz   Útqdm_tk.set_description_str’   sL   € ØŒ	Ø�|�|ˆ|Ø�O‰O×$Ñ$ TÔ*ß˜t×3×3Ð3Ø—‘×&Ñ&Ö(ñ  4‰wñ r   c                ób   € V P                   e   V P                  4        V P                  4        R# )zN
`cancel_callback()` followed by `close()`
when close/cancel buttons clicked.
N)r2   r`   r   s   &r   r=   Útqdm_tk.cancel™   s%   € ð
 × Ñ Ò,Ø×!Ñ!Ô#Ø�
‰
Žr   c                óÊ   <€ \        V R4      '       d@   Vf   V P                  P                  ^dRR7       MV P                  P                  VRR7       \        SV `  VR7       R# )z€
Resets to 0 iterations for repeated use.

Parameters
----------
total  : int or float, optional. Total to use for the new bar.
rJ   Nr(   )r'   r)   Údeterminate)rK   )ÚhasattrrJ   rL   r3   Úreset)r   rK   rT   s   &&€r   r†   Útqdm_tk.reset¢   sS   ø€ ô �4˜×$Ò$ØŠ}Ø—‘×'Ñ'°¸/Ð'ÕJà—‘×'Ñ'°¸MÐ'ÔJÜ‰‰˜EˆÖ"r   c                 ó*  € \         P                  P                  \         P                  P                  P                  0p \        P
                  ! 4       P                  4        F-  pV'       g   K  VP                  V 9   d    R# VP                  pK,  	  R# )z3determine if Tkinter mainloop is dispatching eventsTF)	r5   ÚmainloopÚ__code__ÚMiscÚsysÚ_current_framesÚvaluesÚf_codeÚf_back)ÚcodesÚframes     r   r:   Útqdm_tk._tk_dispatching_helper±   sh   € ô ×!Ñ!×*Ñ*¬G¯L©L×,AÑ,A×,JÑ,JÐKˆÜ×(Ò(Ó*×1Ñ1Ö3ˆEß‘%Ø—<‘< 5Ô(ÚØŸ™’ñ	 4ñ
 r   )	r2   r;   rB   rJ   rD   r   r0   r?   r   )NTrc   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r4   r`   rg   rw   r}   rz   r=   r†   Ústaticmethodr:   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rT   Ú__classdict__s   @@r   r   r      sM   ù‡ € ñõB'òHò4ò%ô0ô)ò÷#ð ñó ÷ð r   c                 ó(   € \        \        V !  3/ VB # )z4Shortcut for `tqdm.tk.tqdm(range(*args), **kwargs)`.)r   Úrange)rO   rP   s   *,r   Úttkranger    ½   s   € ä”5˜$‘<Ñ* 6Ñ*Ð*r   )r   r    r   Útrange)r˜   rs   rŒ   r5   Útkinter.ttkrE   Úwarningsr   Ústdr   r   r   Ústd_tqdmÚ
__author__Ú__all__r   r    r¡   rd   r   r   Ú<module>r¨      sV   ðñó 
Û 
Û Ý Ý ç 5Ý !àÐ/°Ð=Ð>€
Ú
3€ôdˆhô dòN+ð €Ø	‚r   