U
    ARd                     @   sP   d dl Z d dlZd dlmZ d dlZd dlmZ e jde	ed dddZ
dS )	    N)Iterator)add_script_run_ctxIn progress...)textreturnc                 #   s
  ddl m  m ddlm  m  m ddlm  ddlm 	 " 	  t
 W 5 Q R X W 5 Q R X d}dt z8 fdd	}tt||  dV  W 5 rԈ
 dW 5 Q R X 	 " 	    W 5 Q R X W 5 Q R X X dS )
aa  Temporarily displays a message while executing a block of code.

    Parameters
    ----------
    text : str
        A message to display while executing that block

    Example
    -------

    >>> import time
    >>> import streamlit as st
    >>>
    >>> with st.spinner('Wait for it...'):
    >>>     time.sleep(5)
    >>> st.success('Done!')

    r   N)Spinner)
clean_textg?TFc                     s\   N rN  6   "   } | _d|  W 5 Q R X W 5 Q R X W 5 Q R X d S )Nspinner)#suppress_cached_st_function_warningr   Z_enqueue)Zspinner_protoZSpinnerProtocachingr   Zdisplay_messageZdisplay_message_locklegacy_cachingmessager    >/tmp/pip-unpacked-wheel-b9et7o5g/streamlit/elements/spinner.pyset_messageB   s    


zspinner.<locals>.set_message)Zstreamlit.runtime.cachingZruntimer   Z(streamlit.runtime.legacy_caching.cachingr   Zstreamlit.proto.Spinner_pb2r   Zstreamlit.string_utilr   r
   stempty	threadingLockr   Timerstart)r   Z
DELAY_SECSr   r   r   r   r	      s(    

	


r	   )r   )
contextlibr   typingr   Z	streamlitr   Zstreamlit.runtime.scriptrunnerr   contextmanagerstrr	   r   r   r   r   <module>   s   