
    7 fZ                         d Z ddl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	 Z ed
          d             Z G d d          ZdS )z
Debug Toolbar middleware
    N)	lru_cache)settings)import_string)DebugToolbar)clear_stack_trace_caches)z	text/htmlzapplication/xhtml+xmlc                 f    t           j        o%| j                            d          t           j        v S )zT
    Default function to determine whether to show the toolbar on a given page.
    REMOTE_ADDR)r   DEBUGMETAgetINTERNAL_IPS)requests    N/var/www/equiseq/venv/lib/python3.11/site-packages/debug_toolbar/middleware.pyshow_toolbarr      s)     >Vgl..}==AVVV    )maxsizec                      t          j                    d         } t          | t                    rt	          |           S | S )NSHOW_TOOLBAR_CALLBACK)dt_settings
get_config
isinstancestrr   )func_or_paths    r   get_show_toolbarr      s>     )++,CDL,$$ \***r   c                   4    e Zd ZdZd Zd Zed             ZdS )DebugToolbarMiddlewarezm
    Middleware to set up Debug Toolbar on incoming request and render toolbar
    on outgoing response.
    c                     || _         d S )N)get_response)selfr   s     r   __init__zDebugToolbarMiddleware.__init__*   s    (r   c                    t                      } ||          rt          j        |          r|                     |          S t          || j                  }|j        D ]}|                                 	 |                    |          }t                       t          |j                  D ]}|	                                 n># t                       t          |j                  D ]}|	                                 w xY wt          |j                  D ].}|
                    ||           |                    ||           /|                                }|                     ||j                                                  D ]\  }}||j        |<   |                    dd          }	|                    dd                              d          d         }
t%          |dd          s|	dk    s	|
t&          vr|S |j                            |j                  }t/          j                    d         }t3          j        |          }t3          j        ||t2          j        	          }t9          |          d
k    rE|dxx         |z  cc<   |                    |          |_        d|v rt9          |j                  |d<   |S )NzContent-Encoding zContent-Type;r   	streamingFINSERT_BEFORE)flags   zContent-Length)r   r   is_toolbar_requestr   enabled_panelsenable_instrumentationprocess_requestr   reverseddisable_instrumentationgenerate_statsgenerate_server_timingrender_toolbarget_headersitemsheadersr   splitgetattr_HTML_TYPEScontentdecodecharsetr   r   reescape
IGNORECASElenjoin)r   r   r   toolbarpanelresponserenderedheadervaluecontent_encodingcontent_typer8   insert_beforepatternbitss                  r   __call__zDebugToolbarMiddleware.__call__-   s   '))|G$$ 	.(G(P(P 	.$$W---w(9:: + 	+ 	+E((****	0..w77H$&&& "'"899 0 0--////0 %&&& "'"899 0 0--////0
 g455 	< 	<E  (333(((;;;; ))++!--gw7MNNTTVV 	- 	-MFE',HV$$ $<<(:B??||NB77==cBB1EHk511	2%%;..O "))(*:;;#.00A)M**x>>>t99q==HHH HHH,11$77H8++-01A-B-B)*s   7C ;Dc                     i }|D ]L}|                     |                                           D ]"\  }}||v r||xx         d| z  cc<   |||<   #M|S )Nz, )r2   r3   )r   panelsr4   rA   rD   rE   s         r   r2   z"DebugToolbarMiddleware.get_headerse   s     	, 	,E!&!2!27!;!;!A!A!C!C , ,W$$FOOO|E||3OOOO&+GFOO	,
 r   N)__name__
__module____qualname____doc__r    rK   staticmethodr2    r   r   r   r   $   sX         
) ) )6 6 6p   \  r   r   )rQ   r;   	functoolsr   django.confr   django.utils.module_loadingr   debug_toolbarr   debug_toolbar.toolbarr   debug_toolbar.utilsr   r7   r   r   r   rS   r   r   <module>rZ      s    
			                   5 5 5 5 5 5 1 1 1 1 1 1 . . . . . . 8 8 8 8 8 84W W W 4  J J J J J J J J J Jr   