idZddlmZddlmZddlmZddlmZ ddl m Z dd l m Z d d giZgd ZGd de ZGdde ZdZeZeZdS)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_telegramttgrangertrangecHeZdZdZdZfdZedZdZdZ xZ S)r z/Non-blocking file-like IO using a Telegram Bot.zhttps://api.telegram.org/botct||_||_t |_|jj|_|j dS)z-Creates a new message in the given `chat_id`.N) super__init__tokenchat_idrsession __class____name__text message_id)selfrrrs CC:\PYTHON\_runtimes\venv\Lib\site-packages\tqdm/contrib/telegram.pyrzTelegramIO.__init__sI   yy N+  ct|dr|jS |j|jd|jzzd|jzdz|jdd}| ddkrtd td dS|d d |_|jS#t$r,}tjt|Yd}~dSd}~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 ' ' $# # (,##+dj88!DIo3 $022$3348466 ww|$$++I Q000000$'x=#> '' $ $ $ OCFF # # # # # # # # # $sAB77 C-!C((C-c |sd}|dd}||jkrdS|j}|dS||_ ||jj|jd|jzzd|zdz|j |dd }|S#t$r,}tj t|Yd}~dSd}~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.write8s A IIdB   % % ' '  >> F_   F  [[ !48.BTZ.O#O!Agm $.lLL!MMFM $ $ $ OCFF # # # # # # # # # $s AB C!CCc ||jj|jd|jzz|j|jd}|S#t$r,}tj t|Yd}~dSd}~wwxYw)zDeletes internal `message_id`.z%s/deleteMessage)rrr#N) r8rr)r*rrrr-r.r/r0)rr:r2s rdeletezTelegramIO.deleteMs [[ !48.@4:.M#M!%T_MM!OOF M $ $ $ OCFF # # # # # # # # # $s?A A9 !A44A9) r __module__ __qualname____doc__r*rpropertyrr/r< __classcell__rs@rr r s|99 (C((X($*       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 :|dsk|}t|dt d|dt d|_t j|i|dS)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__iszz)$$ H[[]]F" 7F+@$A$ABB 9f-D&E&EFFHHDI $)&)))))rc 0tjdi||j}|ddr4|ddddd|d<nd|d<|j|jdi|dS)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'D   !:C  ))00C0011111rctj|i||js|jddSdS)Nr5)rclearrErJr/rKs rrVztqdm_telegram.clearsL t&v&&&| IOOB       rc|jrdSt|js-|j |jdks|jdSdSdS)Nr)rErcloseleaveposrJr<)rrs rrXztqdm_telegram.closesf <  F    tz1dh!mm I         mmr) rr=r>r?rrQrVrXrArBs@rr r Ys*****$22222     rr c*tt|fi|S)zBShortcut for `tqdm.contrib.telegram.tqdm(range(*args), **kwargs)`.)r range)rLrMs rrrs  0 0 0 00rN)r?osrwarningsrrequestsrautorr.stdr utils_workerr __author____all__r r rrrPrrres   $$$$$$$$$$$$k] + G G G>>>>>>>>B66666I666r111  r