a
    c	g                     @  s   d dl mZ d dlZd dlZejdkr4d 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)   
   )	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typing.Callable[P, typing.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   W/var/www/html/llm_bihealth/app/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&typing.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typingversion_infor   Ztyping_extensionsZstarlette._utilsr   Zstarlette.concurrencyr   r   r	   r   r   r   r   r   <module>   s   
