o
    㥵i                     @  s   d dl mZ d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZ ejdkr.d dlmZ nd dlmZ edZG dd	 d	ZG d
d dZdS )    )annotationsN)deque)AnyCallableGenericIterableTypeVar)   
   )	ParamSpecPc                   @  s$   e Zd ZdZdd
dZdddZdS )BackgroundTaskz
    Background task.
    funcCallable[P, Any]argsP.argskwargsP.kwargsreturnNonec                 O  s   || _ || _|| _d S N)r   r   r   )selfr   r   r    r   G/home/ubuntu/.local/lib/python3.10/site-packages/kui/asgi/background.py__init__   s   
zBackgroundTask.__init__r   c                   s2   | j | ji | j}t|r|I d H  d S d S r   )r   r   r   inspectisawaitable)r   resultr   r   r   __call__   s
   
zBackgroundTask.__call__Nr   r   r   r   r   r   r   r   )r   r   )__name__
__module____qualname____doc__r   r   r   r   r   r   r      s    
r   c                   @  s,   e Zd ZddddZdddZdddZdS )BackgroundTasksNtasksIterable[BackgroundTask] | Nonec                 C  s   |r	t || _d S t  | _d S r   )r   r%   )r   r%   r   r   r   r   #   s   zBackgroundTasks.__init__r   r   r   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   r'   &   s   zBackgroundTasks.appendc                   s   | j D ]}| I d H  qd S r   )r%   )r   r(   r   r   r   r   *   s   
zBackgroundTasks.__call__r   )r%   r&   r   )r   r   )r    r!   r"   r   r'   r   r   r   r   r   r$   "   s    
r$   )
__future__r   r   syscollectionsr   typingr   r   r   r   r   version_infor   typing_extensionsr   r   r$   r   r   r   r   <module>   s    
