
    7 f+                         d dl Z d dl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 d dlmZ  G d d	e      Zd
 Zed        Zed        Zd Zed        Z e       d        Zy)    N)	AppConfig)settings)Warningregister)GZipMiddleware)import_string)gettext_lazyc                   &    e Zd ZdZ ed      Zd Zy)DebugToolbarConfigdebug_toolbarzDebug Toolbarc                 Z    ddl m} |j                         D ]  }|j                           y )Nr   DebugToolbar)debug_toolbar.toolbarr   get_panel_classesready)selfr   clss      H/var/www/equiseq/venv/lib/python3.11/site-packages/debug_toolbar/apps.pyr   zDebugToolbarConfig.ready   s(    6  113 	CIIK	    N)__name__
__module____qualname__name_verbose_namer    r   r   r   r      s    D_%Lr   r   c                     fd| j                  dd      }| j                  di       j                  dd      }|rt         |            }|du xs d|v }|xs |S )a  
    Checks if a template configuration is valid.

    The toolbar requires either the toolbars to be unspecified or
    ``django.template.loaders.app_directories.Loader`` to be
    included in the loaders.
    If custom loaders are specified, then APP_DIRS must be True.
    c              3   ~   K   | D ]1  }t        |t              r|d     |d         E d{    .| 3 y7 w)z
        Recursively flatten the settings list of template loaders.

        Check for (loader, [child_loaders]) tuples.
        Django's default cached loader uses this pattern.
        r      N)
isinstancetuple)loadersloaderflat_loaderss     r   r%   z+check_template_config.<locals>.flat_loaders%   sG       	F&%(Qi'q	222	 3s   +=;=APP_DIRSFOPTIONSr#   Nz.django.template.loaders.app_directories.Loader)getlist)configapp_dirsr#   has_app_loadersr%   s       @r   check_template_configr-      so     zz*e,HjjB'++It<G|G,- 	4VKwV  &h&r   c                    ddl m} g }d }g }t        d t        j                  D              r|j                  t        ddd             t        j                  d      r|j                  t        d	d
d             |S t        t        j                        D ]6  \  }}t        t        |      r|}t        ||      s&|j                  |       8 |s|j                  t        ddd             |S t        |      dk7  r|j                  t        ddd             |S |%|d   |k  r|j                  t        ddd             |S )Nr   )DebugToolbarMiddlewarec              3   4   K   | ]  }t        |         y wN)r-   ).0r*   s     r   	<genexpr>z#check_middleware.<locals>.<genexpr>G   s     
N$V,,
Ns   zAt least one DjangoTemplates TEMPLATES configuration needs to use django.template.loaders.app_directories.Loader or have APP_DIRS set to True.zInclude django.template.loaders.app_directories.Loader in ["OPTIONS"]["loaders"]. Alternatively use APP_DIRS=True for at least one django.template.backends.django.DjangoTemplates backend configuration.zdebug_toolbar.W006hintidMIDDLEWARE_CLASSESz>debug_toolbar is incompatible with MIDDLEWARE_CLASSES setting.z,Use MIDDLEWARE instead of MIDDLEWARE_CLASSESzdebug_toolbar.W004zKdebug_toolbar.middleware.DebugToolbarMiddleware is missing from MIDDLEWARE.zBAdd debug_toolbar.middleware.DebugToolbarMiddleware to MIDDLEWARE.zdebug_toolbar.W001r    zTdebug_toolbar.middleware.DebugToolbarMiddleware occurs multiple times in MIDDLEWARE.zMLoad debug_toolbar.middleware.DebugToolbarMiddleware only once in MIDDLEWARE.zdebug_toolbar.W002zrdebug_toolbar.middleware.DebugToolbarMiddleware occurs before django.middleware.gzip.GZipMiddleware in MIDDLEWARE.zrMove debug_toolbar.middleware.DebugToolbarMiddleware to after django.middleware.gzip.GZipMiddleware in MIDDLEWARE.zdebug_toolbar.W003)debug_toolbar.middlewarer/   allr   	TEMPLATESappendr   is_overridden	enumerate
MIDDLEWAREis_middleware_classr   len)app_configskwargsr/   errors
gzip_indexdebug_toolbar_indexesi
middlewares           r   check_middlewarerH   ?   sm   ?FJ

N8;M;M
NN-- (	
" 23PC'	
  #8#6#67 ,:~z:J !7D!((+	, !#'	
> M- 
"	#q	(0&'	
( M 
	$9!$<z$IGM'	
 Mr   c                     ddl m} g }|j                         D ](  }|j                         D ]  }|j	                  |        * |S )zOAllow each panel to check the toolbar's integration for their its own purposes.r   r   )r   r   r   
run_checksr;   )rA   rB   r   rC   panel_classcheck_messages         r   check_panel_configsrM      sO     3F#557 )(335 	)MMM-(	)) Mr   c                 ~    	 t        |      }t        j                  |      xr t	        ||       S # t        $ r Y y w xY wr1   )r   ImportErrorinspectisclass
issubclass)middleware_classmiddleware_pathmiddleware_clss      r   r?   r?      sJ    &7 ??>* z(0   s   0 	<<c                 p    g }t        j                         }|s|j                  t        ddd             |S )Nz&Setting DEBUG_TOOLBAR_PANELS is empty.zASet DEBUG_TOOLBAR_PANELS to a non-empty list in your settings.py.zdebug_toolbar.W005r4   )dt_settings
get_panelsr;   r   )rA   rB   rC   panelss       r   check_panelsrZ      s>    F##%F8'		
 Mr   c                     ddh}t        t        j                  d            j                  |       }|rt	        ddd      gS g S )zP
    Check that JavaScript files are resolving to the correct content type.
    zapplication/javascriptztext/javascriptz
toolbar.jsz9JavaScript files are resolving to the wrong content type.a  The Django Debug Toolbar may not load properly while mimetypes are misconfigured. See the Django documentation for an explanation of why this occurs.
https://docs.djangoproject.com/en/stable/ref/contrib/staticfiles/#static-file-development-view

This typically occurs on Windows machines. The suggested solution is to modify HKEY_CLASSES_ROOT in the registry to specify the content type for JavaScript files.

[HKEY_CLASSES_ROOT\.js]
"Content Type"="application/javascript"zdebug_toolbar.W007r4   )set	mimetypes
guess_typeintersectionr   )rA   rB   javascript_typescheck_faileds       r   js_mimetype_checkrb      sc     12CD9//=>KK L K	: (
 	
  Ir   )rP   r]   django.appsr   django.confr   django.core.checksr   r   django.middleware.gzipr   django.utils.module_loadingr   django.utils.translationr	   r   r   rW   r   r-   rH   rM   r?   rZ   rb   r   r   r   <module>ri      s      !   0 1 5 6 1
 
!'H 
K 
K\ 
 
 
 
 
 r   