a
    ÆZEg$  ã                   @   sÜ   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
mZ d dlmZ d dlmZmZ d dlmZ d d	lmZmZ G d
d„ dƒZG dd„ dƒZG dd„ dƒZdd„ ZdddddddœZG dd„ de
ƒZdS )é    N)Úsettings)Úsimplify_regex)ÚViewDoesNotExist)ÚBaseCommandÚCommandError)Útranslation)Úcolor_styleÚno_style)Úsignalcommand)Ú
URLPatternÚURLResolverc                   @   s   e Zd ZdS )ÚRegexURLPatternN©Ú__name__Ú
__module__Ú__qualname__© r   r   úh/var/www/sistema_ama/venv/lib/python3.9/site-packages/django_extensions/management/commands/show_urls.pyr      s   r   c                   @   s   e Zd ZdS )ÚRegexURLResolverNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )ÚLocaleRegexURLResolverNr   r   r   r   r   r      s   r   c                 C   s
   t | jƒS )N)ÚstrÚpattern)Úpr   r   r   Údescribe_pattern   s    r   z%{url}	{module}	{url_name}	{decorator}z%{url},{module},{url_name},{decorator}zK{url}
	Controller: {module}
	URL Name: {url_name}
	Decorators: {decorator}
Ú )ÚdenseÚtableÚalignedÚverboseÚjsonúpretty-jsonc                       s6   e Zd ZdZ‡ fdd„Zedd„ ƒZd
dd	„Z‡  ZS )ÚCommandz8Displays all of the url matching routes for the project.c                    s|   t ƒ  |¡ |jdddddd� |jddd	d
d� |jddddg dd� |jdddddt ¡  d� |jdddddd� d S )Nz
--unsortedz-uÚ
store_trueÚunsortedz:Show urls unsorted but same order as found in url patterns)ÚactionÚdestÚhelpz
--languagez-lÚlanguagez7Only show this language code (useful for i18n_patterns))r%   r&   z--decoratorz-dÚappendÚ	decoratorz-Show the presence of given decorator on views)r$   r%   Údefaultr&   z--formatz-fÚformat_styler   z Style of the output. Choices: %s)r%   r*   r&   z	--urlconfz-cÚurlconfZROOT_URLCONFz)Set the settings URL conf variable to use)ÚsuperÚadd_argumentsÚadd_argumentÚFMTRÚkeys)ÚselfÚparser©Ú	__class__r   r   r.   0   s*    þþ
þ
þþzCommand.add_argumentsc              
      sþ  |d rt ƒ ntƒ }|d ‰ˆd urLt ˆ¡ ‡fdd„ttdg ƒD ƒ| _nttddƒ| _|d }|sldg}|d	 }|tvrštd
|d 	t
t ¡ ƒ¡f ƒ‚|dk}|rªd}t| }|d }g }	tt|ƒsØtd t|¡ƒ‚zttt|ƒi i dgƒ}W nZ t�yL }
 z@|d �rdd l}| ¡  tdtt|ƒt|
