o
    ˜¨ÊhÄ  ã                   @   sž   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
 eddd	�Zed
dd	�Zeddd	�Ze
e	jƒdd„ ƒZe
e	jƒdd„ ƒZe
e	jƒdd„ ƒZdS )é    N)Údefaultdict)Úsettings)Úget_template_tag_modulesé   )ÚErrorÚTagsÚregisterz‰You 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                 K   s   t dd„ tjD ƒƒrtgS g S )Nc                 s   s*   � | ]}|  d ¡od|  di ¡v V  qdS )ÚAPP_DIRSÚloadersÚOPTIONSN)Úget)Ú.0Úconf© r   úN/var/www/html/env/lib/python3.10/site-packages/django/core/checks/templates.pyÚ	<genexpr>   s
   € ÿ
ÿz1check_setting_app_dirs_loaders.<locals>.<genexpr>)Úanyr   Ú	TEMPLATESÚE001)Úapp_configsÚkwargsr   r   r   Úcheck_setting_app_dirs_loaders   s   þÿÿúr   c                 K   s\   g }t jD ]&}| di ¡ dd¡}t|tƒs+t t¡}|j |t	|ƒj
¡|_| |¡ q|S )Nr   Ústring_if_invalidÚ )r   r   r   Ú
isinstanceÚstrÚcopyÚE002ÚmsgÚformatÚtypeÚ__name__Úappend)r   r   Úerrorsr   r   Úerrorr   r   r   Ú!check_string_if_invalid_is_string$   s   



ÿ
€r'   c           
      K   sÂ   g }t tƒ}tjD ]}| di ¡ di ¡}| ¡ D ]\}}||  |¡ qq	tƒ D ]\}}||  |¡ q)| ¡ D ]%\}}	t|	ƒdkr^| 	t
tj t|ƒd dd„ t|	ƒD ƒ¡¡tjd�¡ q9|S )Nr   Ú	librariesr   z, c                 s   s   � | ]}t |ƒV  qd S )N)Úrepr)r   Úitemr   r   r   r   E   s   € z=check_for_template_tags_with_the_same_name.<locals>.<genexpr>r	   )r   Úsetr   r   r   ÚitemsÚaddr   Úlenr$   r   ÚE003r    r!   r)   ÚjoinÚsortedr
   )
r   r   r%   r(   r   Úcustom_librariesÚmodule_nameÚmodule_pathÚlibrary_namer,   r   r   r   Ú*check_for_template_tags_with_the_same_name2   s,   
ÿþûÿ€
r6   )r   Úcollectionsr   Údjango.confr   Údjango.template.backends.djangor   r   r   r   r   r   r   r/   Ú	templatesr   r'   r6   r   r   r   r   Ú<module>   s.    ýþþ

