Ë
    ëûëf  ã                   óê   — d Z ddl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d	lmZ dd
lmZ ddlmZmZmZmZ ddlmZ ddlmZ ddlmZmZ ddl m!Z!m
Z"  G d„ d«      Z#d„ Z$dd„Z%y)zA
The main DebugToolbar class that loads and renders the Toolbar.
é    N)ÚOrderedDict)Ú	lru_cache)Úapps)Úsettings)ÚImproperlyConfigured)ÚSignal)ÚTemplateSyntaxError)Úrender_to_string)ÚincludeÚpathÚre_pathÚresolve)ÚResolver404)Úimport_string)Úget_languageÚoverride)ÚAPP_NAMEr   c                   óÖ   — e Zd Z e«       Zd„ Zed„ «       Zed„ «       Zd„ Z	d„ Z
d„ Z e«       Zd„ Zed„ «       Zd	Zed
„ «       Zd	Zed„ «       Zed„ «       Ze ed	¬«      d„ «       «       Zy	)ÚDebugToolbarc                 óò  — || _         t        j                  «       j                  «       | _        g }t        | j                  «       «      D ]5  } || |«      }|j                  |«       |j                  sŒ*|j                  }Œ7 || _	        t        «       | _        |r,|j                  «       }|| j                  |j                  <   |rŒ,i | _        i | _        d | _        | j"                  j%                  || ¬«       y )N)Útoolbar)ÚrequestÚdt_settingsÚ
get_configÚcopyÚconfigÚreversedÚget_panel_classesÚappendÚenabledÚprocess_requestr   Ú_panelsÚpopÚpanel_idÚstatsÚserver_timing_statsÚstore_idÚ_createdÚsend)Úselfr   Úget_responseÚpanelsÚpanel_classÚpanels         úP/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/debug_toolbar/toolbar.pyÚ__init__zDebugToolbar.__init__   s×   € ØˆŒÜ!×,Ñ,Ó.×3Ñ3Ó5ˆŒØˆÜ# D×$:Ñ$:Ó$<Ó=ò 	5ˆKÙ  lÓ3ˆEØM‰M˜%Ô Ø}‹}Ø$×4Ñ4‘ð		5ð
  ,ˆÔô #“}ˆŒÙØ—J‘J“LˆEØ+0ˆDL‰L˜Ÿ™Ñ(ò ð ˆŒ
Ø#%ˆÔ ØˆŒØ‰×Ñ˜7¨DÐÕ1ó    c                 óH   — t        | j                  j                  «       «      S )z5
        Get a list of all available panels.
        )Úlistr"   Úvalues)r*   s    r/   r,   zDebugToolbar.panels4   s   € ô
 D—L‘L×'Ñ'Ó)Ó*Ð*r1   c                 óv   — | j                   j                  «       D cg c]  }|j                  sŒ|‘Œ c}S c c}w )zG
        Get a list of panels enabled for the current request.
        )r"   r4   r    )r*   r.   s     r/   Úenabled_panelszDebugToolbar.enabled_panels;   s+   € ð
 $(§<¡<×#6Ñ#6Ó#8ÖJ˜%¸E¿M»M’ÒJÐJùÒJs   6¯6c                 ó    — | j                   |   S )zV
        Get the panel with the given id, which is the class name by default.
        )r"   )r*   r$   s     r/   Úget_panel_by_idzDebugToolbar.get_panel_by_idB   s   € ð |‰|˜HÑ%Ð%r1   c                 ó:  — | j                  «       s| j                  «        	 d| i}| j                  d   xs
 t        «       }t	        |«      5  t        d|«      cddd«       S # 1 sw Y   yxY w# t        $ r# t        j                  d«      st        d«      d‚‚ w xY w)zA
        Renders the overall Toolbar with panels inside.
        r   ÚTOOLBAR_LANGUAGEzdebug_toolbar/base.htmlNzdjango.contrib.staticfilesz’The debug toolbar requires the staticfiles contrib app. Add 'django.contrib.staticfiles' to INSTALLED_APPS and define STATIC_URL in your settings.)
