σ
mάJ]c           @` sγ   d  Z  d d l m Z m Z m Z m Z d d l Z e j 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 d e f d     YZ d S(   uG    Provide a request handler that returns a page displaying a document.

i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   urlparse(   t   gen(   t   AUTOLOAD_JS(   t   encode_utf8(   t   bundle_all_models(   t   script_for_render_items(   t
   RenderItemi   (   t   SessionHandleru   AutoloadJsHandlert   AutoloadJsHandlerc           B` s    e  Z d  Z e j d    Z RS(   uD    Implements a custom Tornado handler for the autoload JS chunk

    c         o` s  |  j    V} |  j d d d  } | sB |  j d d d d  d  S|  j d d d } |  j d	 d d  } | r d
 j d t |   } n d  } |  j j |  } t   p± d }	 t	 d | j
 d | d t  g }
 t d  |
 d | d | } |  j d d  } | d k rg  } g  } n | j } | j } t j d | d | d | j |	 | g d | j d |  } |  j d d  |  j t |   d  S(   Nu   bokeh-autoload-elementt   defaultt   status_codei  t   reasonu)   No bokeh-autoload-element query parameteru   bokeh-app-pathu   /u   bokeh-absolute-urlu   {uri.scheme}://{uri.netloc}t   uriu    t	   sessionidt	   elementidt   use_for_titlet   app_patht   absolute_urlu	   resourcesu   defaultu   nonet   js_urlst   css_urlst   js_rawt   css_rawu   Content-Typeu   application/javascript(   t   get_sessiont   get_argumentt   Nonet
   send_errort   formatR   t   applicationt	   resourcesR   R
   t   idt   FalseR	   t   js_filest	   css_filesR   t   renderR   t   css_raw_strt
   set_headert   writeR   (   t   selft   argst   kwargst   sessiont
   element_idR   R   t
   server_urlR    t   bundlet   render_itemst   scriptt   resources_paramR   R   t   js(    (    sE   lib/python2.7/site-packages/bokeh/server/views/autoload_js_handler.pyt   get:   s8    !						(   t   __name__t
   __module__t   __doc__R   t	   coroutineR4   (    (    (    sE   lib/python2.7/site-packages/bokeh/server/views/autoload_js_handler.pyR   6   s   (   u   AutoloadJsHandler(   R7   t
   __future__R    R   R   R   t   loggingt	   getLoggerR5   t   logt   six.moves.urllib.parseR   t   tornadoR   t   bokeh.core.templatesR   t   bokeh.util.stringR   t   bokeh.util.compilerR   t   bokeh.embed.elementsR	   t   bokeh.embed.utilR
   t   session_handlerR   t   __all__R   (    (    (    sE   lib/python2.7/site-packages/bokeh/server/views/autoload_js_handler.pyt   <module>	   s   "	