o
    ђ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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 )    )annotationsN)Sequence)AnyCallable)   
   )	ParamSpec)is_async_callable)run_in_threadpoolPc                   @  s    e Zd Zdd	d
ZdddZdS )BackgroundTaskfuncCallable[P, Any]argsP.argskwargsP.kwargsreturnNonec                 O  s    || _ || _|| _t|| _d S N)r   r   r   r	   is_async)selfr   r   r    r   M/var/www/html/govbot/env/lib/python3.10/site-packages/starlette/background.py__init__   s   zBackgroundTask.__init__c                   sL   | j r| j| ji | jI d H  d S 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r   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname__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Sequence[BackgroundTask] | Nonec                 C  s   |r	t || _d S g | _d S r   )listr"   )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   add_task$   s   zBackgroundTasks.add_taskc                   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!       s    
r!   )
__future__r   syscollections.abcr   typingr   r   version_infor   typing_extensionsstarlette._utilsr	   starlette.concurrencyr
   r   r   r!   r   r   r   r   <module>   s    
