3
g
                 @   sh   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j
dZej
dZG dd	 d	eZdS )
    N)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  j| |jddddd d S )Nz--tagtagzSearch for specific tags onlyappend)desthelpaction)superadd_argumentsadd_argument)selfparser)	__class__ i/var/www/tester-filtro-web/env/lib/python3.6/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 }xn|D ]d}|rZtjj||}xJtj|D ]:\}}}	x,|	D ]"}
tjj	|
d dkr|tjj||
}g }t
|d
}d}x|j D ]}|d7 }tj|rtj|d \}}|d r|ttjtt|d krP tj|j r8tj|j d d }|jd|||j f  qW |r| jjd|  x|D ]}| jjd|  qpW | jjd W d Q R X q|W qhW qBW d S )Nc             S   s   g | ]}|j d dqS )./)replace).0appr   r   r   
<listcomp>   s    z"Command.handle.<locals>.<listcomp>c             S   s   | j d S )Nzdjango.contrib)
startswith)r   r   r   r   <lambda>   s    z Command.handle.<locals>.<lambda>ZDIRSZBASE_DIR   .py.htmlrr   r   z[%3s] %-5s %sz%s:z  * %s )r   r   )filterr   ZINSTALLED_APPSr   getattrospathjoinwalksplitextopen	readlinesANNOTATION_REsearchfindallmapstrupperANNOTATION_END_REstripr   stdoutwrite)r   argsoptionsZappsZtemplate_dirsbase_dirZapp_dirtopdirsfilesfnZfpathZannotation_linesfdiliner   msg
annotationr   r   r   handle   s<    




zCommand.handle)	__name__
__module____qualname__r
   labelr   r   r@   __classcell__r   r   )r   r   r      s   	r   )r#   reZdjango.confr   Zdjango.core.management.baser   Zdjango_extensions.compatr   Z"django_extensions.management.utilsr   compiler*   r0   r   r   r   r   r   <module>   s   

