o
    uvXjB  ã                   @   s|   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ e d¡Ze d¡ZG d	d
„ d
eƒZdS )é    )Úwith_statementN)Úsettings)ÚBaseCommand)Úget_template_setting)Úsignalcommandz:\{?#[\s]*?(TODO|FIXME|BUG|HACK|WARNING|NOTE|XXX)[\s:]?(.+)z(.*)#\}(.*)c                       s0   e Zd ZdZdZ‡ fdd„Zedd„ ƒZ‡  ZS )ÚCommandzaShow all annotations like TODO, FIXME, BUG, HACK, WARNING, NOTE or XXX in your py and HTML files.z;annotation tag (TODO, FIXME, BUG, HACK, WARNING, NOTE, XXX)c                    s&   t t| ƒ |¡ |jddddd� d S )Nz--tagÚtagzSearch for specific tags onlyÚappend)ÚdestÚhelpÚaction)Úsuperr   Úadd_argumentsÚadd_argument)ÚselfÚparser©Ú	__class__© úh/var/www/html/myproject/venv/lib/python3.10/site-packages/django_extensions/management/commands/notes.pyr      s   
üzCommand.add_argumentsc                 O   s°  dd„ t dd„ tjƒD ƒ}tdg ƒ}ttdƒ}|r||7 }|D ]¶}|r*tj ||¡}t |¡D ]¥\}}}	|	D ]�}
tj 	|
¡d dv rÓtj ||
¡}g }t
|d	ƒ�{}d
}| ¡ D ]E}|d7 }t |¡rœt |¡d
 \}}|d r~|ttjtt|d ƒƒvr~ nt | ¡ ¡r�t | ¡ ¡d
 d
 }| d||| ¡ f ¡ qW|rÄ| j d| ¡ |D ]}tjr³| d¡n|}| j d| ¡ q©| j d¡ W d   ƒ n1 sÎw   Y  q6q/qd S )Nc                 S   s   g | ]}|  d d¡‘qS )Ú.ú/)Úreplace)Ú.0Úappr   r   r   Ú
<listcomp>"   s    z"Command.handle.<locals>.<listcomp>c                 S   s   |   d¡ S )Nzdjango.contrib)Ú
startswith)r   r   r   r   Ú<lambda>"   s    z Command.handle.<locals>.<lambda>ÚDIRSÚBASE_DIRé   )z.pyz.htmlÚrr   r   z[%3s] %-5s %sz%s:zutf-8z  * %sÚ )Úfilterr   ÚINSTALLED_APPSr   ÚgetattrÚosÚpathÚjoinÚwalkÚsplitextÚopenÚ	readlinesÚANNOTATION_REÚsearchÚfindallÚmapÚstrÚupperÚANNOTATION_END_REÚstripr	   ÚstdoutÚwriteÚsixÚPY2Údecode)r   ÚargsÚoptionsÚappsÚtemplate_dirsÚbase_dirÚapp_dirÚtopÚdirsÚfilesÚfnÚfpathÚannotation_linesÚfdÚiÚliner   ÚmsgÚ
annotationr   r   r   Úhandle   sL   


€€í€üÿýzCommand.handle)	Ú__name__Ú
__module__Ú__qualname__r   Úlabelr   r   rK   Ú__classcell__r   r   r   r   r      s    	r   )Ú
__future__r   r&   Úrer7   Údjango.confr   Údjango.core.management.baser   Údjango_extensions.compatr   Ú"django_extensions.management.utilsr   Úcompiler-   r3   r   r   r   r   r   Ú<module>   s   

