a
    ÆZEg+  ã                   @   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                    sd   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)ÚsuperÚadd_argumentsÚadd_argument)ÚselfÚparser©Ú	__class__© úq/var/www/sistema_ama/venv/lib/python3.9/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   ÚfilenameZignore_patternr   r   r   Úignore_filename,   s
    
zCommand.ignore_filenamec                 O   sÖ  t tdƒrttdƒ| _tƒ }ttdg ƒƒ}|t|d ƒO }|tttdg ƒƒO }|d s¶|d }|svt tdƒrvttdƒ}t ¡ D ]6}|j	|v rŽq~t
j |jd¡}t
j |¡r~| |¡ q~t|ƒtjd	 d< d
t_|d }d	}	|D ]Ð}
t
 |
¡D ]À\}}}|D ]°}|  |¡�rqút
j ||¡}|dk�r0| j |¡ zt|ƒ W nX t�y” } z>|	d7 }	| j d|| d|jjt|ƒf ¡f ¡ W Y d }~n
d }~0 0 |	rú|d rútdƒ‚qúqìqÞ|	�rÂtd|	 ƒ‚| j d|	 ¡ d S )NZVALIDATE_TEMPLATES_IGNORESZDIRSr   Z&VALIDATE_TEMPLATES_EXTRA_TEMPLATE_DIRSr   r   ZVALIDATE_TEMPLATES_IGNORE_APPSZ	templatesr   TÚ	verbosityé   z%s: %sz%s %sr   zErrors foundz%s errors found)Úhasattrr   Úgetattrr"   r   Úsetr   r   Zget_app_configsÚnamer   r    ÚjoinÚisdirÚaddÚlistZ	TEMPLATESZTEMPLATE_DEBUGÚwalkr%   ÚstdoutÚwriter   Ú	ExceptionÚERRORr   Ú__name__Ústrr   )r   ÚargsÚoptionsÚstyleZtemplate_dirsr   ZappZapp_template_dirr&   ÚerrorsZtemplate_dirÚrootÚdirsÚ	filenamesr$   ÚfilepathÚer   r   r   Úhandle3   sL    



@zCommand.handle)r5   Ú
__module__Ú__qualname__r7   r   r*   r"   r   r%   r	   r@   Ú__classcell__r   r   r   r   r
      s   r
   )r   r#   Zdjango.appsr   Zdjango.confr   Zdjango.core.management.baser   r   Zdjango.core.management.colorr   Zdjango.template.loaderr   Zdjango_extensions.compatr   Z"django_extensions.management.utilsr	   r
   r   r   r   r   Ú<module>   s   