Ë
    7 èf‰  ã                   óÆ   — 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d	lmZ dd
l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 y)zA
The main DebugToolbar class that loads and renders the Toolbar.
é    N)ÚOrderedDict)Ú	lru_cache)Úapps)ÚImproperlyConfigured)ÚSignal)ÚTemplateSyntaxError)Úrender_to_string)ÚpathÚresolve)ÚResolver404)Úimport_string)Úget_languageÚoverride)ÚAPP_NAMEÚsettingsc                   óÖ   — 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         úK/var/www/equiseq/venv/lib/python3.11/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.panels2   s   € ô
 D—L‘L×'Ñ'Ó)Ó*Ð*r/   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    r2   r   )r(   r,   s     r-   Úenabled_panelszDebugToolbar.enabled_panels9   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_id@   s   € ð |‰|˜HÑ%Ð%r/   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_toolbarH   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-   r9   z!DebugToolbar.should_render_panels]   s=   € ð
 "Ÿ[™[¨Ñ9Ð9ˆMÐBð !ŸL™L×-Ñ-×1Ñ1Ð2EÀtÓLˆMØÐr/   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.storeo   so   € à=Š=ØÜŸ
™
›×(Ñ(ˆŒØ%)ˆ‰D—M‘MÑ"Üt—{‘{Ð#7Ñ8¼#¸d¿k¹kÓ:JÓKò 	,ˆAØK‰K×Ñ UÐÕ+ñ	,r/   c                 ó8   — | j                   j                  |«      S ©N)rK   rC   )Úclsr%   s     r-   ÚfetchzDebugToolbar.fetchx   s   € àz‰z~‰~˜hÓ'Ð'r/   Nc                 óž   — | j                   €1t        j                  «       D cg c]  }t        |«      ‘Œ }}|| _         | j                   S c c}w rQ   )Ú_panel_classesr   Ú
get_panelsr   )rR   Ú
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)rR   r[   Úurlpatternsr+   s       r-   r`   zDebugToolbar.get_urls   sm   € à×ÑÐ#Ýô
 _ e×&8Ñ&8¸~ÔNðˆKð  #×4Ñ4Ó6ò 6Ø˜{×3Ñ3Ó5Ñ5‘ð6à*ˆCÔØ×ÑÐr/   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   )rR   r   re   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Ô(Ü  Ó.Ð.àÐr/   )Ú__name__Ú
__module__Ú__qualname__r   r&   r.   Úpropertyr*   r4   r6   r?   r9   r   rK   r:   ÚclassmethodrS   rU   r   r^   r`   rh   Ústaticmethodr   ro   © r/   r-   r   r      sÒ   „ á‹x€Hò2ð0 ñ+ó ð+ð ñKó ðKò&òò*ñ  ‹]€Fò,ð ñ(ó ð(ð €Nàñ"ó ð"ð €Làñ ó ð ð ñWó ðWð ÙtÔñ ó ó ñ r/   r   c                 ó.   — t         j                  | «       S )zM
    Determine whether to update the toolbar from a client side request.
    )r   rh   )r   s    r-   Úobserve_requestrx   ¸   s   € ô ×.Ñ.¨wÓ7Ð7Ð7r/   )!Ú__doc__rH   Úcollectionsr   Ú	functoolsr   Údjango.appsr   Údjango.core.exceptionsr   Údjango.dispatchr   Údjango.templater   Údjango.template.loaderr	   Údjango.urlsr
   r   Údjango.urls.exceptionsr   Údjango.utils.module_loadingr   Údjango.utils.translationr   r   r;   Údebug_toolbarr   r   r   r   rx   rv   r/   r-   ú<module>r†      sE   ðñó Ý #Ý å Ý 7Ý "Ý /Ý 3ß %Ý .Ý 5ß Lç ;÷_ ñ _ óD8r/   