Úshould_render_panelsÚstorer   r   Úlang_overrider
   r	   r   Úis_installedr   )r*   ÚcontextÚlangs      r/   Úrender_toolbarzDebugToolbar.render_toolbarJ   s£   € ð ×(Ñ(Ô*ØJ‰JŒLð	Ø  $Ð'ˆGØ—;‘;Ð1Ñ2ÒD´l³nˆDÜ˜tÓ$ñ LÜ'Ð(AÀ7ÓK÷L÷ Lò Lûä"ò 	Ü×$Ñ$Ð%AÔBÜ*ð:óð ð	ð ð	ús)   ¢*A. ÁA"Á	A. Á"A+Á'A. Á+A. Á.,Bc                 ót   — | j                   d   x}€&| j                  j                  j                  dd«      }|S )z‚Determine whether the panels should be rendered during the request

        If False, the panels will be loaded via Ajax.
        ÚRENDER_PANELSzwsgi.multiprocessT)r   r   ÚMETAÚget)r*   Úrender_panelss     r/   r;   z!DebugToolbar.should_render_panels_   s=   € ð
 "Ÿ[™[¨Ñ9Ð9ˆMÐBð !ŸL™L×-Ñ-×1Ñ1Ð2EÀtÓLˆMØÐr1   c                 ó0  — | j                   ry t        j                  «       j                  | _         | | j                  | j                   <   t        | j                  d   t        | j                  «      «      D ]  }| j                  j                  d¬«       Œ  y )NÚRESULTS_CACHE_SIZEF)Úlast)	r'   ÚuuidÚuuid4ÚhexÚ_storeÚranger   ÚlenÚpopitem)r*   Ú_s     r/   r<   zDebugToolbar.storeq   so   € à=Š=ØÜŸ
™
›×(Ñ(ˆŒØ%)ˆ‰D—M‘MÑ"Üt—{‘{Ð#7Ñ8¼#¸d¿k¹kÓ:JÓKò 	,ˆAØK‰K×Ñ UÐÕ+ñ	,r1   c                 ó8   — | j                   j                  |«      S ©N)rM   rE   )Úclsr'   s     r/   ÚfetchzDebugToolbar.fetchz   s   € àz‰z~‰~˜hÓ'Ð'r1   Nc                 óž   — | j                   €1t        j                  «       D cg c]  }t        |«      ‘Œ }}|| _         | j                   S c c}w rS   )Ú_panel_classesr   Ú
get_panelsr   )rT   Ú
panel_pathÚpanel_classess      r/   r   zDebugToolbar.get_panel_classesƒ   sT   € à×ÑÐ%ô =H×<RÑ<RÓ<TöØ.8”˜jÕ)ðˆMð ð "/ˆCÔØ×!Ñ!Ð!ùò	s   £A
c                 óÎ   — | j                   €Nddlm} t        d|j                  d¬«      g}| j                  «       D ]  }||j                  «       z  }Œ || _         | j                   S )Né   )Úviewszrender_panel/Úrender_panel)Úname)Ú_urlpatternsÚ r]   r   r^   r   Úget_urls)rT   r]   Úurlpatternsr-   s       r/   rb   zDebugToolbar.get_urls   sm   € à×ÑÐ#Ýô
 _ e×&8Ñ&8¸~ÔNðˆKð  #×4Ñ4Ó6ò 6Ø˜{×3Ñ3Ó5Ñ5‘ð6à*ˆCÔØ×ÑÐr1   c                 óÈ   — 	 |j                   xs! t        |j                  t        |dd«      «      }|j
                  xr |j
                  d   t        k(  S # t        $ r Y yw xY w)zF
        Determine if the request is for a DebugToolbar view.
        ÚurlconfNFéÿÿÿÿ)Úresolver_matchr   r   Úgetattrr   Ú
namespacesr   )rT   r   rg   s      r/   Úis_toolbar_requestzDebugToolbar.is_toolbar_requestŸ   sg   € ð	Ø$×3Ñ3ò ´wØ—‘œg g¨y¸$Ó?ó8ˆNð
 ×(Ñ(ÒV¨^×-FÑ-FÀrÑ-JÌhÑ-VÐVøô ò 	Ùð	ús   ‚/A Á	A!Á A!)Úmaxsizec                  ój   — t        j                  «       d   } t        | t        «      rt	        | «      S | S )NÚOBSERVE_REQUEST_CALLBACK)r   r   Ú
isinstanceÚstrr   )Úfunc_or_paths    r/   Úget_observe_requestz DebugToolbar.get_observe_request®   s3   € ô
 #×-Ñ-Ó/Ð0JÑKˆÜl¤CÔ(Ü  Ó.Ð.àÐr1   )Ú__name__Ú
__module__Ú__qualname__r   r(   r0   Úpropertyr,   r6   r8   rA   r;   r   rM   r<   ÚclassmethodrU   rW   r   r`   rb   rj   Ústaticmethodr   rq   © r1   r/   r   r      sÒ   „ á‹x€Hò2ð0 ñ+ó ð+ð ñKó ðKò&òò*ñ  ‹]€Fò,ð ñ(ó ð(ð €Nàñ"ó ð"ð €Làñ ó ð ð ñWó ðWð ÙtÔñ ó ó ñ r1   r   c                  ó   — y)zM
    Determine whether to update the toolbar from a client side request.
    Trx   )r   s    r/   Úobserve_requestrz   º   s   € ð r1   c                 ó¶   — | st        d«      ‚t        j                  sg S t        dt	        j
                  | j                  d«      «      z  t        d«      «      gS )a  
    Return a URL pattern for serving toolbar in debug mode.

    from django.conf import settings
    from debug_toolbar.toolbar import debug_toolbar_urls

    urlpatterns = [
        # ... the rest of your URLconf goes here ...
    ] + debug_toolbar_urls()
    zEmpty urls prefix not permittedz^%s/ú/zdebug_toolbar.urls)r   r   ÚDEBUGr   ÚreÚescapeÚlstripr   )Úprefixs    r/   Údebug_toolbar_urlsr‚   Á   sT   € ñ Ü"Ð#DÓEÐEÜ^Š^àˆ	äØ”b—i‘i §¡¨cÓ 2Ó3Ñ3ÜÐ(Ó)ó	
ðð r1   )Ú	__debug__)&Ú__doc__r~   rJ   Úcollectionsr   Ú	functoolsr   Údjango.appsr   Údjango.confr   Údjango.core.exceptionsr   Údjango.dispatchr   Údjango.templater	   Údjango.template.loaderr
   Údjango.urlsr   r   r   r   Údjango.urls.exceptionsr   Údjango.utils.module_loadingr   Údjango.utils.translationr   r   r=   Údebug_toolbarr   r   r   rz   r‚   rx   r1   r/   ú<module>r’      sS   ðñó 
Û Ý #Ý å Ý  Ý 7Ý "Ý /Ý 3ß 7Ó 7Ý .Ý 5ß Lç ;÷_ ñ _ òDôr1   