
    jg
                         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	e      Zy)
    N)settings)BaseCommand)get_template_setting)signalcommandz:\{?#[\s]*?(TODO|FIXME|BUG|HACK|WARNING|NOTE|XXX)[\s:]?(.+)z(.*)#\}(.*)c                   6     e Zd ZdZdZ fdZed        Z x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                 N    t         |   |       |j                  dddd       y )Nz--tagtagzSearch for specific tags onlyappend)desthelpaction)superadd_argumentsadd_argument)selfparser	__class__s     f/var/www/html/Stanley/venv/lib/python3.12/site-packages/django_extensions/management/commands/notes.pyr   zCommand.add_arguments   s/    f%0	 	 	
    c                    t        d t        j                        D cg c]  }|j                  dd       }}t	        dg       }t        t        d      }|r||z  }|D ]  }|r t        j                  j                  ||      }t        j                  |      D ]  \  }}	}
|
D ]  }t        j                  j                  |      d   dv s)t        j                  j                  ||      }g }t        |d      5 }d	}|j                         D ]  }|dz  }t        j                  |      st        j                  |      d	   \  }}|d
   r/|t!        t"        j$                  t!        t"        |d
               vr nxt&        j                  |j)                               r)t&        j                  |j)                               d	   d	   }|j+                  d|dd|dd|j)                                 |r^| j,                  j/                  d|z         |D ]   }| j,                  j/                  d|z         " | j,                  j/                  d       d d d           y c c}w # 1 sw Y   xY w)Nc                 &    | j                  d       S )Nzdjango.contrib)
startswith)apps    r   <lambda>z Command.handle.<locals>.<lambda>   s    WgHhDhr   ./DIRSBASE_DIR   )z.pyz.htmlrr   r
   [z>3z] 5 z%s:z  * %s )filterr   INSTALLED_APPSreplacer   getattrospathjoinwalksplitextopen	readlinesANNOTATION_REsearchfindallmapstrupperANNOTATION_END_REstripr   stdoutwrite)r   argsoptionsr   appstemplate_dirsbase_dirapp_dirtopdirsfilesfnfpathannotation_linesfdiliner
   msg
annotations                       r   handlezCommand.handle   s"    288hjr  kB  kB  2C  D  2C#C%  2C  D,VR88Z0M!DG'',,x9$&GGG$4 T5Bww''+A.2BB "S" 5+-(!%- !A(* !Q#0#7#7#=/</D/DT/J1/MHC'.u~+.c#))SgV[nE]6^+^,1'8'?'?		'L.?.G.G		.TUV.WXY.Z$4$;$;qRUWZW`W`Wb<c$d )7  0 $ 1 1%%- @2BJ$(KK$5$5h6K$L 3C $ 1 1" 5% .-	   %5  D .-s   I$:0I)	+D'I)	)I3)	__name__
__module____qualname__r   labelr   r   rL   __classcell__)r   s   @r   r   r      s&    nDIE
 !6 !6r   r   )r*   redjango.confr   django.core.management.baser   django_extensions.compatr   "django_extensions.management.utilsr   compiler1   r7   r    r   r   <module>rY      sE    	 	   3 9 <

XYBJJ~. /6k /6r   