o
    Z¾±h.  ã                   @  sn   d dl mZ d dlmZ d dlmZmZ d dlmZ er.d dl	m
Z
 d dlmZmZmZmZ G dd„ dƒZd	S )
é    )Úannotations)ÚPath)ÚTYPE_CHECKINGÚAny)Úcalc_md5)ÚScriptCache)ÚPageHashÚPageInfoÚPageNameÚ
ScriptPathc                   @  sÒ   e Zd ZU dZdZded< 	d:d;dd„Zed<dd„ƒZed=dd„ƒZ	ed>dd„ƒZ
ed>dd„ƒZed?dd„ƒZed@dd„ƒZdAd d!„ZdBd#d$„ZdCd'd(„ZdDd*d+„ZdEd-d.„ZdFd0d1„ZdGdHd4d5„ZdId8d9„ZdS )JÚPagesManagera  
    PagesManager is responsible for managing the set of pages that make up
    the entire application. At the start we assume the main script is the
    only page. As the script runs, the main script can call `st.navigation`
    to set the set of pages that make up the app.
    Nzbool | NoneÚuses_pages_directoryÚmain_script_pathr   Úscript_cacheúScriptCache | NoneÚkwargsr   ÚreturnÚNonec                 K  sT   || _ t|ƒ| _|| _d | _d | _d| _d | _tj	d u r(t
| jd ƒ ¡ t_	d S d S )NÚ Úpages)Ú_main_script_pathr   Ú_main_script_hashÚ_script_cacheÚ_intended_page_script_hashÚ_intended_page_nameÚ_current_page_script_hashÚ_pagesr   r   r   Úmain_script_parentÚexists)Úselfr   r   r   © r    ú`/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/streamlit/runtime/pages_manager.pyÚ__init__%   s   

	ÿþÿzPagesManager.__init__c                 C  ó   | j S ©N)r   ©r   r    r    r!   r   ?   ó   zPagesManager.main_script_pathr   c                 C  s   t | jƒjS r$   )r   r   Úparentr%   r    r    r!   r   C   s   zPagesManager.main_script_parentr   c                 C  r#   r$   )r   r%   r    r    r!   Úmain_script_hashG   r&   zPagesManager.main_script_hashc                 C  r#   r$   ©r   r%   r    r    r!   Úcurrent_page_script_hashK   r&   z%PagesManager.current_page_script_hashúPageName | Nonec                 C  r#   r$   )r   r%   r    r    r!   Úintended_page_nameO   r&   zPagesManager.intended_page_nameúPageHash | Nonec                 C  r#   r$   )r   r%   r    r    r!   Úintended_page_script_hashS   r&   z&PagesManager.intended_page_script_hashÚpage_script_hashc                 C  ó
   || _ d S r$   r)   ©r   r/   r    r    r!   Úset_current_page_script_hashW   ó   
z)PagesManager.set_current_page_script_hashr	   c                 C  s   | j | jdœS ©N)Úscript_pathr/   )r   r   r%   r    r    r!   Úget_main_pageZ   s   þzPagesManager.get_main_pageÚ	page_namer
   c                 C  s   || _ || _d S r$   )r   r   )r   r/   r7   r    r    r!   Úset_script_intent`   s   
zPagesManager.set_script_intentúPageInfo | Nonec                 C  s   | j |p| jdœS r4   )r   r(   r1   r    r    r!   Úget_initial_active_scriptf   s   üz&PagesManager.get_initial_active_scriptúdict[PageHash, PageInfo]c                 C  s(   | j p| j| jp	d| jpdd| jdœiS )Nr   )r/   r7   Úiconr5   )r   r(   r.   r,   r   r%   r    r    r!   Ú	get_pagesn   s   üÿzPagesManager.get_pagesr   c                 C  r0   r$   )r   )r   r   r    r    r!   Ú	set_pages{   r3   zPagesManager.set_pagesr   Úfallback_page_hashc                   s`   ˆ j d u rd S ˆ jrˆ j  ˆ jˆ j  |d ¡¡S ˆ jr)tt‡ fdd„ˆ j  ¡ ƒd ƒS ˆ j  |d ¡S )Nc                   s   | o| d ˆ j kS )NÚurl_pathname)r,   )Úpr%   r    r!   Ú<lambda>“   s    z.PagesManager.get_page_script.<locals>.<lambda>)r   r.   Úgetr,   ÚnextÚfilterÚvalues)r   r?   r    r%   r!   Úget_page_script~   s    
þ
ú÷zPagesManager.get_page_scriptr5   Ústrc                 C  s   | j d u rdS | j  |¡S )Nr   )r   Úget_bytecode)r   r5   r    r    r!   Úget_page_script_byte_code›   s   
z&PagesManager.get_page_script_byte_coder$   )r   r   r   r   r   r   r   r   )r   r   )r   r   )r   r   )r   r+   )r   r-   )r/   r   r   r   )r   r	   )r/   r   r7   r
   r   r   )r/   r   r   r9   )r   r;   )r   r;   r   r   )r   )r?   r   r   r9   )r5   rH   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r"   Úpropertyr   r   r(   r*   r,   r.   r2   r6   r8   r:   r=   r>   rG   rJ   r    r    r    r!   r      s2   
 ý





r   N)Ú
__future__r   Úpathlibr   Útypingr   r   Ústreamlit.utilr   Ú+streamlit.runtime.scriptrunner.script_cacher   Ústreamlit.source_utilr   r	   r
   r   r   r    r    r    r!   Ú<module>   s   