a
    ¦¿hþ  ã                   @  s–   d dl mZ d dlZd dlmZ d dlmZmZ ejdkrHd dlm	Z	 nd dl
m	Z	 d dlmZ d dlmZ e	d	ƒZG d
d„ dƒZG dd„ deƒZdS )é    )ÚannotationsN)ÚSequence)ÚAnyÚCallable)é   é
   )Ú	ParamSpec)Úis_async_callable)Úrun_in_threadpoolÚPc                   @  s.   e Zd Zdddddœdd„Zddœd	d
„ZdS )ÚBackgroundTaskúCallable[P, Any]úP.argsúP.kwargsÚNone©ÚfuncÚargsÚkwargsÚreturnc                 O  s    || _ || _|| _t|ƒ| _d S ©N)r   r   r   r	   Úis_async)Úselfr   r   r   © r   úP/var/www/html/assistant/venv/lib/python3.9/site-packages/starlette/background.pyÚ__init__   s    zBackgroundTask.__init__©r   c                 Ã  sH   | j r"| j| ji | j¤ŽI d H  n"t| jg| j¢R i | j¤ŽI d H  d S r   )r   r   r   r   r
   )r   r   r   r   Ú__call__   s    zBackgroundTask.__call__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s   r   c                   @  s>   e Zd Zdddœdd„Zdddd	d
œdd„Zd	dœdd„ZdS )ÚBackgroundTasksNzSequence[BackgroundTask] | None©Útasksc                 C  s   |rt |ƒng | _d S r   )Úlistr#   )r   r#   r   r   r   r   !   s    zBackgroundTasks.__init__r   r   r   r   r   c                 O  s&   t |g|¢R i |¤Ž}| j |¡ d S r   )r   r#   Úappend)r   r   r   r   Útaskr   r   r   Úadd_task$   s    zBackgroundTasks.add_taskr   c                 Ã  s   | j D ]}|ƒ I d H  qd S r   r"   )r   r&   r   r   r   r   (   s    
zBackgroundTasks.__call__)N)r   r   r    r   r'   r   r   r   r   r   r!       s   r!   )Ú
__future__r   ÚsysÚcollections.abcr   Útypingr   r   Úversion_infor   Ztyping_extensionsZstarlette._utilsr	   Zstarlette.concurrencyr
   r   r   r!   r   r   r   r   Ú<module>   s   
