
    ȯei.                    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       a/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/streamlit/runtime/pages_manager.py__init__zPagesManager.__init__%   sy     "2+34D+E);?'48 35&7; ,,404'''11fh - 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$Hb!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RQ~%6$:Q:Q%Q r"   )r   r1   getr/   nextfiltervalues)r   fallback_page_hashs   ` r    get_page_scriptzPagesManager.get_page_script~   s    ;;)) ;;??.. 2D9  "" 
 SKK&&( 
 
 {{14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"   