ƒf ƒ‚W Y d }
~
n
d }
~
0 0 |  |j¡}|D �]D\}}}t|dƒ�r~|j‰ nt|dƒ�r’|j‰ ni ‰ ‡ fdd„|D ƒ}t|tjƒ�rÈ|j}| dd¡ t|dƒ�rÚ|j}t|dƒ�rî|j}n,t|dƒ�rd|jj }nt  ddt!|ƒ¡}d |j"|¡}|�p0d}t#|ƒ}d 	|¡}|dk�rd|	 $||||dœ¡ n>|	 $|jd | %|j"¡| &|¡¡| '|¡| (|¡|d� )¡ ¡ �q^|d  �sÂ|dk�rÂt
|	ƒ}	|d!k�r d"d„ |	D ƒ}	d#d„ t*|	Ž D ƒ‰‡fd$d„|	D ƒ}	næ|d%k�r¾d&d„ |	D ƒ}	d'd„ t*|	Ž D ƒ‰g }| &d(¡| &d)¡| &d*¡| &d+¡f}| $d, 	d-d.„ t*ˆ|ƒD ƒ¡¡ | $d/ 	d0d.„ ˆD ƒ¡¡ |	D ]&}| $d, 	d1d.„ t*ˆ|ƒD ƒ¡¡ �q�|}	n(|dk�ræ|�rÜt+j,|	d2d3�S t+ ,|	¡S d4 	d5d„ |	D ƒ¡d4 S )6NÚno_colorr'   c                    s    g | ]\}}|ˆ kr||f‘qS r   r   )Ú.0ÚcodeÚname)r'   r   r   Ú
<listcomp>N   ó    z"Command.handle.<locals>.<listcomp>Ú	LANGUAGES))NNr)   Zlogin_requiredr+   z-Format style '%s' does not exist. Options: %sz, r    r   r,   z2Settings module {} does not have the attribute {}.r   Ú	tracebackr   z*Error occurred while trying to load %s: %sÚ__globals__Úfunc_globalsc                    s   g | ]}|ˆ v r|‘qS r   r   )r7   Úd)r?   r   r   r:   z   r;   zfunctools.partialÚ
view_classr   r5   z%s()z at 0x[0-9a-f]+z{0}.{1})ÚurlÚmoduler9   Ú
decorators)rC   Úurl_namerB   r)   r#   r   c                 S   s   g | ]}|  d d¡‘qS ©ú,é   ©Úsplit©r7   Úrowr   r   r   r:   œ   r;   c                 S   s   g | ]}t t|t d �ƒ‘qS ©)Úkey©ÚlenÚmax©r7   Úcolumnsr   r   r   r:   �   r;   c                    s&   g | ]}d   dd„ tˆ |ƒD ƒ¡‘qS )z   c                 s   s   | ]\}}d   ||¡V  qdS ©z{0:<{1}}N©Úformat©r7   ÚwidthÚcdatar   r   r   Ú	<genexpr>Ÿ   r;   z,Command.handle.<locals>.<listcomp>.<genexpr>)ÚjoinÚziprK   )Úwidthsr   r   r:   ž   s   ÿr   c                 S   s   g | ]}|  d d¡‘qS rF   rI   rK   r   r   r   r:   ¥   r;   c                 S   s   g | ]}t t|t d �ƒ‘qS rM   rO   rR   r   r   r   r:   ¦   r;   ÚURLÚModuleÚNameZ	Decoratorz | c                 s   s   | ]\}}d   ||¡V  qdS rT   rU   )r7   rX   Útitler   r   r   rZ   «   r;   z!Command.handle.<locals>.<genexpr>z-+-c                 s   s   | ]}d | V  qdS )ú-Nr   )r7   rX   r   r   r   rZ   ­   r;   c                 s   s   | ]\}}d   ||¡V  qdS rT   rU   rW   r   r   r   rZ   ±   r;   é   )ÚindentÚ
c                 S   s   g | ]}|‘qS r   r   )r7   Úvr   r   r   r:   ¼   r;   )-r	   r   r   ÚactivateÚgetattrr   r<   r0   r   r[   Úsortedr1   ÚhasattrrV   Ú
__import__Ú	Exceptionr=   Ú	print_excr   Úextract_views_from_urlpatternsÚurlpatternsr>   r?   Ú
isinstanceÚ	functoolsÚpartialÚfuncÚinsertrA   r   r5   ÚreÚsubÚreprr   r   r(   ÚMODULEZMODULE_NAMEZURL_NAMEr^   Ústripr\   r   Údumps)r2   ÚargsÚoptionsÚstyler)   r+   Zpretty_jsonZfmtrr,   ÚviewsÚer=   Zview_functionsrs   ÚregexrE   rD   Ú	func_namerC   rB   Ztable_viewsÚheaderrL   r   )r?   r'   r]   r   ÚhandleG   s²    
þÿ

0


ü

þ
$ÿÿ

zCommand.handler   Nc              
   C   s  g }|D �]}t |ttfƒr€zJ|js,|j}n|r@d ||j¡}n|j}t|ƒ}| |j|| |f¡ W n ty|   Y qY n0 qt |t	t
fƒ�r^z
|j}W n ty°   Y qY n0 |rÌ|jrÌd ||j¡}	n
|jpÔ|}	t|ƒ}t |tƒ�rB| jD ]N}
t |
d ¡�* | | j||| |	d�¡ W d  ƒ qð1 �s40    Y  qðn| | j||| |	d�¡ qt|dƒ�r¨z"| | ¡ |t|ƒ |jf¡ W n t�y¤   Y qY n0 qt|dƒ�sÀt|dƒ�rz
|j}W n t�yâ   Y qY n0 | | j||t|ƒ |d�¡ qtd| ƒ‚q|S )	z™
        Return a list of views from a list of urlpatterns.

        Each object in the returned list is a three-tuple: (view_func, regex, name)
        z{0}:{1}r   )Ú	namespaceNÚ_get_callbackÚurl_patternsZ_get_url_patternsz,%s does not appear to be a urlpattern object)rp   r   r   r9   rV   r   r(   Úcallbackr   r   r   r†   ÚImportErrorr„   r   r<   r   ÚoverrideÚextendrn   rj   r…   Ú	TypeError)r2   ro   Úbaser„   r~   r   r9   r   ÚpatternsÚ
_namespacer'   r   r   r   rn   ¾   sP    





>"

 z&Command.extract_views_from_urlpatterns)r   N)	r   r   r   r&   r.   r
   rƒ   rn   Ú__classcell__r   r   r4   r   r!   -   s
   
vr!   )rq   r   ru   Zdjango.confr   Zdjango.contrib.admindocs.viewsr   Zdjango.core.exceptionsr   Zdjango.core.management.baser   r   Zdjango.utilsr   Z"django_extensions.management.colorr   r	   Z"django_extensions.management.utilsr
   Zdjango.urlsr   r   r   r   r   r   r0   r!   r   r   r   r   Ú<module>   s,   ú
