o
    _J@h                     @   sH   d dl mZmZ d dlmZ d dlmZ d dlmZ G dd deZ	dS )    )EventThread)BaseScheduler)BlockingScheduler)asboolc                       s8   e Zd ZdZdZ fddZdd Z fddZ  ZS )	BackgroundSchedulerah  
    A scheduler that runs in the background using a separate thread
    (:meth:`~apscheduler.schedulers.base.BaseScheduler.start` will return immediately).

    Extra options:

    ========== =============================================================================
    ``daemon`` Set the ``daemon`` option in the background thread (defaults to ``True``, see
               `the documentation
               <https://docs.python.org/3.4/library/threading.html#thread-objects>`_
               for further details)
    ========== =============================================================================
    Nc                    s"   t |dd| _t | d S )NdaemonT)r   pop_daemonsuper
_configure)selfconfig	__class__ T/var/www/html/venv/lib/python3.10/site-packages/apscheduler/schedulers/background.pyr      s   zBackgroundScheduler._configurec                 O   sV   | j d u s
| j  rt | _ tj| g|R i | t| jd| jd| _| j  d S )NZAPScheduler)targetnamer   )	Z_eventis_setr   r   startr   Z
_main_loopr
   _threadr   argskwargsr   r   r   r      s   
zBackgroundScheduler.startc                    s$   t  j|i | | j  | `d S )N)r   shutdownr   joinr   r   r   r   r   '   s   
zBackgroundScheduler.shutdown)	__name__
__module____qualname____doc__r   r   r   r   __classcell__r   r   r   r   r      s    
r   N)
	threadingr   r   Zapscheduler.schedulers.baser   Zapscheduler.schedulers.blockingr   Zapscheduler.utilr   r   r   r   r   r   <module>   s
    