a
     þdë  ã                   @   sv   d dl Z d dlZe jdkr(d 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 )é    N)é   é
   )Ú	ParamSpec)Úis_async_callable)Úrun_in_threadpoolÚPc                   @   s>   e Zd Zejeejf ejejddœdd„Z	ddœdd„Z
dS )ÚBackgroundTaskN©ÚfuncÚargsÚkwargsÚreturnc                 O   s    || _ || _|| _t|ƒ| _d S ©N)r
   r   r   r   Úis_async)Úselfr
   r   r   © r   ú]/var/www/html/stable-diffusion-webui/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__)Ú__name__Ú
__module__Ú__qualname__ÚtypingÚCallabler   ÚAnyr   r   r   r   r   r   r   r   r      s   þr   c                   @   sZ   e Zd Zdejeje  dœdd„Zeje	ej
f e	je	jddœdd„Zddœd	d
„ZdS )ÚBackgroundTasksN©Útasksc                 C   s   |rt |ƒng | _d S r   )Úlistr   )r   r   r   r   r   r       s    zBackgroundTasks.__init__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   ÚOptionalÚSequencer   r   r   r   r   r   r   r"   r   r   r   r   r   r      s
   þr   )Úsysr   Úversion_infor   Ztyping_extensionsZstarlette._utilsr   Zstarlette.concurrencyr   r   r   r   r   r   r   r   Ú<module>   s   
