o
    
۾ir                     @   s^   d Z ddlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
 e
eZdeddfd	d
ZdS )zBOffline FastAPI documentation support for air-gapped environments.    N)FastAPI)get_swagger_ui_html#get_swagger_ui_oauth2_redirect_html)StaticFiles)init_loggerappreturnc                    s   t  jdd}|du st |ddsdS ttjd }| s'td| dS  j	dt
t|ddd	  jd
dd fdd} j jdddd }td dS )z/Attach offline docs router if enabled via args.argsNenable_offline_docsFstaticzEStatic directory not found at %s. Offline docs will not be available.z/static)	directory)namez/docs)include_in_schemac                      s   t  j jd  jdddS )Nz - Swagger UIz/static/swagger-ui-bundle.jsz/static/swagger-ui.css)openapi_urltitleoauth2_redirect_urlswagger_js_urlswagger_css_url)r   r   r   swagger_ui_oauth2_redirect_url r   r   f/home/ubuntu/.local/lib/python3.10/site-packages/vllm/entrypoints/serve/instrumentator/offline_docs.pycustom_swagger_ui_html$   s   z-attach_router.<locals>.custom_swagger_ui_htmlc                      s   t  S )N)r   r   r   r   r   swagger_ui_redirect.   s   z*attach_router.<locals>.swagger_ui_redirectz9Offline documentation enabled with vendored static assets)getattrstatepathlibPath__file__parentexistsloggerwarningmountr   strgetr   info)r   r	   
static_dirr   r   r   r   r   attach_router   s    	
r(   )__doc__r   fastapir   fastapi.openapi.docsr   r   fastapi.staticfilesr   vllm.loggerr   __name__r!   r(   r   r   r   r   <module>   s   