o
    uvXj4  ã                   @   s|   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
„ d
eƒZdS )é    N)Úapps)Úsettings)ÚBaseCommandÚCommandError)Úcolor_style)Úget_template)Úget_template_setting)Úsignalcommandc                       sD   e Zd ZdZdZeg d¢ƒZ‡ fdd„Zdd„ Ze	dd	„ ƒZ
‡  ZS )
ÚCommandÚ z/Validate templates on syntax and compile errors)z	.DS_Storez*.swpz*~c                    sh   t t| ƒ |¡ |jdddddd� |jdddd	dd
d� |jddddg dd� |jdddg dd� d S )Nz	--no-appsÚ
store_trueÚno_appsFz"Do not automatically include apps.)ÚactionÚdestÚdefaultÚhelpz--breakz-bÚbreakzBreak on first error.z	--includez-iÚappendÚincludesz#Append these paths to TEMPLATE DIRSz--ignore-appÚignore_appszIgnore these apps)Úsuperr
   Úadd_argumentsÚadd_argument)ÚselfÚparser©Ú	__class__© úu/var/www/html/myproject/venv/lib/python3.10/site-packages/django_extensions/management/commands/validate_templates.pyr      s"   þþþ
þzCommand.add_argumentsc                 C   s.   t j |¡}| jD ]}t ||¡r dS q	dS )NTF)ÚosÚpathÚbasenameÚignoresÚfnmatch)r   ÚfilenameÚignore_patternr   r   r   Úignore_filename,   s   
ÿzCommand.ignore_filenamec                 O   sÌ  t tdƒrttdƒ| _tƒ }ttdƒƒ}|t|d ƒO }|tttdg ƒƒO }|d sZ|d }|s:t tdƒr:ttdƒ}t ¡ D ]}|j	|v rFq>t
j |jd¡}t
j |¡rY| |¡ q>t|ƒtjd	 d< d
t_|d }d	}	|D ]e}
t
 |
¡D ]]\}}}|D ]U}|  |¡r„q|t
j ||¡}|dkr•| j |¡ zt|ƒ W n+ tyÆ } z|	d7 }	| j d|| d|jjt|ƒf ¡f ¡ W Y d }~nd }~ww |	rÑ|d rÑtdƒ‚q|quqn|	rÜtd|	 ƒ‚| j d|	 ¡ d S )NÚVALIDATE_TEMPLATES_IGNORESÚDIRSr   Ú&VALIDATE_TEMPLATES_EXTRA_TEMPLATE_DIRSr   r   ÚVALIDATE_TEMPLATES_IGNORE_APPSÚ	templatesr   TÚ	verbosityé   z%s: %sz%s %sr   zErrors foundz%s errors found)Úhasattrr   Úgetattrr"   r   Úsetr   r   Úget_app_configsÚnamer   r    ÚjoinÚisdirÚaddÚlistÚ	TEMPLATESÚTEMPLATE_DEBUGÚwalkr&   ÚstdoutÚwriter   Ú	ExceptionÚERRORr   Ú__name__Ústrr   )r   ÚargsÚoptionsÚstyleÚtemplate_dirsr   ÚappÚapp_template_dirr,   ÚerrorsÚtemplate_dirÚrootÚdirsÚ	filenamesr$   ÚfilepathÚer   r   r   Úhandle3   sX   



€
6€þ€óÿzCommand.handle)r>   Ú
__module__Ú__qualname__r@   r   r0   r"   r   r&   r	   rM   Ú__classcell__r   r   r   r   r
      s    r
   )r   r#   Údjango.appsr   Údjango.confr   Údjango.core.management.baser   r   Údjango.core.management.colorr   Údjango.template.loaderr   Údjango_extensions.compatr   Ú"django_extensions.management.utilsr	   r
   r   r   r   r   Ú<module>   s   