Ë b˜¤/XfU ãó²—dZddlZddlmZ ddlmZddlmZ dd l m Z d d d giZ gd ¢Z Gd„de «ZGd„de «Zd„ZeZeZy#e$r ed«‚wxYw)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_slackÚtsrangerÚtrangecó(‡—eZdZdZˆfd„Zd„ZˆxZS)r z,Non-blocking file-like IO using a Slack app.cóR•—tt|� «t|¬«|_|j j |_ |jj||j¬«|_ y#t$r/}tjt|««d|_ Yd}~yd}~wwxYw)z-Creates a new message in the given `channel`.)Útoken)ÚchannelÚtextN)Úsuperr Ú__init__rÚclientÚ __class__Ú__name__rÚchat_postMessageÚmessageÚ ExceptionÚ tqdm_autoÚwriteÚstr)ÚselfrrÚers €ú7/usr/lib/python3.12/site-packages/tqdm/contrib/slack.pyrzSlackIO.__init__szø€ä Œg�tÑ%Ô'Ü eÔ,ˆŒ Ø—N‘N×+Ñ+ˆŒ ð ØŸ;™;×7Ñ7ÀÈdÏiÉiÐ7ÓXˆD�LøÜò Ü �O‰OœC ›FÔ #؈D�L‰Lûð úsÁ,A.Á. B&Á7%B!Â!B&cón—|sd}|jdd«j«}||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...Ú ÚNrÚtsÚ`)rr%r) ÚreplaceÚstriprrÚsubmitrÚ chat_updaterrrr)rÚsrÚfuturer s r!rz SlackIO.write's²€á؈AØ �I‰I�d˜BÓ × %Ñ %Ó 'ˆØ �— ‘ Š>Ø Ø—,‘,ˆØ ˆ?Ø ØˆŒ ð Ø—[‘[ §¡×!8Ñ!8À'È)ÑBTØ$+¨D¡M¸¸a¹À#¹ ð!óGˆFð ˆMøôò $Ü �O‰OœC ›F× #Ñ #ûð $úsÁ 5B B4 B/Â/B4)rÚ __module__Ú __qualname__Ú__doc__rrÚ __classcell__©rs@r!r r sø„Ù6ô  öór có6‡—eZdZdZˆfd„Zˆfd„Zˆfd„ZˆxZS)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 ó–•—|jd«s¤|j«}tjd«j tj «t |jdtd««|jdtd«««|_ td|jdd««|d<tt|�6|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Ú HTTPClientrÚTQDM_SLACK_TOKENrÚTQDM_SLACK_CHANNELgø?Ú minintervalN)ÚgetÚcopyÚloggingÚ getLoggerÚsetLevelÚWARNINGr ÚpoprÚsioÚmaxrr r©rÚargsÚkwargsrs €r!rztqdm_slack.__init__Gs ø€ð�z‰z˜)Ô$Ø—[‘[“]ˆFÜ × Ñ ˜lÓ +× 4Ñ 4´W·_±_Ô EÜØ— ‘ ˜7¤FÐ+=Ó$>Ó?Ø— ‘ ˜9¤fÐ-AÓ&BÓCóEˆDŒHô%(¨¨V¯Z©Z¸ ÀsÓ-KÓ$LˆF�=Ñ !Ü Œj˜$Ñ(¨$Ð9°&Ó9r2c ó@•—tt|� d i|¤Ž|j}|j dd«r)|dj dd«j 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:iPÚncols©) rr ÚdisplayÚ format_dictr:r'rArÚ format_meter)rrEÚfmtrs €r!rKztqdm_slack.display]s©ø€Ü Œj˜$Ñ'Ñ1¨&Ò1Ø×ÑˆØ �7‰7�< Ô &Ø # LÑ 1× 9Ñ 9ؘ,ó!(ß(/©°¸Ó(Gð � Ò ð!;ˆC� Ñ Ø ˆw‰<˜5Ñ ò3ˆC�‰LàˆC�‰LØ �‰�‰Ð(�t×(Ñ(Ñ/¨3Ñ/Õ0r2có|•—tt|� |i|¤Ž|js|jj d«yy)Nr$)rr Úclearr5rArrCs €r!rPztqdm_slack.clearks3ø€Ü Œj˜$Ñ% tÐ6¨vÒ6Ø�|Š|Ø �H‰H�N‰N˜2Õ ðr2)rr-r.r/rrKrPr0r1s@r!r r ;sø„ñ ô:ô, 1÷ðr2r có&—tt|Žfi|¤ŽS)z?Shortcut for `tqdm.contrib.slack.tqdm(range(*args), **kwargs)`.)r Úrange)rDrEs r!r r qs€ä ”e˜T�lÑ - fÑ -Ð-r2)r/r<ÚosrÚ slack_sdkrÚ ImportErrorÚautorrÚ utils_workerrÚ __author__Ú__all__r r r rrJr2r!ÚrZsðñ óÝð8Ý#õ%Ý$à˜k¨;Ð7Ð 8€ Ú @€ôˆjôôB3�ô3òl.ð €Ø �øðQò8Ù Ð6Ó 7Ð7ð8ús ŽAÁA