o
    h                     @  sr   U d dl mZ d dlZd dlmZ d dlmZ d dlZd dl	m
Z
 e
eZded< dZd	ZG d
d dejjZdS )    )annotationsN)Path)Final)
get_loggerr   _LOGGERi  )z.jpgz.jpegz.pngz.gifz.webpz.otfz.ttfz.woffz.woff2z.pdfz.xmlz.jsonc                      s@   e Zd Zdd fdd	Zd fddZdd ZdddZ  ZS )AppStaticFileHandlerNpathstrdefault_filename
str | NonereturnNonec                   s   t  || d S N)super
initialize)selfr   r
   	__class__ `/var/www/vscode/kcb/lib/python3.10/site-packages/streamlit/web/server/app_static_file_handler.pyr   5   s   zAppStaticFileHandler.initializerootabsolute_pathc                   s   t j|}t ||}t j|rtjdt j	||g|kr.t
d tjdt j|rIt j|tkrItjjddt ddd|S )Ni  z>Serving files outside of the static directory is not supportedz.File is too large, its size should not exceed z byteszFile is too large)reason)osr   abspathr   validate_absolute_pathisdirtornadoweb	HTTPError
commonpathr   warningexistsgetsizeMAX_APP_STATIC_FILE_SIZE)r   r   r   	full_pathret_valr   r   r   r   8   s(   
z+AppStaticFileHandler.validate_absolute_pathc                 C  s   |  dd d S )NzAccess-Control-Allow-Origin*)
set_header)r   r   r   r   set_default_headersU   s   z(AppStaticFileHandler.set_default_headersc                 C  s*   t |jtvr| dd | dd d S )NzContent-Typez
text/plainzX-Content-Type-Optionsnosniff)r   suffixSAFE_APP_STATIC_FILE_EXTENSIONSr(   )r   r   r   r   r   set_extra_headersZ   s   z&AppStaticFileHandler.set_extra_headersr   )r   r	   r
   r   r   r   )r   r	   r   r	   r   r   )r   r	   r   r   )__name__
__module____qualname__r   r   r)   r-   __classcell__r   r   r   r   r   4   s
    r   )
__future__r   r   pathlibr   typingr   tornado.webr   streamlit.loggerr   r.   r   __annotations__r$   r,   r   StaticFileHandlerr   r   r   r   r   <module>   s   