ó
ļ9^c           @  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 j d  Z e j d  Z d	 e f d
     YZ d S(   iĸĸĸĸ(   t   with_statementN(   t   settings(   t   BaseCommand(   t   get_template_setting(   t   signalcommands:   \{?#[\s]*?(TODO|FIXME|BUG|HACK|WARNING|NOTE|XXX)[\s:]?(.+)s   (.*)#\}(.*)t   Commandc           B  s,   e  Z d  Z d Z d   Z e d    Z RS(   sa   Show all annotations like TODO, FIXME, BUG, HACK, WARNING, NOTE or XXX in your py and HTML files.s;   annotation tag (TODO, FIXME, BUG, HACK, WARNING, NOTE, XXX)c         C  s9   t  t |   j |  | j d d d d d d d d  S(   Ns   --tagt   destt   tagt   helps   Search for specific tags onlyt   actiont   append(   t   superR   t   add_argumentst   add_argument(   t   selft   parser(    (    sM   /tmp/pip-unpacked-wheel-a0M10Y/django_extensions/management/commands/notes.pyR      s    c         O  sk  g  t  d   t j  D] } | j d d  ^ q } t d g   } t t d  } | re | | 7} n  xĸ| D]ũ} | r t j j | |  } n  xÐt j	 |  D]ŋ\ } }	 }
 x­|
 D]Ĩ} t j j
 |  d d k rķ t j j | |  } g  } t | d	  T} d
 } xÔ | j   D]Æ } | d 7} t j |  rt j |  d
 \ } } | d r| t t j t t | d   k rPqn  t j | j    rŧt j | j    d
 d
 } n  | j d | | | j   f  qqW| rR|  j j d |  x@ | D]8 } t j r!| j d  n | } |  j j d |  qW|  j j d  n  Wd  QXqķ qķ Wq  Wql Wd  S(   Nc         S  s   |  j  d  S(   Ns   django.contrib(   t
   startswith(   t   app(    (    sM   /tmp/pip-unpacked-wheel-a0M10Y/django_extensions/management/commands/notes.pyt   <lambda>"   t    t   .t   /t   DIRSt   BASE_DIRi   s   .pys   .htmlt   ri    R   s   [%3s] %-5s %ss   %s:s   utf-8s     * %sR   (   s   .pys   .html(   t   filterR   t   INSTALLED_APPSt   replaceR   t   getattrt   ost   patht   joint   walkt   splitextt   opent	   readlinest   ANNOTATION_REt   searcht   findallt   mapt   strt   uppert   ANNOTATION_END_REt   stripR
   t   stdoutt   writet   sixt   PY2t   decode(   R   t   argst   optionsR   t   appst   template_dirst   base_dirt   app_dirt   topt   dirst   filest   fnt   fpatht   annotation_linest   fdt   it   lineR   t   msgt
   annotation(    (    sM   /tmp/pip-unpacked-wheel-a0M10Y/django_extensions/management/commands/notes.pyt   handle   s>    4

% '(   t   __name__t
   __module__R   t   labelR   R   RB   (    (    (    sM   /tmp/pip-unpacked-wheel-a0M10Y/django_extensions/management/commands/notes.pyR      s   		(   t
   __future__R    R   t   reR.   t   django.confR   t   django.core.management.baseR   t   django_extensions.compatR   t"   django_extensions.management.utilsR   t   compileR$   R*   R   (    (    (    sM   /tmp/pip-unpacked-wheel-a0M10Y/django_extensions/management/commands/notes.pyt   <module>   s   