+
    Bi                         R t ^ RIHt ^ RIHt ^ RIHt ^RIHt	 ^RI
Ht ^RIHt RR./t. ROt ! R R	]4      t ! R R
]	4      tR t]t]tR# )z
Sends updates to a Telegram bot.

Usage:
>>> from tqdm.contrib.telegram import tqdm, trange
>>> for i in trange(10, token='{token}', chat_id='{chat_id}'):
...     ...

![screenshot](https://tqdm.github.io/img/screenshot-telegram.gif)
)getenv)warn)Session)tqdm)TqdmWarning)
MonoWorkerzgithub.com/	casperdcl
TelegramIOtqdm_telegramc                   V   a a ] tR t^t oRtRtV 3R lt]R 4       tR t	R t
RtVtV ;t# )r	   z/Non-blocking file-like IO using a Telegram Bot.zhttps://api.telegram.org/botc                   < \         SV `  4        Wn        W n        \	        4       V n        V P                  P                  V n        V P                   R# )z-Creates a new message in the given `chat_id`.N)
super__init__tokenchat_idr   session	__class____name__text
message_id)selfr   r   r   s   &&&:/usr/lib/python3.14/site-packages/tqdm/contrib/telegram.pyr   TelegramIO.__init__   s9    
yNN++	    c           	     0   \        V R 4      '       d   V P                  #  V P                  P                  V P                  RV P
                  ,          ,           RRV P                  ,           R,           RV P                  RR/R7      P                  4       pVP                  R4      R	8X  d   \        R
\        ^R7       R# VR,          R,          V n        V P                  #   \         d+   p\        P                  ! \        T4      4        Rp?R# Rp?ii ; i)_message_idz%s/sendMessager   `r   
parse_mode
MarkdownV2data
error_codei  z2Creation rate limit: try increasing `mininterval`.)
stacklevelresultr   N)hasattrr   r   postAPIr   r   r   jsongetr   r   	Exception	tqdm_autowritestr)r   reses   &  r   r   TelegramIO.message_id%   s    4''###	(,,##+djj88cDIIo3Y"L2 $ 3 4846  ww|$+I Q0 $'x=#> '''  	$OOCF##	$s   A5C   D+DDc                   V'       g   RpVP                  RR4      P                  4       pWP                  8X  d   R# V P                  pVf   R# Wn         V P	                  V P
                  P                  V P                  RV P                  ,          ,           RRV,           R,           RV P                  R	VR
R/R7      pV#   \         d+   p\        P                  ! \        T4      4        Rp?R# Rp?ii ; i)z/Replaces internal `message_id`'s text with `s`.z... Nz%s/editMessageTextr   r   r   r   r   r   r   )replacestripr   r   submitr   r%   r&   r   r   r)   r*   r+   r,   )r   sr   futurer.   s   &&   r   r+   TelegramIO.write8   s    AIIdB%%'		>__
		[[!!488.BTZZ.O#OcAgmY"JlL ! MF M  	$OOCF##	$s   A*C C7C22C7c                <    V P                  V P                  P                  V P                  RV P                  ,          ,           RV P
                  RV P                  /R7      pV#   \         d+   p\        P                  ! \        T4      4        Rp?R# Rp?ii ; i)zDeletes internal `message_id`.z%s/deleteMessager   r   r   N)r5   r   r%   r&   r   r   r   r)   r*   r+   r,   )r   r7   r.   s   &  r   deleteTelegramIO.deleteM   s}    	[[!!488.@4::.M#M|T__M ! OF M  	$OOCF##	$s   A"A& &B1BB)r   r   r   r   r   )r   
__module____qualname____firstlineno____doc__r&   r   propertyr   r+   r:   __static_attributes____classdictcell____classcell__r   __classdict__s   @@r   r	   r	      s5     9
(C ( ($*	 	r   c                   Z   a a ] tR t^Yt oRtV 3R ltV 3R ltV 3R ltV 3R ltRt	Vt
V ;t# )r
   a  
Standard `tqdm.auto.tqdm` but also sends updates to a Telegram Bot.
May take a few seconds to create (`__init__`).

- create a bot <https://core.telegram.org/bots#6-botfather>
- copy its `{token}`
- add the bot to a chat and send it a message such as `/start`
- go to <https://api.telegram.org/bot`{token}`/getUpdates> to find out
  the `{chat_id}`
- paste the `{token}` & `{chat_id}` below

>>> from tqdm.contrib.telegram import tqdm, trange
>>> for i in tqdm(iterable, token='{token}', chat_id='{chat_id}'):
...     ...
c           	        < VP                  R4      '       gT   VP                  4       p\        VP                  R\	        R4      4      VP                  R\	        R4      4      4      V n        \        SV `  ! V/ VB  R# )z
Parameters
----------
token  : str, required. Telegram token
    [default: ${TQDM_TELEGRAM_TOKEN}].
chat_id  : str, required. Telegram chat ID
    [default: ${TQDM_TELEGRAM_CHAT_ID}].

See `tqdm.auto.tqdm.__init__` for other parameters.
disabler   TQDM_TELEGRAM_TOKENr   TQDM_TELEGRAM_CHAT_IDN)r(   copyr	   popr   tgior   r   r   argskwargsr   s   &*,r   r   tqdm_telegram.__init__i   sh     zz)$$[[]F"

7F+@$AB

9f-D&EFHDI 	$)&)r   c                *  < \         SV `  ! R/ VB  V P                  pVP                  R R4      '       d.   VR ,          P	                  RR4      P	                  RR4      VR &   MRVR &   V P
                  P                  V P                  ! R/ VB 4       R# )
bar_formatNz<bar/>z	{bar:10u}z{bar}z{l_bar}{bar:10u}{r_bar} )r   displayformat_dictr(   r3   rM   r+   format_meter)r   rP   fmtr   s   &, r   rU   tqdm_telegram.display{   s    !&!77<&& #L 1 9 9+!''.ww'D  !:C		))0C01r   c                   < \         SV `  ! V/ VB  V P                  '       g   V P                  P	                  R 4       R# R# )r2   N)r   clearrH   rM   r+   rN   s   &*,r   r[   tqdm_telegram.clear   s2    t&v&|||IIOOB r   c                   < V P                   '       d   R # \        SV `	  4        V P                  '       g>   V P                  f   V P                  ^ 8X  g   V P
                  P                  4        R # R # R # )N)rH   r   closeleaveposrM   r:   )r   r   s   &r   r^   tqdm_telegram.close   sL    <<<


tzz1dhh!mII 7D
r   )rM   )r   r<   r=   r>   r?   r   rU   r[   r^   rA   rB   rC   rD   s   @@r   r
   r
   Y   s#     *$2 
 r   c                 (    \        \        V !  3/ VB # )zBShortcut for `tqdm.contrib.telegram.tqdm(range(*args), **kwargs)`.)r
   range)rO   rP   s   *,r   ttgrangerd      s    000r   N)r	   r
   rd   r   trange)r?   osr   warningsr   requestsr   autor   r*   stdr   utils_workerr   
__author____all__r	   r
   rd   re   rT   r   r   <module>rn      sZ   	    $  $k]+

G> >B6I 6r1 	r   