
    Hwg                        d dl 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  edd	      Z ed
d	      Z e
dd	      Z ee	j                        d        Z ee	j                        d        Z ee	j                        d        Zy)    N)defaultdict)settings)get_template_tag_modules   )ErrorTagsWarningregisterzYou have 'APP_DIRS': True in your TEMPLATES but also specify 'loaders' in OPTIONS. Either remove APP_DIRS or remove the 'loaders' option.ztemplates.E001idzK'string_if_invalid' in TEMPLATES OPTIONS must be a string but got: {} ({}).ztemplates.E002z0{} is used for multiple template tag modules: {}ztemplates.E003c                 T    t        d t        j                  D              rt        gS g S )Nc              3   j   K   | ]+  }|j                  d       xr d|j                  di       v  - yw)APP_DIRSloadersOPTIONSN)get).0confs     S/var/www/horilla/myenv/lib/python3.12/site-packages/django/core/checks/templates.py	<genexpr>z1check_setting_app_dirs_loaders.<locals>.<genexpr>   s9      
 HHZ IY$((9b2I%II
s   13)anyr   	TEMPLATESE001)app_configskwargss     r   check_setting_app_dirs_loadersr      s5      
 **
 
 
     c                 V   g }t         j                  D ]  }|j                  di       j                  dd      }t        |t              r6t        j
                  t              }|j                  j                  |t        |      j                        |_        |j                  |        |S )Nr   string_if_invalid )r   r   r   
isinstancestrcopyE002msgformattype__name__append)r   r   errorsr   r   errors         r   !check_string_if_invalid_is_stringr,   $   s    F"" ! HHY3778KRP+S1IIdOE		((!4(9#:#C#CEI MM% ! Mr   c                 h   g }t        t              }t        j                  D ]P  }|j	                  di       j	                  di       }|j                         D ]  \  }}||   j                  |        R t               D ]  \  }}||   j                  |        |j                         D ]  \  }}	t        |	      dkD  s|j                  t        t        j                  j                  t        |      dj                  d t!        |	      D                    t        j"                                |S )Nr   	librariesr   z, c              3   2   K   | ]  }t        |        y w)N)repr)r   items     r   r   z=check_for_template_tags_with_the_same_name.<locals>.<genexpr>E   s     !G$t*!Gs   r   )r   setr   r   r   itemsaddr   lenr)   r	   W003r%   r&   r0   joinsortedr   )
r   r   r*   r.   r   custom_librariesmodule_namemodule_pathlibrary_namer3   s
             r   *check_for_template_tags_with_the_same_namer=   2   s   FC I"" 488Ir266{BG(8(>(>(@ 	4$Kk"&&{3	44
 %=$> 0 [+"";/0  )0 
eu:>MMHHOO\*		!G!GG ww
 Mr   )r#   collectionsr   django.confr   django.template.backends.djangor   r    r   r   r	   r
   r   r$   r6   	templatesr   r,   r=    r   r   <module>rC      s     #   D , ,I
 Q 6 
$..  
$..
 
 
$.. r   