a
    LcòfÑ  ã                   @   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
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ÚWarningÚ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 )ZAPP_DIRSÚloadersÚOPTIONSN)Úget)Ú.0Úconf© r   úY/home/httpd/docs/test/DocsMgr/lib/python3.9/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 ]L}| 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 ]8}| di ¡ di ¡}| ¡ D ]\}}||  |¡ q2qtƒ D ]\}}||  |¡ qR| ¡ D ]J\}}	t|	ƒdkrr| 	t
tj t|ƒd dd„ t|	ƒD ƒ¡¡tjd�¡ qr|S )Nr   Ú	librariesr   z, c                 s   s   | ]}t |ƒV  qd S )N)Úrepr)r   Úitemr   r   r   r   E   ó    z=check_for_template_tags_with_the_same_name.<locals>.<genexpr>r
   )r   Úsetr   r   r   ÚitemsÚaddr   Úlenr$   r   ÚW003r    r!   r)   ÚjoinÚsortedr   )
r   r   r%   r(   r   Zcustom_librariesÚmodule_nameÚmodule_pathZlibrary_namer-   r   r   r   Ú*check_for_template_tags_with_the_same_name2   s(    
þûÿ
r5   )r   Úcollectionsr   Zdjango.confr   Zdjango.template.backends.djangor   r   r   r   r   r	   r   r   r0   Z	templatesr   r'   r5   r   r   r   r   Ú<module>   s,   ýþþ

