
    -e                        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 ddlmZ ddlmZmZ erdd	lmZ d
Z G d de          ZdS )z

    )annotationsN)TYPE_CHECKING)
CodeRunner)Handler)PathLike)curdoc
set_curdoc)Document)ExampleHandlerc                       e Zd ZdZg dZddgZd fdZddZd Zd Z	e
dd            Ze
dd            Ze
dd            Ze
dd            Z xZS )r   zgA stripped-down handler similar to CodeHandler but that does
    some appropriate monkeypatching.

    )output_notebookoutput_filereset_outputshowsavesourcestrfilenamer   returnNonec                t    t                                                       t          ||g           | _        d S N)super__init__r   _runner)selfr   r   	__class__s      ?lib/python3.11/site-packages/bokeh/sphinxext/example_handler.pyr   zExampleHandler.__init__=   s0    !&(B77    docr
   c                   | j         rd S | j                                        }|j                            |           t                      }t          |           |                                 \  }}	 | j                            |d            | 	                    ||           t          |           d S # | 	                    ||           t          |           w xY w)Nc                     d S r    r#   r   r   <lambda>z0ExampleHandler.modify_document.<locals>.<lambda>O   s    T r   )
failedr   
new_modulemodulesaddr   r	   _monkeypatchrun_unmonkeypatch)r   r    moduleorig_curdocold_ioold_docs         r   modify_documentzExampleHandler.modify_documentA   s    ; 	F((**hh3++--	$LV\\222000{##### 000{####s   2B5 5'Cc                (   d }d }d }dd l m} dd lm} ||g}i }| j        | j        z   D ]}t          ||          ||<   |D ]8}	| j        D ]}t          |	||           | j        D ]}t          |	||           9dd lm	}
 |
j
        }||
_
        ||fS )Nc                     d S r   r#   argskws     r   _passz*ExampleHandler._monkeypatch.<locals>._passU   s    Dr   c                H    t                                          |            d S r   )r   add_root)objr4   r5   s      r   	_add_rootz.ExampleHandler._monkeypatch.<locals>._add_rootX   s     HHc"""""r   c                     t                      S r   )r   r3   s     r   _curdocz,ExampleHandler._monkeypatch.<locals>._curdoc[   s    88Or   r   )bokeh.ioiobokeh.plottingplotting_output_funcs	_io_funcsgetattrsetattrbokeh.documentdocumentr
   )r   r6   r:   r<   r>   pmodsr.   fmoddr/   s               r   r)   zExampleHandler._monkeypatchT   s   	 	 		# 	# 	#	 	 	 	""""""Aw#dn4 	' 	'AAF1II 	+ 	+C' ' 'Q&&&&^ + +Q	****+ 	#"""""*
wr   c                    dd l m} dd lm} ||g}|D ]}|D ]}t	          ||||                    dd lm} ||_        d S )Nr   )r=   r>   r?   r@   rD   rE   rF   r
   )	r   r.   r/   r>   rG   rH   rJ   rI   rK   s	            r   r+   zExampleHandler._unmonkeypatchx   s    """"""Aw 	+ 	+C + +Qq	****+ 	#"""""


r   boolc                    | j         j        S r   )r   r%   r   s    r   r%   zExampleHandler.failed   s    |""r   
str | Nonec                    | j         j        S r   )r   errorrO   s    r   rR   zExampleHandler.error   s    |!!r   c                    | j         j        S r   )r   error_detailrO   s    r   rT   zExampleHandler.error_detail   s    |((r   c                    | j         j        S r   )r   r    rO   s    r   r    zExampleHandler.doc   s    |r   )r   r   r   r   r   r   )r    r
   r   r   )r   rM   )r   rP   )__name__
__module____qualname____doc__rA   rB   r   r0   r)   r+   propertyr%   rR   rT   r    __classcell__)r   s   @r   r   r   4   s        
 GFFM I8 8 8 8 8 8$ $ $ $&" " "H   # # # X# " " " X" ) ) ) X)       X         r   r   )rY   
__future__r   logging	getLoggerrV   logtypingr   &bokeh.application.handlers.code_runnerr   "bokeh.application.handlers.handlerr   bokeh.core.typesr   bokeh.io.docr   r	   rE   r
   __all__r   r#   r   r   <module>rf      s    # " " " " " g!! !           > = = = = = 6 6 6 6 6 6 % % % % % % + + + + + + + + (''''''`  `  `  `  ` W `  `  `  `  ` r   