K idZddlmZddlmZddlmZddlmZ ddl m Z dd l m Z d d giZgd ZGd de ZGdde ZdZeZeZy)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_telegramttgrangertrangecBeZdZdZdZfdZedZdZdZ xZ S)r z/Non-blocking file-like IO using a Telegram Bot.zhttps://api.telegram.org/botct|||_||_t |_|j j|_|jy)z-Creates a new message in the given `chat_id`.N) super__init__tokenchat_idrsession __class____name__text message_id)selfrrrs [/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/tqdm/contrib/telegram.pyrzTelegramIO.__init__s=   y NN++  ct|dr |jS |jj|jd|j zzd|j zdz|jddj}|jddk(rtd td y|d d |_|jS#t$r(}tjt|Yd}~yd}~wwxYw)N _message_idz%s/sendMessage` MarkdownV2)rr parse_modedata error_codeiz2Creation rate limit: try increasing `mininterval`.r) stacklevelresultr)hasattrrrpostAPIrrrjsongetrr Exception tqdm_autowritestr)rreses rrzTelegramIO.message_id%s 4 '## # (,,##+djj88!DIIo3 $02$34846 ww|$+I Q0$'x=#> ''' $ OOCF # # $sA#B== C.C))C.c |sd}|jddj}||jk(ry|j}|y||_ |j |j j |jd|jzzd|zdz|j|dd }|S#t$r(}tjt|Yd}~yd}~wwxYw) z/Replaces internal `message_id`'s text with `s`.z... Nz%s/editMessageTextr r!)rrrr"r#)replacestriprrsubmitrr)r*rrr-r.r/r0)rsrfuturer2s rr/zTelegramIO.write8sA IIdB  % % '  > __     [[ !!488.BTZZ.O#O!Agm $.lL!MFM $ OOCF # # $s AB%% C.CCc" |j|jj|jd|jzz|j |j d}|S#t$r(}tjt|Yd}~yd}~wwxYw)zDeletes internal `message_id`.z%s/deleteMessage)rrr#N) r8rr)r*rrrr-r.r/r0)rr:r2s rdeletezTelegramIO.deleteMsy [[ !!488.@4::.M#M!%T__M!OF M $ OOCF # # $sAA B&B  B) r __module__ __qualname____doc__r*rpropertyrr/r< __classcell__rs@rr r s.9 (C(($* rr c@eZdZdZfdZfdZfdZfdZxZS)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 - copy its `{token}` - add the bot to a chat and send it a message such as `/start` - go to 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 |jdsS|j}t|jdt d|jdt d|_t ||i|y)a. 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. disablerTQDM_TELEGRAM_TOKENrTQDM_TELEGRAM_CHAT_IDN)r,copyr poprtgiorrrargskwargsrs rrztqdm_telegram.__init__isezz)$[[]F" 7F+@$AB 9f-D&EFHDI $)&)rc t|di||j}|jddr)|dj ddj dd|d<nd|d<|j j |jdi|y)N bar_formatzz {bar:10u}z{bar}z{l_bar}{bar:10u}{r_bar})rdisplay format_dictr,r6rJr/ format_meter)rrMfmtrs rrQztqdm_telegram.display{s !&! 77< & #L 1 9 9+!''.ww 'D  !:C  )))0C01rctt||i||js|jj dyy)Nr5)rclearrErJr/rKs rrVztqdm_telegram.clears0  t&v&|| IIOOB rc|jryt| |js7|j|jdk(s|j j yyy)Nr)rErcloseleaveposrJr<)rrs rrXztqdm_telegram.closesH <<    tzz1dhh!m II   7D r) rr=r>r?rrQrVrXrArBs@rr r Ys!*$2 rr c&tt|fi|S)zBShortcut for `tqdm.contrib.telegram.tqdm(range(*args), **kwargs)`.)r range)rLrMs rrrs  0 00rN)r?osrwarningsrrequestsrautorr.stdr utils_workerr __author____all__r r rrrPrrresZ $$k] + G>>B6I6r1  r