U
    /e                     @  s   d dl mZ d dlZeeZd dlmZ d dlm	Z	 d dl
mZ d dlmZ ddlmZ d	d
lmZ d	dlmZ ddlmZ dZG dd deZdS )    )annotationsN)	Namespace)Dict)settings)basicConfig   )Application   )
Subcommand)report_server_init_errors   )base_serve_args)Staticc                   @  s,   e Zd ZdZdZdZeZdddddZd	S )
r   z/ Subcommand to launch the Bokeh static server. ZstaticzCServe bokehjs' static assets (JavaScript, CSS, images, fonts, etc.)r   None)argsreturnc           	   	     s   t  j jd t j}|dkr*tj}td	|  j
dk	rbtd j
  t j
 ddlm} i }ddg} fd	d
|D }tf |L ||f|}d}|jdk	r|jdkrd|j }td|j| |  W 5 Q R X dS )z


        )formatfilenameNZbokehzUsing override config file: r   )Serverportaddressc                   s(   i | ] }t  |d d k	r|t  |qS )N)getattr).0keyr    D/tmp/pip-unpacked-wheel-f5fndrjf/bokeh/command/subcommands/static.py
<dictcomp>Q   s       z!Static.invoke.<locals>.<dictcomp> z	 address z)Starting Bokeh static server on port %d%s)r   Z
log_formatZlog_filer   Zpy_log_level	log_levelloggingINFO	getLoggersetLevelZ
use_configloginfoZload_configZbokeh.server.serverr   r   r   r   Zrun_until_shutdown)	selfr   r   r   ZapplicationsZ_allowed_keysZserver_kwargsserverZaddress_stringr   r   r   invoke8   s&    

zStatic.invokeN)	__name__
__module____qualname____doc__namehelpr   r   r(   r   r   r   r   r   .   s
   r   )
__future__r   r    r"   r)   r$   argparser   typingr   Zbokeh.settingsr   Zbokeh.util.logconfigr   Zapplicationr   
subcommandr
   utilr   Zserver   __all__r   r   r   r   r   <module>   s   
