o
    uvXjÐ  ã                   @   s<   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 )é    )ÚBaseCommand)Úget_jobÚ
print_jobs)Ú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                    sF   t 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)Úsuperr   Úadd_argumentsÚadd_argument)ÚselfÚparser©Ú	__class__© úi/var/www/html/myproject/venv/lib/python3.10/site-packages/django_extensions/management/commands/runjob.pyr      s   
þzCommand.add_argumentsc                 C   sÄ   |d }|dkrt d||f ƒ zt||ƒ}W n ty6   |r)t d||f ƒ nt d| ƒ t dƒ Y d S w z|ƒ  ¡  W d S  tya   dd l}t d||f ƒ t d	ƒ | ¡  t d
ƒ Y d S w )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 jobsr   z"ERROR OCCURED IN JOB: %s (APP: %s)zSTART TRACEBACK:zEND TRACEBACK
)Úprintr   ÚKeyErrorÚexecuteÚ	ExceptionÚ	tracebackÚ	print_exc)r   r   r   Úoptionsr   Újobr!   r   r   r   Úrunjob   s*   úûzCommand.runjobc                 O   sL   |d }|d }|r|s|}d }|d rt dddd� d S |  |||¡ d S )Nr   r   r   FT)Úonly_scheduledÚ	show_whenÚshow_appname)r   r%   )r   Úargsr#   r   r   r   r   r   Úhandle+   s   zCommand.handle)
Ú__name__Ú
__module__Ú__qualname__r   Úmissing_args_messager   r%   r   r*   Ú__classcell__r   r   r   r   r      s    	r   N)Údjango.core.management.baser   Ú!django_extensions.management.jobsr   r   Ú"django_extensions.management.utilsr   r   r   r   r   r   Ú<module>   s   