a
    ܌xd
                     @   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
dZe
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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__ c/var/www/html/Ranjet/env/lib/python3.9/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 ]j}|rVtj||}t|D ]F\}}}	|	D ]4}
tj	|
d dv rptj||
}g }t
|d	}d
}| D ]}|d7 }t|rt|d
 \}}|d r|ttjtt|d vr qHt| r.t| d
 d
 }|d||| f  q|r| jd|  |D ]}| jd|  qb| jd W d    qp1 s0    Y  qpq`q>d S )Nc                 S   s   g | ]}| d dqS )./)replace).0appr   r   r   
<listcomp>       z"Command.handle.<locals>.<listcomp>c                 S   s   |  d S )Nzdjango.contrib)
startswith)r   r   r   r   <lambda>   r   z Command.handle.<locals>.<lambda>ZDIRSZBASE_DIR   )z.pyz.htmlrr   r   z[%3s] %-5s %sz%s:z  * %s )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   

