
    hje                        d Z ddl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mZ ddlmZ ddlmZ d	d
lmZ dZ G d de          ZdS )zG Provide a request handler that returns a page displaying a document.

    )annotationsN)urlparse)AUTOLOAD_JS)Scriptbundle_for_objs_and_resources)script_for_render_items)
RenderItem   )SessionHandler)AutoloadJsHandlerc                  $    e Zd ZdZd Zd Zd ZdS )r   zD Implements a custom Tornado handler for the autoload JS chunk

    c                    |                      dd           |                      dd           |                      dd           d S )NzAccess-Control-Allow-Headers*zAccess-Control-Allow-MethodszPUT, GET, OPTIONSzAccess-Control-Allow-Origin)
set_header)selfs    Flib/python3.11/site-packages/bokeh/server/views/autoload_js_handler.pyset_default_headersz%AutoloadJsHandler.set_default_headers8   sH    6<<<68KLLL5s;;;;;    c           
       K   |                                   d {V }|                     dd           }|s|                     dd           d S |                     dd          }|                     dd           }|r!t          |          }|j         d	|j         }nd }|                     d
d          }	|	dk    r| j                            |          nd }
t          d |
          }t          |j
        |d          g}|                    t          t          i |||                               t          j        ||          }|                     dd           |                     |           d S )Nzbokeh-autoload-element)defaulti  z)No bokeh-autoload-element query parameter)status_codereasonzbokeh-app-path/zbokeh-absolute-urlz://	resourcesr   noneF)token	elementiduse_for_title)app_pathabsolute_url)bundler   zContent-Typezapplication/javascript)get_sessionget_argument
send_errorr   schemenetlocapplicationr   r   r	   r   addr   r   r   renderr   write)r   argskwargssession
element_idr   r    uri
server_urlresources_paramr   r!   render_itemsjss                 r   getzAutoloadJsHandler.get=   s     ((********&&'?&NN
 	OO4_O```F$$%5s$CC(()=t(LL 	<((CJ773:77JJJ++KCC>MQW>W>WD$..z:::]a	.tY??"*\abbbc

61"lXdpqqqrrsssvDDD(@AAA

2r   c                
   K   dS )zBBrowsers make OPTIONS requests under the hood before a GET requestN )r   r+   r,   s      r   optionszAutoloadJsHandler.optionsZ   s
        r   N)__name__
__module____qualname____doc__r   r4   r7   r6   r   r   r   r   3   sP         < < <
  :Q Q Q Q Qr   r   )r;   
__future__r   logging	getLoggerr8   logurllib.parser   bokeh.core.templatesr   bokeh.embed.bundler   r   bokeh.embed.elementsr   bokeh.embed.utilr	   session_handlerr   __all__r   r6   r   r   <module>rG      s     # " " " " " g!! " ! ! ! ! ! - , , , , , D D D D D D D D 8 8 8 8 8 8 ' ' ' ' ' ' , + + + + +(Q (Q (Q (Q (Q (Q (Q (Q (Q (Qr   