U
    d
                     @   s   d Z ddlmZ ddlZddlmZmZmZmZ ddl	m
Z
mZ ejeddidejd	edd
dddejddedd dddejddedd dddejdeedddejdddeedddejed"d d!ZdS )#z#The :program:`celery beat` command.    )partialN)	LOG_LEVELCeleryDaemonCommandCeleryOptionhandle_preload_options)detachedmaybe_drop_privilegesZallow_extra_argsT)clsZcontext_settingsz--detachFzBeat Optionsz-Detach and run in the background as a daemon.)r	   Zis_flagdefault
help_grouphelpz-sz
--schedulec                 C   s   |p| j jjjS N)objappconfZbeat_schedule_filenamectx_value r   3/tmp/pip-unpacked-wheel-9cz4377o/celery/bin/beat.py<lambda>       r   zvPath to the schedule database.  Defaults to `celerybeat-schedule`.The extension '.db' may be appended to the filename.)r	   callbackr   r   z-Sz--schedulerc                 C   s   |p| j jjjS r   )r   r   r   Zbeat_schedulerr   r   r   r   r      r   zScheduler class to use.z--max-intervalz1Max seconds to sleep between schedule iterations.)r	   typer   r   z-lz
--loglevelWARNINGzLogging level.)r
   r	   r   r   r   c              
   K   s   | j j}	| jrZz|	| j W n: ttfk
rX }
 ztjd|
 | dW 5 d}
~
X Y nX |sjt||d t	|	j
f||d|}|rt|||||| |  W  5 Q R  S Q R X n
|  S dS )z'Start the beat periodic task scheduler.z?Unable to parse extra configuration from command line.
Reason: )r   N)uidgid)logfilepidfile)r   r   argsZconfig_from_cmdlineKeyError
ValueErrorclickZ
UsageErrorr   r   ZBeatr   run)r   detachr   r   r   r   umaskZworkdirkwargsr   ebeatr   r   r   r)      s(    ( r)   )FNNNNNN)__doc__	functoolsr   r#   Zcelery.bin.baser   r   r   r   Zcelery.platformsr   r   commandoptionintZpass_contextr)   r   r   r   r   <module>   sd          