a
    ,ÖKe  ã                   @   st   d dl m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
 d dlmZmZmZ dd	„ ZG d
d„ deƒZdS )é    )ÚpartialN)ÚImproperlyConfigured)ÚBaseCommand)Úconnections)Úatomic)Úcreate_triggersÚdrop_triggersÚget_triggersc                 C   s.   t jdkr| j||d� n| j|||d� d S )N)é   é   ©Úhelp)Úcmdr   )ÚdjangoÚVERSIONÚ
add_parser)Ú
subparsersÚparserÚnamer   © r   úe/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/concurrency/management/commands/triggers.pyÚ_add_subparser   s    
ÿþr   c                   @   s0   e Zd ZdZdZg Zdd„ Zdd„ Zdd„ Zd	S )
ÚCommandÚ zCregister Report classes and create one ReportConfiguration per eachc                 C   sn   |j ddd�}tt||ƒ}|ddd� |ddd� |d	d
d� |jddddddd� |jddddddd� dS )zN
        Entry point for subclassed commands to add custom arguments.
        zsub-command helpÚcommand)r   ÚdestÚlistzlist concurrency triggersr   Údropzdrop  concurrency triggersÚcreatezcreate concurrency triggersz-dz
--databaseÚstoreÚdatabaseNzlimit to this database)Úactionr   Údefaultr   z-tz	--triggerÚtriggerzlimit to this trigger name)Úadd_subparsersr   r   Úadd_argument)Úselfr   r   r   r   r   r   Úadd_arguments   s&    ÿüüzCommand.add_argumentsc                 C   sT   t |ƒ ¡ D ]6\}}| j d |¡¡ |D ]}| j d |¡¡ q*q| j d¡ d S )NúDatabase: {}z	       {}r   )r	   ÚitemsÚstdoutÚwriteÚformat)r&   Ú	databasesÚaliasÚtriggersr#   r   r   r   Ú_list5   s
    zCommand._listc           
      O   sl  |d }|d }|d u r(dd„ t D ƒ}n|g}tƒ ��  zÔ|dkrN|  |¡ n¼|dkr¨t|ƒ ¡ D ]6\}}| j d |¡¡ |D ]}| j d |¡¡ q€qb| j d	¡ nb|d
k�rt|Ž  ¡ D ]6\}}| j d |¡¡ |D ]}| j d |¡¡ qÜq¾| j d	¡ nt	ƒ ‚W n: t
�yF }	 z | j | j |	¡¡ W Y d }	~	n
d }	~	0 0 W d   ƒ n1 �s^0    Y  d S )Nr   r    c                 S   s   g | ]}|‘qS r   r   )Ú.0r.   r   r   r   Ú
<listcomp>A   ó    z"Command.handle.<locals>.<listcomp>r   r   r(   z    Created {0[2]}  for {0[1]}r   r   z    Dropped   {0[2]})r   r   r0   r   r)   r*   r+   r,   r   Ú	Exceptionr   ÚstyleÚERROR)
r&   ÚargsÚoptionsr   r    r-   r.   r/   r#   Úer   r   r   Úhandle<   s0    


zCommand.handleN)	Ú__name__Ú
__module__Ú__qualname__r7   r   Zrequires_system_checksr'   r0   r:   r   r   r   r   r      s   r   )Ú	functoolsr   r   Zdjango.core.exceptionsr   Zdjango.core.management.baser   Z	django.dbr   Zdjango.db.transactionr   Zconcurrency.triggersr   r   r	   r   r   r   r   r   r   Ú<module>   s   
