a
    ÆZEgÃ  ã                   @   sR   d dl Z d dlmZ d dlmZmZ d dlmZmZ e  	e
¡ZG dd„ deƒZdS )é    N)ÚBaseCommand)Úget_jobÚ
print_jobs)Úsetup_loggerÚsignalcommandc                       s8   e Zd ZdZdZ‡ fdd„Zdd„ Zedd„ ƒZ‡  Z	S )	ÚCommandzRun a single maintenance job.Útestc                    sB   t ƒ  |¡ |jddd� |jddd� |jddddd	d
d� d S )NÚapp_nameú?)ÚnargsÚjob_namez--listz-lÚ
store_trueÚ	list_jobsFz$List all jobs with their description)ÚactionÚdestÚdefaultÚhelp)ÚsuperÚadd_argumentsÚadd_argument)ÚselfÚparser©Ú	__class__© úe/var/www/sistema_ama/venv/lib/python3.9/site-packages/django_extensions/management/commands/runjob.pyr      s    þzCommand.add_argumentsc                 C   s    |d }|dkrt  d||¡ zt||ƒ}W n> tyj   |rNt  d||¡ nt  d|¡ t  d¡ Y d S 0 z|ƒ  ¡  W n  tyš   t  d||¡ Y n0 d S )NÚ	verbosityé   zExecuting job: %s (app: %s)z'Error: Job %s for applabel %s not foundzError: Job %s not foundz,Use -l option to view all the available jobsz"ERROR OCCURED IN JOB: %s (APP: %s))ÚloggerÚinfor   ÚKeyErrorÚerrorÚexecuteÚ	ExceptionÚ	exception)r   r	   r   Úoptionsr   Zjobr   r   r   Úrunjob   s    
zCommand.runjobc                 O   sV   |d }|d }|r |s |}d }t t| jƒ |d rDtdddd� n|  |||¡ d S )Nr	   r   r   FT)Zonly_scheduledZ	show_whenZshow_appname)r   r   Ústdoutr   r&   )r   Úargsr%   r	   r   r   r   r   Úhandle+   s    zCommand.handle)
Ú__name__Ú
__module__Ú__qualname__r   Zmissing_args_messager   r&   r   r)   Ú__classcell__r   r   r   r   r      s   	r   )ÚloggingZdjango.core.management.baser   Z!django_extensions.management.jobsr   r   Z"django_extensions.management.utilsr   r   Ú	getLoggerr*   r   r   r   r   r   r   Ú<module>   s
   
