
    5i                        U d dl mZ d dlmZmZmZ d dlZd dlZ	d dl
mZ d dlmZmZ erd dlmZ  ee      Zded<    G d	 d
ej(                  j*                        Zy)    )annotations)TYPE_CHECKINGFinalcastN)
get_logger)build_safe_abspathguess_content_type)BaseComponentRegistryr   _LOGGERc                  X    e Zd Zd	dZd
dZd
dZddZddZedd       Z	edd       Z
y)ComponentRequestHandlerc                    || _         y )N)	_registry)selfregistrys     x/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/streamlit/web/server/component_request_handler.py
initializez"ComponentRequestHandler.initialize#   s	    !    c                   |j                  d      }|d   }| j                  j                  |      }|#| j                  d       | j	                  d       y dj                  |dd        }t        ||      }|#| j                  d       | j	                  d       y 	 t        |d      5 }|j                         }d d d        | j                         | j                  d| j                  |             | j                  |       y # 1 sw Y   MxY w# t        $ r] |j                  d	d
      j                  dd
      }	t        j                  d|	       | j                  d       | j	                  d       Y y w xY w)N/r   z	not foundi     	forbiddeni  rb
 z*ComponentRequestHandler: GET %s read errorz
read errorzContent-Type)splitr   get_component_pathwrite
set_statusjoinr   openreadOSErrorreplacer   	exception
set_headerget_content_typeset_extra_headers)
r   pathpartscomponent_namecomponent_rootfilenameabspathfilecontentssanitized_abspaths
             r   getzComponentRequestHandler.get&   sR   

3q::>J!JJ{#OOC  88E!"I&$^X>?JJ{#OOC 
	gt$ '99;' 	

8(=(=g(FGt$' ' 	 'b 9 A A$ K<>O JJ|$OOC 	s+   D )D:D DD A#E87E8c                    t        |      dk(  }|s|j                  d      r| j                  dd       y| j                  dd       y)zDisable cache for HTML files.

        Other assets like JS and CSS are suffixed with their hash, so they can
        be cached indefinitely.
        r   z.htmlzCache-Controlzno-cachepublicN)lenendswithr'   )r   r*   is_index_urls      r   r)   z)ComponentRequestHandler.set_extra_headersG   s;     4yA~4==1OOOZ8OOOX6r   c                x   t         j                  j                  j                  j	                         r| j                  dd       y t         j                  j                  j                  j                  | j                  j                  j                  d      x}      r| j                  dt        d|             y y )NzAccess-Control-Allow-Origin*Originstr)	streamlitwebserverroutesallow_all_cross_origin_requestsr'   is_allowed_originrequestheadersr3   r   )r   origins     r   set_default_headersz+ComponentRequestHandler.set_default_headersT   s    ==&&FFHOO93?]]!!((::ll**..x88F
 OO94v;NO
r   c                F    | j                  d       | j                          y)z+/OPTIONS handler for preflight CORS checks.   N)r    finish)r   s    r   optionszComponentRequestHandler.options\   s    r   c                    t        |       S )zuReturns the ``Content-Type`` header to be used for this request.
        From tornado.web.StaticFileHandler.
        )r	   )r/   s    r   r(   z(ComponentRequestHandler.get_content_typea   s    
 "'**r   c                    d|  S )z6Return the URL for a component file with the given ID.zcomponents/ )file_ids    r   get_urlzComponentRequestHandler.get_urlh   s     WI&&r   N)r   r
   returnNone)r*   r<   rP   rQ   )rP   rQ   )r/   r<   rP   r<   )rN   r<   rP   r<   )__name__
__module____qualname__r   r3   r)   rF   rJ   staticmethodr(   rO   rM   r   r   r   r   "   sE    "%B7P
 + + ' 'r   r   )
__future__r   typingr   r   r   tornado.webtornadostreamlit.web.server.routesr=   streamlit.loggerr   )streamlit.web.server.component_file_utilsr   r	   2streamlit.components.types.base_component_registryr
   rR   r   __annotations__r>   RequestHandlerr   rM   r   r   <module>r`      sM    # - -  " '
 XH% %I'gkk88 I'r   