B
    `q                 @   s   d dl mZ d dlmZ d dlmZ d dlZd dlmZ d dl	m
Z
mZmZmZ dd ZG d	d
 d
eZG dd deZdd ZdS )    )HTTPBadRequest)Response)view_configN)
DebugPanel)EXC_ROUTE_NAMEROOT_ROUTE_NAMESTATIC_PATHescapec             C   s   | S )N )xr
   r
   m/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/pyramid_debugtoolbar/panels/traceback.py<lambda>       r   c               @   sD   e Zd ZdZdZedZeZdd Ze	dd Z
dd	 Zd
d ZdS )TracebackPanel	tracebackz7pyramid_debugtoolbar.panels:templates/traceback.dbtmako	Tracebackc             C   s   || _ d | _d S )N)requestr   )selfr   r
   r
   r   __init__   s    zTracebackPanel.__init__c             C   s
   | j d k	S )N)r   )r   r
   r
   r   has_content   s    zTracebackPanel.has_contentc             C   s~   t | jjdd  | _}| jd k	rvt|j}| jjj}|r<dp>ddd ||t|j|j	t
dd|j	| jjj| jjd
| _| `d S )Nr   truefalsez-{2,}-)
evalexconsoleZlodgeit_urltitle	exceptionexception_type	plaintextZplaintext_cs
pdtb_token
request_id)getattrr   Zdebug_toolbarr   r	   r   registrypdtb_eval_excr   r   resubr   pdtb_iddata)r   responser   excr   r
   r
   r   process_response   s     



zTracebackPanel.process_responsec          	   C   sF   | j  }||t|t|jt|jd| j	j
d|dd |S )N)r    F)Zinclude_titler   )Zstatic_path	root_pathurlsummary)r'   copyupdateZ
static_urlr   Z	route_urlr   r   r&   r   Zrender_summary)r   r   varsr
   r
   r   render_vars7   s    

zTracebackPanel.render_varsN)__name__
__module____qualname__nametemplate_r   Z	nav_titler   propertyr   r*   r1   r
   r
   r
   r   r      s   r   c               @   sn   e Zd Zdd Zedd Zedd Zedd Zed	d
dd Z	edd
dd Z
edd
dd ZdS )ExceptionDebugViewc             C   s
   || _ d S )N)r   )r   r   r
   r
   r   r   K   s    zExceptionDebugView.__init__c             C   s.   | j jd }| j j|}|d kr*td|S )Nr    zNo history found for request.)r   	matchdictZpdtb_historygetr   )r   r    historyr
   r
   r   r<   N   s
    zExceptionDebugView.historyc             C   s"   t | jdd }|d krtd|S )Nr   zNo traceback found for request.)r!   r<   r   )r   tbr
   r
   r   r   V   s    zExceptionDebugView.tracebackc             C   s8   | j jd }x| jjD ]}|j|kr|S qW tdd S )Nframe_idzInvalid traceback frame.)r   r:   r   framesidr   )r   r>   framer
   r
   r   rA   ]   s
    
zExceptionDebugView.framezdebugtoolbar.exception)Z
route_namec             C   s(   | j }|| jdd}t|dddS )Nzutf-8replacez	text/htmli  )content_typestatus)r   Zrender_fullr   encoder   )r   r=   bodyr
   r
   r   r   e   s    zExceptionDebugView.exceptionzdebugtoolbar.sourcec             C   s   | j }| }t|ddS )Nz	text/html)rC   )rA   Zrender_sourcer   )r   rA   rF   r
   r
   r   sourcek   s    zExceptionDebugView.sourcezdebugtoolbar.executec             C   sP   | j jjjstd| j}| j jd}|d kr8td|j	|}t
|ddS )Nz/Evaluating code in stack frames is not allowed.cmdzMissing command.z	text/html)rC   )r   r"   Zparent_registryr#   r   rA   paramsr;   r   evalr   )r   rA   rH   rF   r
   r
   r   executeq   s    zExceptionDebugView.executeN)r2   r3   r4   r   r8   r<   r   rA   r   r   rG   rK   r
   r
   r
   r   r9   J   s   r9   c             C   s<   |  td |  dd |  dd | t | t d S )Nz/{request_id}/exceptionzdebugtoolbar.sourcez({request_id}/exception/source/{frame_id}zdebugtoolbar.executez*/{request_id}/exception/execute/{frame_id})Z	add_router   Zadd_debugtoolbar_panelr   scanr2   )configr
   r
   r   	includeme   s    
rN   )Zpyramid.httpexceptionsr   Zpyramid.responser   Zpyramid.viewr   r$   Zpyramid_debugtoolbar.panelsr   Zpyramid_debugtoolbar.utilsr   r   r   r	   r7   r   objectr9   rN   r
   r
   r
   r   <module>   s   95