HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/tqdm/contrib/__pycache__/slack.cpython-310.pyc
o

���g��@s�dZddlZddlmZzddlmZWneyed��wddlmZ	dd	l
mZd
ddgiZgd
�Z
Gdd�de�ZGdd�de	�Zdd�ZeZeZdS)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�)�
MonoWorkerzgithub.com/�	0x2b3bfa0�	casperdcl)�SlackIO�
tqdm_slack�tsranger�trangecs(eZdZdZ�fdd�Zdd�Z�ZS)r
z,Non-blocking file-like IO using a Slack app.c
svt���t|d�|_|jj|_z
|jj||jd�|_WdSt	y:}zt
�t|��d|_WYd}~dSd}~ww)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)�selfrr�e�r��=/usr/local/lib/python3.10/dist-packages/tqdm/contrib/slack.pyrs

��zSlackIO.__init__c
Cs�|sd}|�dd���}||jkrdS|j}|durdS||_z|j|jj|d|dd|dd�}W|StyO}zt�	t
|��WYd}~dSd}~ww)	z,Replaces internal `message`'s text with `s`.z...�
�Nr�ts�`)rr#r)�replace�striprr�submitr�chat_updaterrrr)r�sr�futurerrrr r's$
����z
SlackIO.write)r�
__module__�__qualname__�__doc__rr�
__classcell__rrrr r
sr
cs8eZdZdZ�fdd�Z�fdd�Z�fdd�Z�ZS)ra�
    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}'):
    ...     ...
    cst|�d�s/|��}t�d��tj�t|�dtd��|�dtd���|_	t
d|�dd��|d<t�j|i|��d	S)
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�
HTTPClientr�TQDM_SLACK_TOKENr�TQDM_SLACK_CHANNELg�?�minintervalN)
�get�copy�logging�	getLogger�setLevel�WARNINGr
�popr�sio�maxrr�r�args�kwargsrrr rGs

�ztqdm_slack.__init__cs�t�jdi|��|j}|�dd�r!|d�dd��dd�|d<nd|d<|ddur5gd	�|d<d
|d<|j�|jdi|���dS)
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�ncolsr)r�display�format_dictr4r%r;r�format_meter)rr?�fmtrrr rC]s��ztqdm_slack.displaycs,t�j|i|��|js|j�d�dSdS)Nr")r�clearr/r;rr=rrr rGks�ztqdm_slack.clear)rr+r,r-rrCrGr.rrrr r;s
rcOstt|�fi|��S)z?Shortcut for `tqdm.contrib.slack.tqdm(range(*args), **kwargs)`.)r�range)r>r?rrr rqsr)r-r6�osr�	slack_sdkr�ImportError�autorr�utils_workerr�
__author__�__all__r
rrr
rrrr �<module>s"
�!6