a
    ތxd                     @   s   d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZ G dd	 d	eZdS )
    N)got_request_exceptionrequest_finishedrequest_startedsetting_changed)connection_created)
class_preparedm2m_changedpost_delete	post_initpost_migrate	post_save
pre_deletepre_initpre_migratepre_save)import_string)gettext_lazyngettext)Panelc                   @   sX   e Zd ZdZeeeeee	e
eeeeeeeedZdd ZedZedd Zdd	 Zd
S )SignalsPanelz!debug_toolbar/panels/signals.html)r   r   r   r   r   r   r
   r   r   r   r	   r   r   r   r   c                 C   sX   |   d }tdd |D }t|}|dkrBtdd|d|i S tdd	|||d
 S )Nsignalsc                 s   s   | ]\}}t |V  qd S )N)len).0name	receivers r   T/var/www/html/Ranjet/env/lib/python3.9/site-packages/debug_toolbar/panels/signals.py	<genexpr>3       z,SignalsPanel.nav_subtitle.<locals>.<genexpr>   z&%(num_receivers)d receiver of 1 signalz'%(num_receivers)d receivers of 1 signalnum_receiversz5%(num_receivers)d receiver of %(num_signals)d signalsz6%(num_receivers)d receivers of %(num_signals)d signals)r    num_signals)Z	get_statssumr   __)selfr   r    r!   r   r   r   nav_subtitle1   s(    	zSignalsPanel.nav_subtitleSignalsc                 C   s<   | j  }| jjd D ] }|ddd }t|||< q|S )NZEXTRA_SIGNALS.r   )SIGNALScopyZtoolbarconfigrsplitr   )r$   r   signalZsignal_namer   r   r   r   K   s
    
zSignalsPanel.signalsc                 C   s   g }t | j dd dD ]\}}g }|jD ]}|d }t|tjrJ| }|d u rTq,t|d|}t|dt|}t|dd d urt|j	dt
j}	d	|	|}
n|}
||
 q,|||f q| d
|i d S )Nc                 S   s   | d S )Nr   r   )xr   r   r   <lambda>U   r   z-SignalsPanel.generate_stats.<locals>.<lambda>)keyr   Z	__wraps____name____self__	__class__z{}.{}r   )sortedr   itemsr   
isinstanceweakrefReferenceTypegetattrstrr2   typer1   formatappendZrecord_stats)r$   requestresponser   r   r-   r   ZreceiverZreceiver_nameZreceiver_class_nametextr   r   r   generate_statsS   s(    
zSignalsPanel.generate_statsN)r1   
__module____qualname__templater   r   r   r   r   r   r
   r   r   r   r	   r   r   r   r   r)   r%   _titlepropertyr   rA   r   r   r   r   r      s,   
r   )r7   Zdjango.core.signalsr   r   r   r   Zdjango.db.backends.signalsr   Zdjango.db.models.signalsr   r   r	   r
   r   r   r   r   r   r   Zdjango.utils.module_loadingr   Zdjango.utils.translationr   rE   r   r#   Zdebug_toolbar.panelsr   r   r   r   r   r   <module>   s   0