o
    }Mf8                     @   s^   d dl Z d dlm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)apps)BaseCommand)get_jobs
print_jobs)setup_loggersignalcommandc                       sL   e Zd ZdZg dZ fddZdd Zdd Zd	d
 Ze	dd Z
  ZS )Commandz Runs scheduled maintenance jobs.)minutelyquarter_hourlyhourlydailyweeklymonthlyyearlyc                    sB   t  | |jdddd| j d |jdddd	d
dd d S )Nwhen?zoptions: %s, )nargshelpz--listz-l
store_true	list_jobsFz$List all jobs with their description)actiondestdefaultr   )superadd_argumentsadd_argumentjoinwhen_options)selfparser	__class__ o/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/django_extensions/management/commands/runjobs.pyr      s   
zCommand.add_argumentsc                 C   s   t d| jd| jf  d S )Nz%s Please specify: %sr   )printr   r   r   )r   r#   r#   r$   	usage_msg   s   zCommand.usage_msgc              	   C   s   |d }t |dd}t| D ]-\}}|||f }|dkr&td||| z|   W q ty=   td|| Y qw d S )N	verbosityT)only_scheduled   zExecuting %s job: %s (app: %s)z"ERROR OCCURED IN JOB: %s (APP: %s))r   sortedkeysloggerinfoexecute	Exception	exception)r   r   optionsr'   jobsapp_namejob_namejobr#   r#   r$   runjobs    s   zCommand.runjobsc              	   C   sX  ddl m} ddlm} |d }|jD ]}zt|d dddg W q ty*   Y qw dd t D D ]u}|d	krOd
	|j
d
dd }td||f  |dkr\|jj||d q4|dkri|jj||d q4|dkrv|jj||d q4|dkr|jj||d q4|dkr|jj||d q4|dkr|jj||d q4|dkr|jj||d q4dS )z Run jobs from the signals r   )signals)settingsr'   z.management c                 s   s    | ]	}|j r|j V  qd S )N)models_module).0appr#   r#   r$   	<genexpr>9   s    z-Command.runjobs_by_signals.<locals>.<genexpr>r)   .NzSending %s job signal for: %sr	   )senderr<   r
   r   r   r   r   r   )django_extensions.managementr7   django.confr8   INSTALLED_APPS
__import__ImportErrorr   get_app_configsr   __name__rsplitr%   run_minutely_jobssendrun_quarter_hourly_jobsrun_hourly_jobsrun_daily_jobsrun_weekly_jobsrun_monthly_jobsrun_yearly_jobs)r   r   r1   r7   r8   r'   r3   r<   r#   r#   r$   runjobs_by_signals,   s:   
zCommand.runjobs_by_signalsc                 O   sb   |d }t t| j |d rt|dddd d S || jv r+| || | || d S |   d S )Nr   r   T)r(   	show_whenshow_appname)r   r,   stdoutr   r   r6   rQ   r&   )r   argsr1   r   r#   r#   r$   handleL   s   
zCommand.handle)rG   
__module____qualname__r   r   r   r&   r6   rQ   r   rV   __classcell__r#   r#   r!   r$   r      s     r   )loggingdjango.appsr   django.core.management.baser   !django_extensions.management.jobsr   r   "django_extensions.management.utilsr   r   	getLoggerrG   r,   r   r#   r#   r#   r$   <module>   s   
