K idZddlZddlmZ ddlmZddlmZ dd l m Z d d d giZ gd Z Gdde ZGdde ZdZeZeZy#e$r edwxYw)z Sends updates to a Slack app. Usage: >>> from tqdm.contrib.slack import tqdm, trange >>> for i in trange(10, token='{token}', channel='{channel}'): ... ... ![screenshot](https://tqdm.github.io/img/screenshot-slack.png) N)getenv) WebClientzPlease `pip install slack-sdk`)tqdm) MonoWorkerz github.com/ 0x2b3bfa0 casperdcl)SlackIO tqdm_slacktsrangertrangec(eZdZdZfdZdZxZS)r z,Non-blocking file-like IO using a Slack app.cJt|t||_|jj |_ |jj||j |_y#t$r/}tjt|d|_Yd}~yd}~wwxYw)z-Creates a new message in the given `channel`.)token)channeltextN) super__init__rclient __class____name__rchat_postMessagemessage Exception tqdm_autowritestr)selfrrers X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/tqdm/contrib/slack.pyrzSlackIO.__init__sx e, NN++  ;;77dii7XDL OOCF #DLL s,A** B"3%BB"cn|sd}|jddj}||jk(ry|j}|y||_ |j |j j |d|dd|zdz}|S#t$r(}tjt|Yd}~yd}~wwxYw) z,Replaces internal `message`'s text with `s`.z... Nrts`)rr%r) replacestriprrsubmitr chat_updaterrrr)rsrfuturer s r!rz SlackIO.write'sA IIdB  % % '  > ,, ?   [[!8!8')BT$+DMa# !GF M $ OOCF # # $s 5B B4 B//B4)r __module__ __qualname____doc__rr __classcell__rs@r!r r s6  r c6eZdZdZfdZfdZfdZxZS)r a Standard `tqdm.auto.tqdm` but also sends updates to a Slack app. May take a few seconds to create (`__init__`). - create a Slack app with the `chat:write` scope & invite it to a channel: - copy the bot `{token}` & `{channel}` and paste below >>> from tqdm.contrib.slack import tqdm, trange >>> for i in tqdm(iterable, token='{token}', channel='{channel}'): ... ... c |jds|j}tjdj tj t |jdtd|jdtd|_ td|jdd|d<t|0|i|y ) a Parameters ---------- token : str, required. Slack token [default: ${TQDM_SLACK_TOKEN}]. channel : int, required. Slack channel [default: ${TQDM_SLACK_CHANNEL}]. mininterval : float, optional. Minimum of [default: 1.5] to avoid rate limit. See `tqdm.auto.tqdm.__init__` for other parameters. disable HTTPClientrTQDM_SLACK_TOKENrTQDM_SLACK_CHANNELg? minintervalN) getcopylogging getLoggersetLevelWARNINGr poprsiomaxrrrargskwargsrs r!rztqdm_slack.__init__Gszz)$[[]F   l + 4 4W__ E 7F+=$>? 9f-A&BCEDH%(VZZ s-K$LF= ! $)&)r2c 8t|d i||j}|jddr)|dj ddj dd|d<nd|d<|ddur gd |d<d |d <|j j |jd i|y) N bar_formatzz `{bar:10}`z{bar}z `{bar:10u}`z{l_bar}`{bar:10}`{r_bar}asciiF)z:black_square:z:small_blue_diamond:z:large_blue_diamond:z:large_blue_square:iPncols)rdisplay format_dictr:r'rAr format_meter)rrEfmtrs r!rKztqdm_slack.display]s !&! 77< & #L 1 9 9,!((/(G  !;C  w<5 3CLCL (t((/3/0r2ctt||i||js|jj dyy)Nr$)rclearr5rArrCs r!rPztqdm_slack.clearks0  t&v&|| HHNN2 r2)rr-r.r/rrKrPr0r1s@r!r r ;s *, 1r2r c&tt|fi|S)z?Shortcut for `tqdm.contrib.slack.tqdm(range(*args), **kwargs)`.)r range)rDrEs r!r r qs eTl -f --r2)r/r<osr slack_sdkr ImportErrorautorr utils_workerr __author____all__r r r rrJr2r!rZs 8#%$k;7 8 @jB33l.  Q8 6 778s AA