a
    Df                     @   s   d dl mZ d dlmZmZ zd dlmZmZ W n" eyR   d dl	mZmZ Y n0 ddl
mZ ddlmZ ddlmZmZ dd	lmZ d
d Zedd Zdd Zee_ee_dS )    )contextmanager)urljoinurlparse)AutoloadJsConsumerDocConsumer   )edit_readonly   )	Resources)autoload_js_scriptserver_html_page_for_session)statec                    sZ   |   I d H }t|  }t|||jj|jj|jjd}| j	d|
 dgdI d H  d S )N)	resourcestitletemplatetemplate_variables   )   Content-Types	   text/htmlheaders)_get_sessionr
   Z
from_bokehr   r   documentr   r   r   send_responseencode)selfbodysessionr   page r   \/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/panel/io/django.py
doc_handle   s    
r    c                 c   sD  | j dd| jjd}|ds,|d7 }td|}ddg| jjd	d }t
jt
j }}| jdd d}|d ur| jddd}||d}tt
 |t
_|t
_W d    n1 s0    Y  z>d V  W tt
 |t
_|t
_W d    n1 s0    Y  n8tt
 |t
_|t
_W d    n1 s40    Y  0 d S )N	root_path /z..bokeh-absolute-urldefaultbokeh-app-path)ZscopegetreplaceZapplication_context_urlendswithr   joinstripcountr   base_urlrel_pathget_argumentr   )Zconsumerprefixr/   r0   old_urlZold_relZabs_urlapp_pathr   r   r   _session_prefix   s*    

 
$
&
r5   c              
      s   t |  |  I d H }| jdd d}|s2td| jddd}| jdd d}|rddjt|d}nd }||v}| |}t|j||j	||||d	}	W d    n1 s0    Y  g d
}
| j
d|	 |
dI d H  d S )Nzbokeh-autoload-elementr%   z)No bokeh-autoload-element query parameterr'   r#   r$   z{uri.scheme}://{uri.netloc}/)uri)absolute))s   Access-Control-Allow-Headers   *)s   Access-Control-Allow-Methodss   PUT, GET, OPTIONS)s   Access-Control-Allow-Originr8   )r   s   application/javascriptr   r   )r5   r   r1   RuntimeErrorformatr   r   r   r   tokenr   r   )r   r   r   Z
element_idr4   Zabsolute_urlZ
server_urlr7   r   Zjsr   r   r   r   autoload_handle4   s"    

$r<   N)
contextlibr   urllib.parser   r   Zbokeh_django.consumersr   r   	ExceptionZbokeh.server.django.consumersutilr   r   r
   serverr   r   r   r    r5   r<   handler   r   r   r   <module>   s   
