
    h                         S r SSKrSSKJr   SSKJr  SSKJr	  SS	K
Jr  S
SS/0r/ SQr " S S\5      r " S S\	5      rS r\r\rg! \ a	    \" S5      ef = f)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)	WebClientzPlease `pip install slack-sdk`   )tqdm   )
MonoWorkerzgithub.com/	0x2b3bfa0	casperdcl)SlackIO
tqdm_slacktsranger   trangec                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )r      z,Non-blocking file-like IO using a Slack app.c                 @  > [         TU ]  5         [        US9U l        U R                  R
                  U l         U R                  R                  X R                  S9U l        g! [         a0  n[        R                  " [        U5      5        SU l         SnAgSnAff = f)z-Creates a new message in the given `channel`.)token)channeltextN)super__init__r   client	__class____name__r   chat_postMessagemessage	Exception	tqdm_autowritestr)selfr   r   er   s       D/var/www/html/env/lib/python3.13/site-packages/tqdm/contrib/slack.pyr   SlackIO.__init__   sv    e,NN++		 ;;77ii7XDL 	 OOCF#DLL	 s   (A# #
B-&BBc                 v   U(       d  SnUR                  SS5      R                  5       nXR                  :X  a  gU R                  nUc  gXl         U R	                  U R
                  R                  US   US   SU-   S-   S9nU$ ! [         a)  n[        R                  " [        U5      5         SnAgSnAff = f)	z,Replaces internal `message`'s text with `s`.z... Nr   ts`)r   r'   r   )replacestripr   r   submitr   chat_updater   r   r   r   )r    sr   futurer!   s        r"   r   SlackIO.write'   s    AIIdB%%'		>,,?		[[!8!8')BT$+DMa# ! GF
 M  	$OOCF##	$s   2B 
B8B33B8)r   r   r   )	r   
__module____qualname____firstlineno____doc__r   r   __static_attributes____classcell__r   s   @r"   r   r      s    6	      r   c                   D   ^  \ rS rSrSrU 4S jrU 4S jrU 4S jrSrU =r	$ )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: <https://api.slack.com/authentication/basics>
- 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           	        > UR                  S5      (       d  UR                  5       n[        R                  " S5      R	                  [        R
                  5        [        UR                  S[        S5      5      UR                  S[        S5      5      5      U l	        [        SUR                  SS5      5      US'   [        TU ]0  " U0 UD6  g	)
a3  
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
HTTPClientr   TQDM_SLACK_TOKENr   TQDM_SLACK_CHANNELg      ?minintervalN)getcopylogging	getLoggersetLevelWARNINGr   popr   siomaxr   r   r    argskwargsr   s      r"   r   tqdm_slack.__init__G   s     zz)$$[[]Fl+44W__E

7F+=$>?

9f-A&BCEDH %(VZZs-K$LF=!$)&)r7   c                 F  > [         TU ]  " S0 UD6  U R                  nUR                  SS 5      (       a)  US   R	                  SS5      R	                  SS5      US'   OSUS'   US   SL a  / S	QUS'   S
US'   U R
                  R                  U R                  " S0 UD65        g )N
bar_formatz<bar/>z
`{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:iP  ncols )r   displayformat_dictr@   r)   rG   r   format_meter)r    rK   fmtr   s      r"   rR   tqdm_slack.display]   s    !&!77<&& #L 1 9 9,!((/(G  !;Cw<5 3CLCLt((/3/0r7   c                    > [         TU ]  " U0 UD6  U R                  (       d  U R                  R	                  S5        g g )Nr&   )r   clearr;   rG   r   rI   s      r"   rX   tqdm_slack.cleark   s0    t&v&||HHNN2 r7   )rG   )
r   r0   r1   r2   r3   r   rR   rX   r4   r5   r6   s   @r"   r   r   ;   s    
*,1 r7   r   c                  &    [        [        U 6 40 UD6$ )z?Shortcut for `tqdm.contrib.slack.tqdm(range(*args), **kwargs)`.)r   range)rJ   rK   s     r"   r   r   q   s    eTl-f--r7   )r3   rB   osr   	slack_sdkr   ImportErrorautor   r   utils_workerr   
__author____all__r   r   r   r   rQ   r7   r"   <module>rc      s   	  8# % $k;78

@j B3 3l. 	Q  8
6
778s   A A