U
    ˜ARd£  ã                   @   s€   d dl mZ d dlZd dlZd dlmZ eeef eeef edœdd„Zeeef eeef ddœdd	„Z	d
d„ Z
dd„ ZdS )é    )ÚDictN)ÚConfigOption)Úold_optionsÚnew_optionsÚreturnc                 C   s@   |   ¡ D ]2}| d¡sq| | j}|| j}||kr dS qdS )zpReturn True if and only if an option in the server section differs
    between old_options and new_options.
    ÚserverTF)ÚkeysÚ
startswithÚvalue)r   r   Úopt_nameZold_valÚnew_val© r   ú9/tmp/pip-unpacked-wheel-b9et7o5g/streamlit/config_util.pyÚserver_option_changed   s    


r   )Úsection_descriptionsÚconfig_optionsr   c                    s  ddh}g ‰ ˆ   tdƒ¡ ‡ fdd„}‡ fdd„}‡ fdd	„}‡ fd
d„}‡ fdd„}|  ¡ D ]¢\}}	||krrq^|ƒ  |d| ƒ |ƒ  | ¡ D ]l\}
}|j|kr¨q’|jdkr´q’| ¡ r¾q’|j d¡d }
t|j	ƒ}t
|ƒD ]*\}}|dkrþ|d| ƒ qà|d| ƒ qàt d|ji¡}|dd…  ¡ }t|ƒdkrH|d| ƒ n |jrœ|dƒ |dtjddd ƒ |dd t|jƒ¡ ƒ |d|j ƒ |dƒ |jtjk}|r¼|d|j ƒ t |
|ji¡}t|ƒdkrèd|
› d }n|sød|› }||ƒ q’q^t d ˆ ¡¡ dS )!z8Print the given config sections/options to the terminal.Ú_testÚuizh
        # Below are all the sections and options you can have in
        ~/.streamlit/config.toml.
    c                    s   ˆ   tj| dd¡ d S )NT)Úbold©ÚappendÚclickÚstyle©Útext©Úoutr   r   Úappend_desc:   s    z show_config.<locals>.append_descc                    s   ˆ   t | ¡¡ d S )Nr   r   r   r   r   Úappend_comment=   s    z#show_config.<locals>.append_commentc                    s   ˆ   tj| ddd¡ d S )NTÚgreen)r   Úfgr   r   r   r   r   Úappend_section@   s    z#show_config.<locals>.append_sectionc                    s   ˆ   tj| dd¡ d S )Nr   ©r    r   r   r   r   r   Úappend_settingC   s    z#show_config.<locals>.append_settingc                      s   ˆ   d¡ d S )NÚ )r   r   r   r   r   Úappend_newlineF   s    z#show_config.<locals>.append_newlinez[%s]ÚhiddenÚ.é   r   z# %sÚdefaulté
   Nz# Default: %sú#z# zDEPRECATED.Zyellowr"   Ú
z-# This option will be removed on or after %s.z# The value below was set in %sz =
)r   Ú_cleanÚitemsÚsectionZ
visibilityÚ
is_expiredÚkeyÚsplitÚ_clean_paragraphsÚdescriptionÚ	enumerateÚtomlÚdumpsZdefault_valÚstripÚlenÚ
deprecatedr   r   ÚjoinZdeprecation_textZexpiration_dateZwhere_definedr   ZDEFAULT_DEFINITIONr
   Zecho)r   r   ZSKIP_SECTIONSr   r   r!   r#   r%   r/   Zsection_descriptionr1   ÚoptionZdescription_paragraphsÚiÚtxtZtoml_defaultZoption_is_manually_setZtoml_settingr   r   r   Úshow_config)   st    ÿÿ	


ÿÿÿ
ÿ
r?   c                 C   s   d  |  ¡ ¡ ¡ S )z+Replace all whitespace with a single space.ú )r;   r2   r8   )r>   r   r   r   r-      s    r-   c                 C   s   |   d¡}dd„ |D ƒ}|S )Nz

c                 S   s   g | ]}t |ƒ‘qS r   )r-   )Ú.0Úxr   r   r   Ú
<listcomp>”   s     z%_clean_paragraphs.<locals>.<listcomp>)r2   )r>   Z
paragraphsZcleaned_paragraphsr   r   r   r3   ’   s    
r3   )Útypingr   r   r6   Zstreamlit.config_optionr   ÚstrÚboolr   r?   r-   r3   r   r   r   r   Ú<module>   s   
 
þ

ýd