Ë
    úmxi.  ã                  ót   — 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«      Zy	)
é    )Úannotations)ÚPath)ÚTYPE_CHECKINGÚAny)Úcalc_md5)ÚScriptCache)ÚPageHashÚPageInfoÚPageNameÚ
ScriptPathc                  óô   — e Zd ZU dZdZded<   	 d	 	 	 	 	 	 	 dd„Zedd„«       Zedd„«       Z	edd„«       Z
edd	„«       Zedd
„«       Zedd„«       Zdd„Zdd„Z	 	 	 	 	 	 dd„Zdd„Zdd„Zd d„Zd!d"d„Zd#d„Zy)$Ú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_directoryc                óø   — || _         t        |«      | _        || _        d | _        d | _        d| _        d | _        t        j                  €0t        | j                  dz  «      j                  «       t        _	        y y )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)ÚselfÚmain_script_pathÚscript_cacheÚkwargss       úV/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/runtime/pages_manager.pyÚ__init__zPagesManager.__init__%   sy   € ð "2ˆÔÜ+3Ð4DÓ+EˆÔØ)ˆÔØ;?ˆÔ'Ø48ˆÔ Ø35ˆÔ&Ø7;ˆŒô ×,Ñ,Ð4Ü04Ø×'Ñ'¨'Ñ1ó1ç‰f‹hô Õ-ð 5ó    c                ó   — | j                   S ©N)r   ©r   s    r    r   zPagesManager.main_script_path?   ó   € à×%Ñ%Ð%r"   c                ó@   — t        | j                  «      j                  S r$   )r   r   Úparentr%   s    r    r   zPagesManager.main_script_parentC   s   € ä�D×*Ñ*Ó+×2Ñ2Ð2r"   c                ó   — | j                   S r$   )r   r%   s    r    Úmain_script_hashzPagesManager.main_script_hashG   r&   r"   c                ó   — | j                   S r$   ©r   r%   s    r    Úcurrent_page_script_hashz%PagesManager.current_page_script_hashK   s   € à×-Ñ-Ð-r"   c                ó   — | j                   S r$   )r   r%   s    r    Úintended_page_namezPagesManager.intended_page_nameO   s   € à×'Ñ'Ð'r"   c                ó   — | j                   S r$   )r   r%   s    r    Úintended_page_script_hashz&PagesManager.intended_page_script_hashS   s   € à×.Ñ.Ð.r"   c                ó   — || _         y r$   r,   ©r   Úpage_script_hashs     r    Úset_current_page_script_hashz)PagesManager.set_current_page_script_hashW   s
   € Ø)9ˆÕ&r"   c                ó4   — | j                   | j                  dœS ©N)Úscript_pathr4   )r   r   r%   s    r    Úget_main_pagezPagesManager.get_main_pageZ   s   € à×1Ñ1Ø $× 6Ñ 6ñ
ð 	
r"   c                ó    — || _         || _        y r$   )r   r   )r   r4   Ú	page_names      r    Úset_script_intentzPagesManager.set_script_intent`   s   € ð +;ˆÔ'Ø#,ˆÕ r"   c                ó<   — | j                   |xs | j                  dœS r7   )r   r*   r3   s     r    Úget_initial_active_scriptz&PagesManager.get_initial_active_scriptf   s(   € ð  ×0Ñ0Ø 0ò !%Ø×$Ñ$ñ	
ð 	
r"   c                ó�   — | j                   xs9 | j                  | j                  xs d| j                  xs dd| j                  dœiS )Nr   )r4   r;   Úiconr8   )r   r*   r1   r/   r   r%   s    r    Ú	get_pageszPagesManager.get_pagesn   sP   € ð �{‰{ò 
Ø×!Ñ!Ø$(×$BÑ$BÒ$HÀbØ!×4Ñ4Ò:¸ØØ#×4Ñ4ñ	$ð
ð 	
r"   c                ó   — || _         y r$   )r   )r   r   s     r    Ú	set_pageszPagesManager.set_pages{   s	   € Øˆ�r"   c                óh  ‡ — ‰ j                   €y ‰ j                  r@‰ j                   j                  ‰ j                  ‰ j                   j                  |d «      «      S ‰ j                  r1t	        t        ˆ fd„‰ j                   j                  «       «      d «      S ‰ j                   j                  |d «      S )Nc                ó0   •— | xr | d   ‰j                   k(  S )NÚurl_pathname)r/   )Úpr   s    €r    ú<lambda>z.PagesManager.get_page_script.<locals>.<lambda>“   s   ø€ ˜aÒR Q ~Ñ%6¸$×:QÑ:QÑ%Q€ r"   )r   r1   Úgetr/   ÚnextÚfilterÚvalues)r   Úfallback_page_hashs   ` r    Úget_page_scriptzPagesManager.get_page_script~   s¡   ø€ Ø�;‰;ÐØà×)Ò)ð —;‘;—?‘?Ø×.Ñ.Ø—‘—‘Ð 2°DÓ9óð ð ×"Ò"ô Üó
 SØ—K‘K×&Ñ&Ó(óð ó
ð 
ð �{‰{�‰Ð1°4Ó8Ð8r"   c                óR   — | j                   €y| j                   j                  |«      S )Nr   )r   Úget_bytecode)r   r8   s     r    Úget_page_script_byte_codez&PagesManager.get_page_script_byte_code›   s(   € Ø×ÑÐ%àà×!Ñ!×.Ñ.¨{Ó;Ð;r"   r$   )r   r   r   zScriptCache | Noner   r   ÚreturnÚNone)rR   r   )rR   r   )rR   r	   )rR   zPageName | None)rR   zPageHash | None)r4   r	   rR   rS   )rR   r
   )r4   r	   r;   r   rR   rS   )r4   r	   rR   úPageInfo | None)rR   údict[PageHash, PageInfo])r   rU   rR   rS   )r   )rM   r	   rR   rT   )r8   ÚstrrR   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r!   Úpropertyr   r   r*   r-   r/   r1   r5   r9   r<   r>   rA   rC   rN   rQ   © r"   r    r   r      sü   … ñð )-Ð˜+Ó,ð
 ,0ðà$ðð )ðð ð	ð
 
óð4 ò&ó ð&ð ò3ó ð3ð ò&ó ð&ð ò.ó ð.ð ò(ó ð(ð ò/ó ð/ó:ó
ð-Ø (ð-Ø5=ð-à	ó-ó
ó
óô9ô:<r"   r   N)Ú
__future__r   Úpathlibr   Útypingr   r   Ústreamlit.utilr   Ú+streamlit.runtime.scriptrunner.script_cacher   Ústreamlit.source_utilr	   r
   r   r   r   r]   r"   r    ú<module>rd      s+   ðõ #å ß %å #áÝGßNÓN÷E<ò E<r"   